Mission control for coding agents
One universe for your agents, on every machine you own.
Agentorrery runs Claude Code, Codex and OpenCode as agents on your own machines, gives them a shared task queue and a way to message each other and you, and shows all of it live as a 3D space of projects and agents.
The problem
Orchestrators assume one computer. Your work does not fit on one.
Running several coding agents today mostly means more terminals on the same machine. That goes wrong in five ways.
One machine is assumed
Agents get started side by side on a single computer, or in identical containers. But an iOS build needs a Mac with Xcode, an Android build needs the SDK and a training run needs a GPU. Work that belongs on the other machine waits for you to carry it there.
A wall of terminals
Every agent is a tab or a pane. Finding out who is working, who has finished and who gave up means reading scrollback, one session at a time.
Blocked agents wait in silence
An agent that needs a permission or an answer stops, and stays stopped until you happen to look at its terminal.
You are the message bus
Agents in separate sessions cannot hand each other work or ask each other a question, so you copy results out of one and paste them into the next.
One vendor's CLI
A tool built around a single agent CLI leaves the others you are signed in to unused, and ties every job to one family of models.
The space
See all of it at once.
The console opens on a 3D space. Nothing in it is decoration: every shape is something real, and it stays put so you can find it again.
Planets are projects
A project is a folder registered with orrery. Its halo shows its status.
Rings hold codebases
The apps, services and packages inside a project sit on a ring around its planet.
Agents stand by their work
Each agent has a fixed place next to the project or codebase it works in, so it is where you left it.
Moons are finished tasks
Active tasks float above their planet. A completed one becomes a moon.
Your own sessions show too
A Claude Code, Codex or OpenCode you started in a terminal appears at its project as a hollow wireframe: watched, not controlled.
An agent's body is its status
- Working
- Idle
- Paused
- Error
- Offline
Its ring is its runner
- Claude Code
- Codex
- OpenCode
Machines
Built around machines that are not the same.
Join the computers you own into one cluster and tell orrery what each is good for. They appear side by side, each on its own platform.
- laptopA Mac with Xcode
- workstationA Linux box with an NVIDIA card
- build-serverA server with the Android SDK
Each machine keeps its own
Its own database, projects and agents. Agents run natively on the machine that owns them, and the space on any machine shows and drives all of them.
Say what each one can do
Tag a machine with capabilities such as ios-development, android-development or gpu. orrery suggests tags from what it finds installed (Xcode, the Android SDK, Docker, an NVIDIA GPU) and tags nothing until you say so.
Work lands where it can be done
Every root agent is told each machine's operating system, hardware, capabilities and runners, so it knows which machine a job belongs on. From any machine you can start an agent on the one that has what the work needs.
Joined by a code, linked over TLS
Machines on the same network join with a join code. The links between them are encrypted with TLS 1.3. A machine that drops out stays visible as last seen and is reconnected when it returns.
Agents
Agents that work with each other, whichever CLI runs them.
No model of its own
orrery runs the CLIs you already have installed and signed in: Claude Code, Codex and OpenCode. Each agent has its runner and model, and you can change either.
A shared task queue
Agents create tasks, break work down into subtasks and hand them to each other. A breakdown shows in the space as a tree.
Messages instead of copy and paste
Every agent session gets orrery's MCP server, whichever CLI runs it. Agents message each other by name, report progress and ask you a question with one-click answers.
A root agent per machine
It belongs to no project and is told about every project and agent on its machine. Ask it to create a project, start an agent or say what needs you first.
A lead per project
Each project has one agent that answers for it. The root agent asks the lead instead of reading the project itself, and hands it the work that belongs there.
Control
You stay in charge.
Autonomy, agent by agent
Supervised asks before it acts, auto-edit approves reading and editing on its own, autonomous approves everything. What the policy does not approve waits for your answer.
What needs you finds you
Permission requests, questions, results to review, failures and stalled sessions raise an amber beam in the space and line up in a Needs you strip. Off-screen ones get an arrow at the edge.
Local until you say otherwise
The console listens on 127.0.0.1 only. Open it to your network in Settings and it is served over HTTPS, behind a sign-in.
Use it your way
In a browser, in the desktop app for Linux, macOS and Windows, or from a phone on the same network. The space has hotkeys for everything you do often.
Get started
Put your machines in orbit.
You need
- Node.js 22 or newer
- At least one agent CLI, installed and signed in: claude, codex or opencode
- Linux x64, macOS (Apple silicon or Intel) or Windows x64
These builds are unsigned. macOS and Windows will warn before they open one, and you have to allow it yourself. They are built from the source by the release workflow on GitHub.
Desktop app
A window onto the console, with the daemon inside it.
Daemon only
The server on its own, with the Erlang runtime included. It uses the Node.js on your PATH.
From source
With Erlang/OTP 28, Elixir 1.19 and Node.js 24, then open http://localhost:4000.
cd orrery
mix setup
bin/serverThe first visit leads to the welcome screen, which creates your account, sets up the agents folder and asks which runners orrery may use.