The roster
You set which coding agent does each job in one file, ops/roster.toml. The lead plans the work and merges it. The roster names who builds, reviews, tests, analyzes and documents, and who covers for a missing one.
Claude Code leads by default and Codex can lead too. Setup writes the file for you, and you can edit it by hand.

The agents
Eight coding agents can work on a team. Claude Code, Antigravity and Codex are always on it. The others join when you enroll them, and each one sends your code to its own provider.
Always on the team
- Claude Code
- Roles
- Any role
- Code goes to
- Anthropic
- Joins
- Always. It cannot be disabled.
- Antigravity
- Roles
- Any role
- Code goes to
- Joins
- Always. It cannot be disabled.
- Codex
- Roles
- Any role
- Code goes to
- OpenAI
- Joins
- Always. It cannot be disabled.
Join when you add them
- OpenCode
- Roles
- Any role
- Code goes to
- Zhipu / Z.ai, through OpenRouter (which also sees the traffic)
- Joins
- When you enroll it
- Kimi Code
- Roles
- Any role
- Code goes to
- Moonshot
- Joins
- When you enroll it
- Cursor
- Roles
- Any role
- Code goes to
- xAI (Grok, via Cursor)
- Joins
- When you enroll it
- Grok Build
- Roles
- Builder, reviewer and analyst
- Code goes to
- xAI
- Joins
- When you enroll it
- Devin
- Roles
- Reviewer and analyst; builder only after you opt in
- Code goes to
- Cognition (a model outside its SWE family also reaches the provider of that model)
- Joins
- Only with your consent on record
Versions, floors and the check each agent must pass are on Compatibility. What each provider receives is on Data egress.
Roles and fallbacks
The roster has five roles. Each names an agent, a model and an effort, and a chain of agents that take over in order when the one before is missing or disabled. Every chain ends at Claude Code, Antigravity or Codex.
builderWrites the code for a task.
- Claude CodeClaude Code's own model, max effort
- CodexIf it is missing
- AntigravityThen
reviewerReviews every task it didn't build.
- Codex
gpt-6-astra, xhigh effort - AntigravityIf it is missing
- Claude CodeThen
- Codex
testerWrites the failing test first.
- Codex
gpt-6-astra, xhigh effort - Claude CodeIf it is missing
- Codex
analystMaps the codebase before planning.
- Antigravity
Gemini 3.8 Flash (High), high effort - Claude CodeIf it is missing
- Antigravity
documenterWrites the documentation.
- Antigravity
Gemini 3.8 Flash (High), high effort - Claude CodeIf it is missing
- Antigravity
The lead
The lead plans the sprint, hands out the tasks, reviews and merges. Claude Code or Codex can lead. With no [lead] table in the roster, Claude Code leads.
Switch from either CLI with setup's lead step. It refuses while leases are open, so finish or hand them over first.
Claude Code leads
/at-setup lead Codex leads
$agent-triforge:at-setup lead[lead] cli = "codex"
A Codex lead also needs a trust entry in ~/.codex/config.toml, which you add yourself. Setup prints it.
Change the roster
Setup's role step shows each role's current agent, model and effort, and lets you keep or change each one. It checks every change before it writes it.
You can also edit ops/roster.toml by hand. A field you leave out keeps the shipped default, so a role that sets only effort keeps its agent and model, and deleting the whole file is safe. Each fallback chain must end at Claude Code, Antigravity or Codex, and none of them can be disabled. A file that breaks a rule fails to load.
An optional agent is enrolled the first time it is found, at session start or in setup, and Devin only through setup, after you consent. enabled = false on its [members.<name>] table turns it off everywhere: every chain skips it.
Claude Code leads
/at-setup roles Codex leads
$agent-triforge:at-setup roles[roles.reviewer] cli = "codex" model = "gpt-6-astra" effort = "xhigh" fallbacks = ["antigravity", "claude"]
[promotion] require_user_approval = false
With require_user_approval = true, the lead waits for your approval at the end of a wave before it promotes the sprint's branch to main. A change to a protected path needs your approval either way.