One lead agent.A fleet of workers.One graph under it all.
Kora runs Claude Code, Codex, OpenCode and Antigravity as one orchestrated team. Every agent reads from one local graph of your code, so it starts out knowing where things are and who calls them.
Free and open source · macOS 13.5+ · Apple Silicon
01The orchestrator
You talk to one thread.It runs the fleet.
One lead keeps the conversation with you and hands bounded slices to a fleet of coding agents: Claude Code, Codex, OpenCode and Antigravity, each in the open, each in its own git worktree.
8–9×
more usage out of the same plan on long tasks.
With an OpenCode lead and Stretch on, every slice a free model can do goes to a free worker, and paid models are kept for the reasoning. A long run of commands stops re-reading a 150k-token context on every call.
One long session
Kora, OpenCode lead
Each square is one plan's worth of usage
Measured on our own long-running tasks.
01
Ask
Describe the work once. The lead plans it on the graph: the files to touch, the callers that change, the command that proves a slice is done.
02
Approve
It proposes one worker per slice: which agent, which model, how much effort, and why. You approve or change every row.
03
Watch
Each worker is a real agent CLI in its own git worktree, in a live pane. Type into any of them; the lead sees what you said.
04
Merge
Before a branch lands, a graph-verified gate catches what git would merge cleanly but breaks: a function one worker renamed and another still calls.
Claude CodeLead or worker
CodexLead or worker
OpenCodeLead or worker
AntigravityLead or worker
Each agent signs in with its own login. Kora uses the subscriptions you already have and never sees your credentials.
02The graph
All of it runs onKoragraph's graph.
Kora is built on Koragraph: one local, resolved code knowledge graph of every repository you open, kept current as the code moves. It is why the workers can be cheap and the merges can be trusted.
70%
less spent on planning tasks.
The lead asks the graph where a symbol lives, who calls it and what an edit touches, in one step each, instead of opening files until it finds out.
Reading files to plan
Planning on the graph
Tokens per planning task
Measured on our own planning tasks.
The lead plans with it
Edit sites, the callers of anything whose contract changes, and what an edit touches, before a single worker starts. A cheap worker gets a slice, not a search.
A code-shaped prompt gets the matching declarations put in front of the agent before it searches, so less of its context window goes to finding things.
> where is the token bucket refilled?+ injectedbucket.ts:42 refill(key, now)+ injectedroutes.ts:18 rateLimit(opts)
The merge gate checks against it
Two branches that touch different lines can still break each other. The gate reads the graph across worktrees, names the pairs that collide and suggests an order.