Apache-2.0 zero dependencies your subscriptions

The open-source
control plane
for coding agents.

code is one window for the whole fleet. It dispatches Claude Code or Codex into any repo you own — each worker in its own git worktree, each under its own spending cap. Nothing merges itself: every report a worker files is checked by a second model that did not write the code.

Runs on your machine, on your Claude and ChatGPT subscriptions. No keys resold, no quota resold, no account to make, nothing phoning home.

The console's actual layout — a lane per repo, eight tabs deep, orchestrator dock bottom-right. Contents left unreadable on purpose. Hover or tap a lane or a tab.

Three roles. Three models. Three switches.

Every agent system eventually asks the same question — who decides? code answers it up front by splitting the work into three jobs that never do each other's, and putting a kill switch on each. Off means refused, not hidden: whatever would have used a role you switched off stops and says so.

01

You manage

You write the mission — the one piece of text in the entire system no agent may write. You set direction, judge evidence and decide what gets spent. You do not babysit steps.

  • Mission per workspace
  • Ratify the doctrine
  • Set the autonomy bar
02

Workers code

Claude Code by default, codex exec per lane if you want it. Each runs headless in an isolated worktree, budget-capped, resumable, with its full transcript readable in the console.

  • claude -p  /  --resume
  • One amp/<lane> worktree each
  • Reply mid-task without losing session
03

An architect rules

When a lane stalls, the console builds a packet — commits, working tree, the uncommitted diff, the branch diff, recent dispatches, a digest of what the worker actually did — and escalates. The ruling is saved and relayed.

  • Packets built, not pasted
  • Asks for files, gets them, no round trip
  • Rulings kept and searchable
Isolation

A worker can't touch your checkout.

Every lane gets its own branch and its own worktree before a single token is spent. Workers write there and nowhere else — which is what makes it safe to run nine of them at once against a tree you are also typing in.

And when the work comes back, apply refuses to merge. It lands the diff in the worktree and stops. The merge is a decision, and decisions are yours.

  • One branch, one worktree, one worker
  • Your working copy stays byte-identical while they run
  • Per-lane backend, branch, model and budget
  • State lives in .amp/, never in your repo
lane isolation
# register a repo as a lane
$ amp lane add trvm --path TRVM --branch main

# dispatch — the worktree is created first
$ amp dispatch trvm "Close the w=64 measurement gap." --cap 2.00
  git worktree add -B amp/trvm .amp/worktrees/trvm main
  claude -p … --permission-mode acceptEdits --session-id 9f3a…
  → task t-0192  running  $0.00 / $2.00

# your checkout, meanwhile
$ git status --short
(nothing)
Goals

State what must be true. Not what to type.

A goal is one objective, not a task list. The architect reads it against the real repository and writes the definition of done and the tasks itself, then sends the first worker. Roughly twenty seconds from sentence to running work.

Each proposed goal is scored with the odds it finishes — every done-condition met, without stopping to ask you for something. You set the bar with one slider. Above it, work starts on its own. Below it, it waits in Direction with its reason showing.

Start a proposed goal without asking me 70%

running 78% odds of finishing

Every published benchmark number states its method.

Definition of done
  • Each figure names a baseline
  • Run count and exclusions recorded
  • Ordering bias stated where it could select
  • · A check exits non-zero when one is missing
Tasks
  1. Inventory every published figure $0.31
  2. Add method block to each $0.88
  3. Write the obligation check $0.12 / $1.00
  4. Wire it into the board
spent $1.31lane trvm
The part nobody else has

Every claim lands on a rung.

Agents are fluent, and fluency is exactly what makes "done" worthless. So code injects a doctrine verbatim into every plan, every worker prompt and every review, and it starts by deleting the words agents hide in. There is no checkmark. There is no percentage. There are five rungs, and when in doubt you downgrade.

And seven rules that outrank the output.

1 · A check outranks an opinion. Where a condition can be settled by a command, the exit code is the answer and no report overrides it.
2 · Do not fabricate. Not counts, not statuses, not provenance, not coverage. An invented number is worse than a missing one, because it stops the question being asked.
3 · Name the gap. A known hole stays visible and stays labelled. Honest gaps are load-bearing.
4 · Measure before you claim. A speedup without a method is a rumour. If the measurement ordering could have selected the result, say so.
5 · Retract out loud. Retract by name, in the same place you published. A quiet correction is a second error.
6 · Some decisions are yours. What to build, what is good enough, what to spend, what to publish. Flag them and stop.
7 · Commit so work survives; verify so it is worth surviving. Never end holding a commit nobody has built.
Every report ends here. One section. Four answers.
advancedmoved a named claim up a named rung, with the evidence
contradictedsomething we believed is false — this outranks the rest of the report
proposeda new thesis worth adopting, stated so it could be wrong
noneordinary work. Common, and entirely acceptable.

Do not manufacture a finding to have something to say — rule 2 covers that too.

Obligations

Things that have to keep being true.

Register a command as a standing obligation and the console runs it on the heartbeat. When it stops exiting zero it surfaces above the board, and it stays there until it passes. Rule 1, wired to the wall.

Above it sits one thing only: what the work said about the doctrine. A stale build is a chore. A contradiction is news, and it is ranked like news.

  • Timed out checks get their process group killed, not just their shell
  • Findings from workers rank above anything the harness noticed itself
  • A supervisor reads mission, doctrine, goals and failures — and only recommends
contradicted The 664-empty-cell result had no preimage. Retracting it by name. trvm · 11m
failing python3 checks/trvm_bench_published.py — exit 1 4m
passing mix test — 116 laws, exit 0 4m
supervisor Two lanes are advancing a claim the mission does not name. Recommend closing one. reading
Bring your own subscriptions

Nothing here resells you your own quota.

code shells out to CLIs you already have, signed in to accounts you already pay for. Two of the three tiers spend no metered money at all, and the one that does has a switch, a balance readout and a per-dispatch cap.

Claude subscriptionno metered spend
opus · sonnet · haiku

The default worker. Signed in once from the console, which stores a long-lived worker token so background lanes stop depending on whatever credentials a terminal happens to carry.

amp login
ChatGPT subscriptionno metered spend
codex exec

Optional per lane. Device-code sign-in from the console; the window notices when you approve it. Best-of-k attempts, each with its own diff to read.

Settings → Connect ChatGPT
OpenRouter credit
luna · terra · sol

The architect tier, cheapest first. One master switch turns off every path that can spend it. Reading your remaining balance is a free request and keeps working either way.

amp credits
Default cap$1.00 per dispatch
Real coston the board, per task, per goal
Budget spentsays so — never retires a lane in silence
Rate limitedwaits it out instead of spending the fleet against it

Eight panes. No mystery state.

Everything a worker did is readable from the same window that started it.

DispatchSend the task. Reply to it mid-flight without losing the session.
GoalsObjective, definition of done, task list, spend, and the questions it is blocked on.
DirectionThe bet, what the work is held to, what the work said back, and what we still do not know.
LogThe worker's real transcript, streamed live, thinking optional.
DiffWhat actually changed on the branch. Apply lands it locally and stops.
Ask GPT-5.6Threaded escalation with the packet built for you.
HistoryRescans the agent sessions already on your disk — including the ones that look wrong.
RulingsEvery architect decision, kept, named and re-readable.

Plus a dock in the corner: the orchestrator thread that runs the others.

Apache-2.0

Clone it, read it, change it.

One Python file for the harness, one for the server, one HTML page for the console. No package manager, no build step, no lockfile, no runtime dependencies — the standard library and the CLIs you already installed. Fork it, ship it, sell it; the licence only asks that you keep the notice.

quickstart
$ git clone https://github.com/c-u-l8er/code
$ cd code

# preflight: worker CLIs, keys, lane bindings
$ python3 amp.py doctor

# connect a long-lived worker token, once
$ python3 amp.py login

# open the console
$ python3 amp.py serve
  → http://localhost:8787
The whole CLI
  • doctorpreflight: worker CLIs, keys, lane bindings
  • servelaunch the browser console
  • lanemanage lanes
  • lanes boardwhat exists, and what it is doing
  • dispatchsend a task to a lane's worker
  • replyanswer a worker mid-task; resumes its session
 
  • pollrefresh the board
  • diffshow a task's diff
  • applyland it in the worktree — never merges
  • packetbuild an architect packet zip
  • askbuild the packet and send it
  • creditsOpenRouter credit remaining
Requires Python 3/ git/ a POSIX machine (macOS, Linux)/ the agent CLIs you want to drive

Where this actually is

There is no star count on this page, no testimonial wall and no logo strip, because rule 2 applies to the marketing too. So here is the honest rung.

live_localThe consoleDispatch, worktrees, transcripts, escalation and rulings have been driven end-to-end against real Claude Code and real repos, on one developer machine.
in_treeFull autonomous fleetGoal planning, auto-adoption and the idle sweep are implemented and exercised, but not yet run unattended for a long stretch.
untestedThe premiseThat a governed multi-worker board beats one good agent in one good chat. This is the bet. Nobody outside has tried to break it.

Your agents deserve a board,
not a scrollback buffer.

Nine lanes, one window, and a rule that a check outranks an opinion.