Orchestrate your coding agents.Debug them like code.

Wire Claude Code, Codex and any API model into one visual pipeline. Every run lands as plain files you can grep, diff, and replay — you stop tab-juggling and read the results instead.

Instant access, no waitlist · Free in early access · Your keys, zero token markup · Runs are plain files on your machine

app.futsu.cloud/runs/973f60aa replay — a real run, unretouched

The canvas is a web UI — execution and artifacts stay in .futsu/ on your machine. Cloud runs are opt-in.

The job, before and after

You already run agents. Futsu removes the part you hate.

The terminal shuffle

BeforeFour terminals, alt-tabbing to check if anything died.

AfterOne canvas. Every node streams live; finished, running and failed are visible at a glance.

Re-prompting the same chain

BeforeRe-typing the same "plan, then code, then review" sequence into a chat window, every time.

AfterWire the sequence once as a pipeline. Run it again with one click — same shape, new input.

Archaeology on a failed run

BeforeScrolling a dead chat trying to reconstruct what the agent actually did.

AfterOpen the run folder. grep the event stream, diff two runs, replay it step by step.

Glass box

Every run is a folder. Not a mystery.

Each pipeline run persists to .futsu/runs/ as plain files — the full event stream, every node's output, the final state. Debug your agents with the tools you already trust: grep, diff, git.

  • Live PTY stream from every node while it runs
  • state.json + events.ndjson on disk — git-diffable and replayable
  • Replay any historical run, step by step

That last line is the point: change one node, replay, and the diff tells you it cost 38% less. Debugging like code pays in dollars.

~/project

$ cd .futsu/runs/8f3a21

$ jq -c 'select(.type=="step.completed") | {id,node_id}' events.ndjson

{"id":5,"node_id":"plan"}

{"id":11,"node_id":"claude-code"}

{"id":12,"node_id":"codex"}

{"id":14,"node_id":"review"}

 

$ futsu diff 7d201c 8f3a21

- "model": "claude-sonnet-4-6"

+ "model": "claude-fable-5"

2 nodes changed · 1 retry · −38% cost

$

The system

Five pieces. One pipeline.

Everything an agent pipeline needs — and nothing you can't switch away from in a click.

1.0 · Canvas

One canvas. The whole pipeline.

Compose agents, models, conditions and human gates as a graph on a pure-FSM engine — no YAML, no glue scripts.

  • Branch, merge and parallel fan-out
  • Typed arrow edges show data flow
  • Replay any historical run on the graph
Use it to
Ship a plan → code → review release pipelineFan one task out to parallel agents, merge the resultsReplay yesterday’s failed run step by step
localhost:7878/p/release/canvas
Futsu workflow canvas with a multi-node pipeline
Not hypothetical

Real product, real workspace.

Unretouched screenshots from a working account on this very instance — Riley runs Shiplog, Paper Mill and Bug Triage here.

app.futsu.cloud/projects
Futsu workspace with three healthy projects: Shiplog, Paper Mill and Bug Triage
Why Futsu

Built different, provably.

Not just screenshots — artifacts you can verify the moment you install it.

Pipelines

Coding agents as nodes. Wired, not listed.

Futsu runs real Claude Code and Codex CLI sessions as pipeline nodes — branch them in parallel, pipe one agent's output into the next, gate releases behind a human checkpoint. Task boards manage agents; Futsu connects them.

plan ──▶ claude-code ──▶ review ──▶ [HOLD] checkpoint
     └─▶ codex ───────────┘             └─▶ ship
WP-001Write with one agent, verify with another — the research
Plain files

Leave any afternoon. It's all plain files.

Canvases, runs, agents and skills live on your disk in open formats. No export button needed — there is nothing to export. The whole migration story is cp -r.

.futsu/runs/8f3a21/state.json
.futsu/runs/8f3a21/events.ndjson
.futsu/prompts/review.md
.claude/skills/release-notes/
Vault & caps

Keys locked. Costs capped. Enforced, not suggested.

One AES-GCM vault — nodes get the key at runtime, plaintext never lands on disk. One ceiling per run, workflow, project or workspace — when a pipeline hits it, the run halts.

run #9c114e$3.97 / $4.00 cap
HALTED — next retry would exceed the cap
resume with a higher cap, or a cheaper model
Get going

Three steps to your first run.

STEP 01

Draw the graph

Open a canvas and drop nodes — models, CLI agents, conditions, human checkpoints. The graph is the program.

STEP 02

Pin models & keys

Attach an instruction and a model to each node — or an alias like @smart. Keys come from your encrypted vault.

STEP 03

Run & watch

Hit run and watch every node stream live. Then grep the artifacts, diff the runs, and iterate.

Pricing

Free in early access. Your keys, zero markup.

Bring your own API keys and pay providers directly — Futsu never marks up a token. Optional managed token credits exist for teams that don't want to handle keys.

From the builder

I run coding agents all day. Futsu is the canvas I wanted: agents wired together, every run a folder I can grep. It's early — the canvas, runners, live streaming, the vault and cost caps work today; SSO and SLAs don't exist yet. If you try it and something breaks, tell me. That's what early access is for.

— Dmitry, building Futsu · hello@futsu.cloud

Wire your first pipeline tonight.

Free in early access. Bring your own keys — we never mark up tokens. If it's not simpler than your terminals, delete the folder and everything goes with it.

Coming soon to theMac App Store

The web canvas is live today — the native macOS app follows.