Claude, Codex & any API — on one pipeline.
Route every node to the best model for the job, mix providers freely, and watch each runner stream its work in real time.
The right model for every step.
A planner on Claude, a coder on Codex, a cheap reviewer on @fast — pin a different runner to each node and let them hand off down the graph.
- Claude, Codex & raw API nodes
- Bring your own API keys — no token markup
- Per-node temperature & max-tokens

Watch it run, character by character.
Futsu executes the graph node-by-node and streams each runner's PTY output live. No black box — you see tokens, tool calls, and exit states as they happen.
- True terminal (PTY) streaming
- Tool calls & exit codes in real time
- Cancel, retry, and resume mid-run
$ futsu run orchestrator.canvas
▸ node planner claude-opus-4-8
✓ 4 tasks planned · 2.1k tok · 3.4s
▸ node coder codex
⟳ patching apps/frontend/landing.tsx …
+ 142 insertions, − 18 deletions
▸ node reviewer gpt @fast
⚠ 1 suggestion · gate: pass
✓ run complete · artifacts → .futsu/runs/0142/
$
Every run is a folder of files.
Runs persist as file-based artifacts you can read, diff, replay, and commit — the runs dashboard is just a view over that folder. Track cost and status per run across every project.
- File-based artifacts under .futsu/runs/
- Per-run cost & status tracking
- Replay any run on the canvas
.futsu/runs/8f3a21/state.json .futsu/runs/8f3a21/events.ndjson .futsu/prompts/review.md .claude/skills/release-notes/

What teams use Runners for.
Route every step to the best model for the job
A planner on Claude, a coder on Codex, a cheap reviewer on @fast — pinned per node.
Watch tool calls and exit codes as they happen
True PTY streaming from each CLI session, character by character.
Hand one agent’s output to the next, wired
No copy-paste between terminals — edges carry the artifacts.
Bring every model to one pipeline.
Pin your runners, hit run, and watch the stream.