One task · many agents · one receipt

Orchestrate your coding agents like a build pipeline.

Not a chat window. steamtrain runs Claude Code, OpenCode, Codex, Cursor and Amp as managed subprocesses and drives them through declarative, parallel workflows — all streamed live, with real dollar and token costs on every step.

Get the app & the CLI Free agentless tour · no API key
Same engine
steamtrain — desktop app
steamtrain desktop app run view

Both tracks
are the same engine

Desktop app macOS .dmg · arm64 & x64
Download for macOS
CLI + TUI Node 20+, git, Bun · no sudo
Speaks claude opencode codex cursor amp antigravity kimi mimo kiro

What running a task through steamtrain actually looks like.

Fan a task out across models, cross-check the results, gate on what passed, and merge the verified changes back into your checkout. No copy-pasting between terminals.

01

Run every major coding agent through one interface

steamtrain spawns the real claude, opencode, codex, agent, agy, kimi and amp CLIs — no stubs — and maps each one's streaming output onto a single normalized event model. Mix agents freely in one workflow.

claude ● ready
opencode ● ready
codex ● ready
cursor ● ready
amp ● ready
02

Compose work as declarative, parallel workflows

Phases built from a few standard blocks: distributor, worker, consolidator, gate. Steps are dependency-scheduled — each starts the moment its inputs are ready, in parallel with everything unrelated.

01 split scope distributor
02 sweep ×3 worker ∥ parallel
03 cross-check consolidator
04 verified > 0 gate
03

Let agents edit safely, then merge back on purpose

Every agent step runs in its own isolated git worktree, so parallel agents never trample each other or your working copy. Apply is pre-checked and all-or-nothing; the merge happens in a throwaway staging worktree.

$ steamtrain history show 4f21 --diff
6 files changed +214 −38
$ steamtrain history apply 4f21
✓ applied as uncommitted edits
04

Every run is recorded and repeatable

Each run is saved as one JSON record — the full phase → step tree with status, output, duration, cost and gate results. Re-running resumes from an on-disk cache instead of paying for completed steps again.

$ steamtrain workflow run --from 4f21 --retry-failed
↺ 9 steps from cache $0.00
▸ 2 steps re-run $0.41

Bundled workflow · mainline

One prompt in, one reviewed PR out.

A planner splits your prompt into independent streams; each stream is implemented and review/fix/test-looped in its own worktree, in parallel; an agent merges the streams; the merged result gets one more review/fix/test pass; a PR opens.

Every out-of-scope bug anyone noticed along the way gets filed as a GitHub issue instead of silently dropped or scope-creeping the task.

$ steamtrain workflow run mainline \
    --input "add rate limiting to /upload"
plan queued
1 agent · splits the prompt into independent charters
distributor
mainline-stream #1 queued
implement → review → fix → test · own worktree
worker
mainline-stream #2 queued
implement → review → fix → test · own worktree
worker
mainline-stream #3 queued
implement → review → fix → test · own worktree
worker
integrate — merge queued
mode: worktree · agent resolves conflicts, if any
consolidator
final-review → final-fix → final-test queued
loop until clean + tests pass · attached to the merged worktree
gate
deliver-pr queued
opens a PR (or leaves a branch)
command
file-issues queued
out-of-scope findings, batched
command
arrival report queued
status, duration and cost for every step
consolidator

The terminal side

The TUI is not a lesser copy of the app.

It opens on a workflow picker and streams the phase → step tree live. Enter runs, ↑/↓ inspects a step's output, Tab cycles workspace presets, Esc cancels. Start a run here, attach from the app — or the other way round.

$ steamtrain
$ steamtrain --web-ui
$ steamtrain workflow run mainline --detach
steamtrain terminal UI showing the workflow picker

All aboard.

Take a lap first if you like — the bundled tour workflow runs the whole engine for $0, with no agent, no API key and no credit.

Desktop app

Download for macOS
Open the .dmg, pick a project folder, run the tour from the Station.
Unsigned alpha: right-click → Open on first launch.

CLI & TUI

$ steamtrain workflow run tour
$ steamtrain init
$ steamtrain
Needs Node 20+, git and Bun. No sudo, no PATH surgery.