Fan-out runs
one task, three attempts, merge the best · Termary Pro
Give one task to a squad of agents — each in its own git worktree — watch them race with live diffs, and squash-merge the best attempt.
Sometimes the fastest way to a good answer is three attempts in parallel. A fan-out run hands one prompt to a squad of agents — mix Claude Code and Codex — and puts each in its own git worktree, on its own branch. They can't step on each other, and nothing lands in your checkout until you've read the diff and picked a winner.
Start a run
- On the Mac, click the fan-out button (🏁) in the toolbar — its badge shows how many runs are open.
- Type the task, choose how many of each CLI to race, and confirm the repo and base branch.
- Each worker opens in its own pane and starts immediately. Workers branch from the repo's fetched default branch — never from your possibly-dirty checkout — so every attempt starts clean.
Watch, review, merge
- Worker cards — a live state dot (working / needs you / done) and a running diffstat against the shared base, uncommitted work included.
- Per-file diffs — read each attempt in full, side by side, before choosing.
- Squash-merge the winner — confirmation-gated. It refuses a dirty main checkout, an uncommitted winner, or an empty attempt instead of guessing.
- Clean up the losers — worktrees removed and branches deleted with
git branch -d; unmerged work is never force-deleted.
From your phone
- Open Terminals → ⋯ → Fan-out Runs to see every run on every paired Mac.
- Each worker row shows its live state and diffstat; tap Watch to open the live mirror of that worker's terminal.
- When one wins, tap Merge — the same confirmation and the same safety checks as on the Mac.
Reviewing a worker's diff on the phone? Long-press a line to leave a note, then send your notes to that agent as one prompt — see Review changes.
From a script
The bundled binary doubles as a CLI — every orchestration tool is a subcommand.
Once (no sudo): /Applications/Termary.app/Contents/Resources/termary-mcp install-cli,
then:
termary agents_fanout --task "add rate limiting to the API" --agents claude,claude,codex
termary agents_run_status reports each worker's live state and diffstat;
termary agents_merge merges the winner. termary tools lists
the full catalog.
Isolation is real git, not convention: workers live under
~/.termary/worktrees/ on branches named termary/<label>,
created from the fetched default branch. Your checkout stays untouched until the
squash-merge you confirm.
Fan-out is part of multi-agent orchestration, a Termary Pro feature. Watching a run's terminals from the phone rides the same live mirror as everything else; merging from the phone requires the Controller.
Not what you were after? Browse the manual or email us.