Plan with the planner
Describe what you want. The planner reads your tickets and knowledge base and proposes epics and tickets with acceptance criteria and dependencies, as a changeset. Nothing changes until you approve it, in whole or in part.

Ballet runs coding agents through the process a good team follows. You plan with a planner agent and approve the plan; separate agent sessions implement, review, verify and merge it ticket by ticket, in dependency order, while you sleep. You are asked only what agents can't decide safely.
What an unattended night looks like on a project board.
You approve the plan: 8 tickets, 2 epics, with dependencies.
WEB-12 starts. Implement, then a fresh session reviews it and sends it back once.
WEB-14 asks about an API change. Only it waits; the other tickets keep going.
WEB-12 is verified and merged. Docs and decisions are written back.
The daily budget is reached. Work waits instead of spending.
Digest: 6 done, 6 merged, 1 question. You answer it over coffee.
An illustrative example: the times and numbers are made up; the behavior is Ballet's.
Humans are present for planning and for the questions that matter. Everything in between is a pipeline that runs on its own and explains itself.
Describe what you want. The planner reads your tickets and knowledge base and proposes epics and tickets with acceptance criteria and dependencies, as a changeset. Nothing changes until you approve it, in whole or in part.

Ready tickets start in dependency order, in parallel. Each stage is a fresh session on an agent built from your devcontainer, on the ticket's branch, with your skills. Watch any session live, and message or interrupt it.

The planner answers from the knowledge base when it can. The rest lands in one inbox. Answer within minutes and it goes into the running session; answer in the morning and the session resumes where it parked.

What was done, merged and failed, what waits and why, and what it cost in tokens. Then confirm or reject the assumptions agents made.

Agents are capable implementers now. What they lack is context and coordination. Ballet supplies both, and keeps the guarantees a team relies on.
Work starts from a plan you approved: tickets with acceptance criteria and a dependency graph. Ballet runs whatever can run in parallel and holds work at the sync points.
Most agents start from a single issue or prompt.
Implement, review, verify and integrate are separate sessions in fresh workspaces. They share artifacts and reports, never transcripts, so a reviewer sees what's really there.
Elsewhere, review is usually left to you.
Agents ask only what's risky. Answer online and the session continues with its whole context; answer later and it resumes from where it parked. Every answer becomes a recorded decision.
No terminal to watch, no stalled night.
A ticket isn't done until docs are updated, decisions recorded and debt filed in the organization's knowledge base. Every new session starts from that onboarding bundle, not from zero.
Projects get easier over time, not harder.
Self-hosted, with Claude Code or opencode per stage. Sessions run on a fleet of agents built from each project's devcontainer: a laptop, VMs or N containers on Kubernetes. No Docker socket needed.
No vendor sandbox, no lock-in to one agent.
Token budgets per ticket, project and organization, enforced at Ballet's LLM gateway. Pause and kill switches, retries, stuck detection, durable state and a morning digest.
It stops before it overspends, and it explains itself.
Every project configures its own stages, skills, models and gates; this is the template it starts from. Your process (TDD, docs, GitFlow) comes from your skills, not from Ballet.
Hosted agents run one agent per issue in a vendor's cloud. Session managers run many agents on your laptop, under your eye. Ballet runs a team's process on your servers, unattended.
| Capability | Ballet | Hosted agents Devin, Copilot agent, Codex |
Session managers Conductor, Claude Squad, Vibe Kanban |
|---|---|---|---|
| Plan from a conversation, approved by a human | ✓ Changesets | — | — |
| Dependency-ordered parallel execution | ✓ | — | Manual |
| Separate review and verify sessions | ✓ | — (you review the PR) | — (you review the diff) |
| Questions answered live, or resumed later | ✓ Inbox, park and resume | Chat with the agent | Interactive only |
| Knowledge written back on every ticket | ✓ | Vendor knowledge features | — |
| Runs unattended on your own servers | ✓ | Vendor cloud | Your laptop |
| Budgets and a kill switch | ✓ | Plan limits | — |
| Organizations isolated from each other | ✓ | Teams and organizations | — |
| Agent runtimes | Claude Code, opencode | The vendor's | Many CLIs |
Typical of each group as of October 2026; individual products vary. Read the full comparison and its sources →
Ballet is young: its first version targets one unattended night of work on a real project.
The quickstart runs Ballet on your machine with a fake model and a demo repository. No API key, nothing leaves your machine.
Start the quickstartgit clone https://github.com/denyszorinets/ballet.git
cd ballet
BALLET_FAKE_LLM=1 make run
# open http://localhost:8080