It all starts in the Queue.
You write what you need, not for whom. A task is a unit of delivery: the measured defect, the territory it may touch, the gate that proves it and the shape of the report.
Claude, Codex, Cursor, Cline, Antigravity — each in its own card, all talking to one another through the board. One orchestrates, others implement, another reviews, and the report goes back to whoever asked. The loop only closes once an agent that did not write the code has judged it.
Scroll and the board beside it advances. Or click a note to jump to it. What appears here is what the app does — same states, same colors.
You write what you need, not for whom. A task is a unit of delivery: the measured defect, the territory it may touch, the gate that proves it and the shape of the report.
The orchestrator reads the Queue and writes the contract. It does not implement: it briefs, reads the diff, verifies and integrates.
Two agents, two providers, two files. The cyan connector is the spawn: a recorded fact, not a drawing. Each is born with allowCommit: false.
The terminals run side by side, the diff grows in Changes and the canvas browser shows the screen running. Opening a new URL goes through your consent.
A third card, from another provider, reads the diff and writes the verdict. With review: wanted, only it can close the task — not even the orchestrator.
The reports come back through the faded connector — the answer to the request. The orchestrator verifies in a clean worktree and commits one slice per task.
Live processes, real pages, documents and notes share the same plane. An agent can read and write in almost all of them — and opening something new goes through you.
An agent terminal runs with your permissions — no sandbox. What is confined is the gate: it runs in bubblewrap on Linux and is refused where it does not exist, instead of pretending it confined something.
When you open it, you do not land on an empty canvas: you land on your sessions, grouped by project, ready to resume.