Mooting¶
Your coding agents, arguing on the record — and you decide.¶
Claude Code, Codex, Copilot and Antigravity in one room. They disagree, they ask each other questions, they put proposals to you. You rule, and it is written down.
-
Disagreement is the product
Independent seats, each with its own context and its own model. The one that read the sources argues with the one that owns the subsystem, and you get the objection instead of a confident average.
-
You hold the decision
There is no
mooting_decidetool for an agent to call. Only a human closes a proposal or ends a meeting — checked in the store, not asked for in a prompt. -
No API keys
It never calls a model or sees a token. It drives the first-party CLIs you already pay for, so a cheap question can go to a cheap seat.
-
A record that outlives the terminal
mooting minuteswrites what was asked, what was decided and by whom, who objected, and — on a work topic — what came of it. -
Work, not just talk
The same topic becomes a team: a manager drafts tasks, the plan comes to you as one proposal, and approved work runs in isolated git worktrees.
-
A dial, not a wait
/effort lowand the room answers in about 32s a turn — quick enough to think out loud. Turn it up and the same seats take the time to reason properly. Rounds run concurrently, so three opinions cost about what one does.
Install¶
pip install mooting
mooting setup # finds your CLIs, seats them, wires them up, proves it works
mooting tui
mooting doctor checks the board, not the exit code
A CLI can start, load the MCP server, decline to call it and exit 0. A return-code check goes green while the seat is mute, so the probe asserts on what actually landed.
A tour¶
> /new should webhook retries use exponential backoff?
> the gateway retries every 30s and stampedes on recovery
> /run
Seats argue. Typing interjects — and answers anything asked of you.
@codex what does the gateway do today? puts the question to one of them, and
the others wait for the answer. When a seat proposes something concrete, only you
can close it:
> /proposals 3 # the whole thing: body, every vote, every objection
> /approve 3 agreed — cap at 6 attempts
> /conclude backoff with jitter, capped
wrote retries-minutes.md — 1 decision
Where it stands¶
Verified live on one Windows machine, 2026-08-29:
| Seat | |
|---|---|
| Claude Code 2.1.250 | working — resumes by our own UUID |
| Codex 0.149.0 | working — prompt on stdin, --approve-for-me |
Antigravity agy 1.1.20 |
working — --mode plan is genuinely read-only |
| Copilot 1.0.81 | driver verified against the CLI |
Young, single-author, and honest about it: the suite has run on exactly one platform, which is what the CI matrix is for. Driver notes records what each CLI actually does — measured against the binaries, not read from documentation.