Agents and roles: Claude Code, Codex, OpenCode and more
Any installed agent can play any role: Claude Code, Codex, Amp, OpenCode, Hermes, Antigravity (agy), or anything else that can run shell commands. See the Agents page for every kind’s launch command.
Choose your lead
Section titled “Choose your lead”The agent whose pane you start the plan playbook in becomes the lead. It names its pane lead and writes Lead: lead (<kind>: <model>) into the plan. It never codes or reviews in its own run. During the run it dispatches milestones and is woken to decide; see The lead and the event manager.
| Lead | Start it with |
|---|---|
| Claude Code | /orch-plan <feature> |
| OpenCode | /orch-plan <feature> |
| Codex | $orch-plan <feature> or “use the orch-plan skill: <feature>” |
| Amp, Hermes, Antigravity | “use the orch-plan skill: <feature>” |
| any agent | “Run orch lead plan and follow it. Feature: <feature>” |
Pick roles for your team
Section titled “Pick roles for your team”- Lead: the agent you talk to most. It reads a lot of code, plans and coordinates, so give it a high-tier model.
- Coders: one or more, each on a model that fits the work you expect: a small fast one for simple milestones, a medium one for normal implementation, a high one when the plan has design work. With two, a backend + frontend feature is split so both work at once.
- Reviewer: optional, any spare agent, at least as strong as the work it reviews. A different kind from the coders gives a second opinion; another pane of the same tool works too.
One tool, whole team
Section titled “One tool, whole team”You don’t need several tools, or to open every pane yourself. With only Codex (or only Claude Code, or only OpenCode), open one pane, start the plan playbook in it, and the lead builds the team from that same tool.
~/my-app$ codex (one herdr pane)> $orch-plan add a login page
lead: only one agent window is open, so the team is 2 more Codex coders and a Codex reviewer; orch opens their windows when you say go. Workers: codex-1 (codex: gpt-6-luna), codex-2 (codex: gpt-6-sol) Reviewer: reviewer (codex: gpt-6-sol)> goorch start → codex-1, codex-2, reviewer: herdr=NOT FOUNDorch team up → OPENED codex-1 in ../my-app-wt/codex-1, codex-2 in ../my-app-wt/codex-2, reviewer in my-apporch start → every agent found; the run goes on as usualTwo commands do this, and the lead runs both:
| Command | What it does |
|---|---|
orch team <kind> |
Picks the team from one tool: coders spread over the tiers the catalog allows for it (the weakest and the strongest first), and a reviewer on the strongest. Prints the Workers: and Reviewer: lines for the plan. --coders N, --models a,b, --no-reviewer change the pick. Read-only. |
orch team up [--dry-run] |
After orch start: opens a pane for every worker and the reviewer that herdr can’t find, split from the lead’s pane, in the agent’s folder (its worktree, or the repo), starts it on its plan model and gives it its plan name. Agents that already run are left alone, so running it twice is safe. |
Good to know:
- Every pane is its own session of the same tool, on your existing login. More panes use more of that tool’s limits, so the lead opens only what the plan needs (
--coders 1for a one-milestone feature). - Codex has no high-tier model in runs (Astra is denied), so a Codex-only team does high-tier milestones on its strongest allowed model.
orch team codexandorch syncsay so. - If a new pane stops at a first-run question (trust this folder, sign in),
orch team upreportsWAITINGwith the rename command; answer the question in that pane and runorch team upagain. - For a kind herdr can’t watch,
orch team upopens and labels the pane and tells you thename (kind @pane:<id>)line to put in the plan.
Models
Section titled “Models”An agent kind is the tool; the model is what runs inside it. The plan records both: claude-1 (claude: sonnet). orch agents launch claude --model sonnet prints the command that starts a pane on a model, for kinds whose registry entry has a model_flag (Claude Code, Codex, OpenCode). For the others, pick the model inside the tool and write it in the plan.
Milestones are matched to coders by tier, not by kind. The plan’s Prefer: line can still steer a milestone to a kind or a named coder when the tool matters; it is a preference, not a lock. See Models and tiers.
The registry
Section titled “The registry”orch agents shows every known kind: installed or not, roles, whether Herdr can watch it, and its launch command. Defaults ship in agents.default.toml.
orch agents launch <kind> [--model <id>]prints the command.orch team <kind>andorch team upbuild and open a team from one tool (see above).orch agents syncinstalls the skills for every installed agent. Run it after adding one.orch agents checkconfirms the skills are installed.
Add your own agent
Section titled “Add your own agent”Add or fix kinds in ~/.config/herdr-orchestra/agents.toml, merged key by key over the defaults:
[claude]launch = "claude --permission-mode acceptEdits"model_flag = "--model" # what `launch claude --model <id>` appends
[myagent] # a new kindbinary = "myagent"launch = "myagent --auto-approve"herdr_detect = false # herdr can't tell its idle/working/blocked stateroles = ["coder"]skills_dirs = ["~/.myagent/skills"]Agents Herdr can’t watch
Section titled “Agents Herdr can’t watch”For a kind with herdr_detect = false, orch relies only on the done file and the time budget, and orch status marks it detect:off. If Herdr doesn’t recognise the pane as an agent at all, address it by pane id: Workers: hermes-1 (hermes @pane:w1:p3).