Orchestra
The operating system for AI coding agents
A Go CLI that drives several coding agents (Claude Code, OpenCode, Mimo…) behind one supervised interface. It routes each task to the best-suited agent, validates the result through build → lint → test, lets the agent fix its own failures, and keeps nothing without your explicit approval.
- Go
- single binary
- MIT
- open source
- 4
- CI gates
Author and maintainer — open source, MIT licensed
I use several coding agents daily, and I kept doing by hand the thing none of them does: pick which one to run for a given task, verify the result compiles and passes tests before believing it, re-run when it breaks, and stop three agents from trampling each other in the same repository. The bottleneck was no longer code generation — it was supervision.
Orchestra starts from one principle: an agent is not done when it has answered, it is done when verification passes. So every run is followed by a user-defined build → lint → test loop. On failure the agent receives the error output and retries. What reaches the human has already been verified.
Parallelism runs on git worktrees. A large request is decomposed into steps; independent steps execute simultaneously, each in its own isolated worktree. No conflicts are possible, and the main working tree stays untouched until something is approved.
Nothing is written without a `y`. The diff is presented, the human decides. That constraint shaped the whole design — it is the reason the tool exists, not a safety flag bolted on afterwards.
Because it runs the same tasks across several agents, Orchestra can also compare them: a benchmark mode measures agents against each other on identical work, and every run's history is retained.
- 01
Router
Tells a question apart from a coding task. Questions get a direct answer; tasks are routed to the best-suited agent.
internal/engine
- 02
Scheduler
Decomposes a request into steps, identifies the independent ones and runs them in parallel inside isolated worktrees.
internal/scheduler
- 03
Validator
Runs the supplied verification command (`--test`). On failure, feeds the output back to the agent for self-repair.
build → lint → test
- 04
Approval gate
Shows the diff and waits for a `y`. Nothing touches the real repository before that confirmation.
diff review
- 05
TUI dashboard
Full-screen view over agents, run history, benchmarks and chat.
orchestra dashboard
- 06
Distribution
Prebuilt binaries via GoReleaser, one-line install script, `go install`, and GitHub Actions CI enforcing build, vet, test and gofmt.
GoReleaser · Actions
Written in Go
A tool that supervises coding agents must start instantly, ship as a single binary with no runtime, and manage dozens of concurrent processes effortlessly. Go answers all three. A Node or Python CLI would have forced an install step on my users and a far heavier concurrency story.
Git worktrees rather than containers
The usual answer for isolating agents that edit the same repository is Docker. Worktrees cost a few hundred milliseconds instead of several seconds, share git history, and require no daemon on the user's machine. For write isolation — the only real requirement here — that is the right level of abstraction.
- Automatically routes tasks to the best-suited agent, and answers plain questions directly
- Validates every result through build → lint → test, with agent self-repair on failure
- Decomposes large requests and runs independent steps in parallel across isolated git worktrees
- Nothing is kept without explicit human approval of the diff
- Benchmark mode to compare agents against each other on identical work
- GitHub Actions CI enforcing build, go vet, go test and gofmt on every push