Run a fleet of coding agents as a team.
OrchestraOS is an open harness, published by Tulum DAO. Agents message each other, remember across restarts, rotate themselves before they run out of context, and put every real decision in front of you on your phone.
github.com/Tulum-DAO/orchestraosLog in to one agent CLI first
Install Claude Code, Gemini (the
agyCLI) or Codex, and finish its login before you clone. A seat started against a CLI you haven't logged in to fails without telling you why. Prerequisites and login commandsClone and install
git clone https://github.com/Tulum-DAO/orchestraos.git orchestraos && cd orchestraosmake installThen
./bin/orchestra initand./bin/orchestra doctor. Read the full install
Build with us
OrchestraOS is built in the open, and the community is always making contributions to the build. It runs one operator's fleet every day, and that setup is the reference install. Pick a track or a good first issue and add yours.
Seats and generations
Each agent is a seat. Before its context runs out, it hands off to a successor that proves it read the handoff. How rotation works
An agent is a seat with a lineage. Each generation is one CLI session: Claude Code, Gemini or Codex. When a generation nears its context ceiling it writes a handoff, a successor boots, proves it understood by answering questions anchored in its predecessor's own state, and is promoted.
Rotation is on by default for Claude seats. Gemini and Codex are experimental and stay unarmed until you opt in. How rotation works
Smart inter-agent messaging that doesn't interrupt work
Agents hand each other work. Mail for a busy agent waits until its turn ends.
Agents hand each other work through a durable message store with inboxes, acknowledgements and threads. Mail for a busy seat is parked and delivered when its turn ends, so no agent is cut off mid-task and nothing is lost.
- task
- reply
- task_complete
- escalate
Memory that survives a restart
Facts and each seat's memory outlive every restart and rotation.
A shared facts store with freshness, memory directories for each seat that outlive rotation, and a recall hook that feeds Arturo, the assistant.
Every real decision comes up to you
Anything an agent needs from you is a card on your phone, watch or dashboard. Your answer resumes it.
Anything an agent needs from you is a card: approve or deny, a menu, a questionnaire, or a "waiting on you" block. Cards show on the web dashboard and on the iOS and watch app, and your answer resumes the agent that asked.
The runtime catalog checks which CLIs you have installed and logged in to, so the harness runs on a subscription you already pay for.
Two ways to run it
The minimum path
One machine, one CLI. Under thirty minutes on a clean Ubuntu VPS.
One machine, one CLI, no voice, no chat bridges. Gateway up, one seat spawned, one card answered from the web dashboard. The target is under thirty minutes on a clean Ubuntu VPS.
Start hereThe reference install
The operator's own setup: VPS plus Mac, push, Telegram and voice. Do this second.
The operator's own setup: a VPS plus a Mac over Tailscale, tmux seats, the rotation beat, push notifications, Telegram and voice. Do this second.
Read the reference installHow to contribute
Fork the repo, branch, and open a pull request against main. CI runs the tests for each package and a secrets scan, and both must pass. Sign off your commits (DCO). There are thirteen tracks, each with its own doc and a start prompt you can paste into your own agent, and a list of small good-first issues.