Nothing extra to run
One conversation is the whole team. There is no session transport, no seat roster, and no supervision cycle: once the mode is recorded, intent-cli's bootstrap check reports the team complete.
This is how we run intent-cli ourselves, and where we recommend you start. One conversation with your coding agent — the conductor — takes each unit from intent to a merged pull request. Whenever there is something to review, the thread starts a new subagent that did not write the change. No panes to arrange, no transport to run, no seat roster.
Released in intent-cli v0.32.0 as a preview-through-1.x capability. intent-cli supports three team shapes — this one, the four-thread team, and the five-thread team (four seats plus an optional Steward relay) — and you can move between them later.
Answer scope, version, policy, and default decisions. Everything else proceeds on the thread's recommendation and is recorded.
Runs where you work: the Claude desktop app, Claude Code in a terminal, or an Orca Run.
Started by the thread for every review and every re-review. Never reused.
A reviewer from another vendor, e.g. Codex reviewing what Claude wrote.
Run the conductor wherever you already work with your agent — the Claude desktop app, Claude Code in a terminal, or inside an Orca Run. The reviewer subagents are started by that thread itself, inside the same session. That is what makes it efficient: there is nothing else to launch, keep alive, or wire together, and the reviewer still sees only what it should.
One conversation is the whole team. There is no session transport, no seat roster, and no supervision cycle: once the mode is recorded, intent-cli's bootstrap check reports the team complete.
Every review and re-review goes to a new subagent that is never reused. It receives only the packet, the review context, the PR body, and read-only clone paths — never the conversation in which the code was written.
The contract tells the thread to ask you only at scope, version, policy, or default decisions. Otherwise it proceeds with its stated recommendation and records the ruling in the host.
Scope rulings and each unit's closeout writeback are kept in the host, so a compacted conversation or a brand-new session resumes from recorded state instead of from memory.
Merge waits for CI on the exact head commit and a reviewer verdict on that same head. Any fix pushed after a verdict is re-reviewed as a delta by a new subagent first.
Claims, publishing, review transitions, closeout, and evidence records work exactly as in a multi-seat team. One thread changes who does the work, not the rules.
intent-cli guide solo-conductor gives the thread this loop with the exact intent-cli, gh, and git commands for each step. You don't run them; the thread does.
| # | Step | What happens | Who |
|---|---|---|---|
| 01 | Claim the unit | The thread takes the execution-unit claim as the design actor before writing anything. | thread |
| 02 | Start from a ruling or a bug chain | A packet is written only from your recorded ruling or from a triaged bug — never from nothing. | thread · you decide |
| 03 | Write and check the packet | Draft the packet, validate the issue body, run the facet check, and dry-run publication, reading every warning. | thread |
| 04 | Publish the issue | Seed the queue from the packet, publish the GitHub issue, and record the publication. | thread |
| 05 | Switch to implementation | Release the design claim, take the implementation claim, and claim the published issue as the worker. | thread |
| 06 | Implement and open the PR | Work in an isolated clone, run the full test suite, open the pull request, and record the worker completion. | thread |
| 07 | Independent review | Start a fresh reviewer subagent with only the review inputs, and record its verdict on the PR as an independent subagent review. | fresh subagent |
| 08 | Fix and re-review the delta | Fix blocking findings, push, and have another new subagent review the delta against the new head. | thread · fresh subagent |
| 09 | CI on the exact head, then merge | Wait for CI on that head SHA, record the approved transition with it, and merge only that head. | thread |
| 10 | Close out | Close out the PR, write the result back to the intent tree, record the evidence, and release the claim. | thread |
While CI and the full test suite run in the background, the thread investigates the next unit. A CI wait is bound to the head SHA and the run attempt, never to whatever ran last on the branch.
The guide also renders builder command lines for Codex, Claude, Cursor, Copilot, and OpenCode, so the thread can run the build in the isolated clone with a different tool. That builder may edit and commit inside the clone but never pushes, opens a PR, or runs gh; the thread reviews the clone's diff before pushing. How tightly each builder is bounded differs by runtime, and the guide states what was measured.
Declare the team under [[cross_runtime_review.teams]] in .intent-cli/config.toml. On the repositories that declaration lists, the thread records a verdict from the conductor's runtime and one from a different runtime (Codex, Claude, Cursor, Copilot, or OpenCode) against the PR's current head, and approval is refused until that gate is satisfied on that head. Publishing an issue through publish-flow likewise needs a design verdict on the packet. Both reviews run as the command lines intent-cli renders, in read-only clones; the thread launches them and records the verdicts.
The guide advises a reviewer model from a different vendor and model family than the conductor's; the gate does not check this. These gates keep an honest workflow honest and are not a security boundary — gh pr merge itself is not gated.
intent-cli's own development runs as one thread with Claude Code as the conductor, and it declares cross-runtime review. Each PR carries two recorded verdicts on the same head commit — one from a Claude Code reviewer and one from a Codex reviewer — with their notes, in public.
As of 2026-09-22, 643 of the 891 merged pull requests in the intent-system repository are units cut and tracked by intent-cli.
See a PR with both verdicts →npm i -g intent-system
Open your coding agent in the repository and paste:
Set up intent-cli in this repository as a single-seat solo-conductor team. Follow intent-cli's host initialization guidance (dry-run first) and ask me the decisions that are mine. Before recording team_mode, confirm every intent-cli that reads this host is v0.32.0 or later. Record team_mode=solo-conductor, confirm guide bootstrap reports solo-conductor-complete, then run the first unit with intent-cli guide solo-conductor. Start a fresh subagent for every review, and check with me before publishing an issue or merging.
On a host that is already set up, the short trigger phrase is: “Run this work as a solo conductor.”
intent-cli team-mode set --domain <domain> --team <team> --mode solo-conductor --writeSharing the host with other machines or seats? Upgrade every intent-cli that reads it to v0.32.0 first. An older intent-cli rejects a team-mode.json that contains solo-conductor, and the whole file then fails to load for every team on that host.