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

The canvas is a web UI — execution and artifacts stay in .futsu/ on your machine. Cloud runs are opt-in.
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.
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.
$ 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
$
Five pieces. One pipeline.
Everything an agent pipeline needs — and nothing you can't switch away from in a click.
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

Claude, Codex & any API. One graph.
Futsu spawns real CLI coding-agent sessions and API calls as pipeline nodes and streams every PTY character live.
- Real claude / codex sessions as nodes
- Per-node model, temperature, max-tokens
- Cancel, retry and resume mid-run
$ futsu run release.canvas --watch
▸ node plan claude @smart
✓ 4 tasks planned · 3.3k tok
▸ node claude-code PTY live
tool Edit src/api/auth.ts ✓
▸ node codex PTY live
tool Bash pnpm test ✓ 41 passed
review waiting on 2 branches
Agents you can git blame.
Personas and skills are markdown files in .claude/ — reviewed in pull requests, versioned next to the code they operate on.
- Sourced from .claude/{agents,skills}
- Frontmatter: model, tools, persona
- No registry, no lock-in — plain files
.claude/
├─ agents/
│ ├─ architect.md
│ ├─ reviewer.md ← model: opus · tools: [Read, Grep]
│ └─ debugger.md
└─ skills/
├─ deep-research/
└─ release-notes/
✓ loaded 3 agents · 2 skills — versioned with the repo
Edit in Obsidian. Run in Futsu.
Futsu speaks JSON Canvas v1.0 with lossless round-trips — the same .canvas file opens in both tools, and git diff proves it.
- Open JSON Canvas v1.0 format
- Round-trip preserves unknown fields
- Pipelines live in your vault as files
$ git diff release.canvas
+ {"id":"n7","type":"text",
+ "text":"review @fast"}
edges: 6 → 7
# edited in Obsidian — runs in Futsu
✓ round-trip lossless, unknown fields preserved
Plaintext, nowhere.
API keys live as AES-256-GCM ciphertext, scoped to you or your workspace, decrypted only in memory when a run needs them.
- AES-256-GCM at rest, hydrated per run
- User and workspace scopes
- Scan a repo, import leaked keys in one click
Real product, real workspace.
Unretouched screenshots from a working account on this very instance — Riley runs Shiplog, Paper Mill and Bug Triage here.

Built different, provably.
Not just screenshots — artifacts you can verify the moment you install it.
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 ───────────┘ └─▶ shipLeave 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/
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.
Three steps to your first run.
Draw the graph
Open a canvas and drop nodes — models, CLI agents, conditions, human checkpoints. The graph is the program.
Pin models & keys
Attach an instruction and a model to each node — or an alias like @smart. Keys come from your encrypted vault.
Run & watch
Hit run and watch every node stream live. Then grep the artifacts, diff the runs, and iterate.
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.
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.
The web canvas is live today — the native macOS app follows.