Guide · updated November 5, 2026
How to set up a multi-agent Claude Code team
Give each agent one lane (a job and a working folder), a short persona, and the same standing rules. Coordinate them through a shared log and a task board instead of letting them talk mid-run. Cap how often each one runs, and route the decisions only you can make into one place.
1. One lane per agent
Agents that share a job duplicate work and overwrite each other. Split by responsibility, for example:
| Agent | Lane | Working folder |
|---|---|---|
| Coordinator | Plans the day, hands out tasks, sends you the decisions | Your projects folder |
| Builder | Turns tasks into tested changes | The app's repo (its own branch or worktree) |
| Reviewer | Checks the builder's work, reports findings | A second worktree of the same repo |
If two agents work in one repository, give each its own git worktree (git worktree add ../app-review main) so their uncommitted changes never collide.
2. Personas and shared rules
Each agent gets a short persona: who it is, what it owns, what "done" means. Every agent also gets the same standing rules: what needs your approval, how to ask you, how to report progress. With Claude Code you can append both to the system prompt on each run with --append-system-prompt-file. Keep the rules concrete; agents follow "never deploy without a yes from me" better than "be careful".
3. A team log and a task board
Agents need somewhere to leave each other notes that survives between runs. We use two plain files per day:
- A team log (markdown): one line per message,
14:05 · Reviewer → Builder · PR #42: two findings…. - A task board (JSON): each task has an owner and a status of backlog, in progress or done.
Small command-line tools that append to these files are easy for an agent to use from Bash, and easy to allow-list.
4. Deliver messages between runs, not during them
A headless claude -p run doesn't take new input while it works. So queue messages for an agent and deliver them as the prompt of its next run, when the current one ends. This also keeps an agent from being pulled off a half-finished task.
5. Caps, schedule and handoffs
- A daily cap per agent (we start at 12 runs) keeps an idle agent from looping, and keeps usage of your plan predictable.
- A workday window: start at a set hour, hold messages outside it.
- A handoff at the end of each day: each agent writes what it finished, what's waiting and a prioritized backlog. Tomorrow's first run starts from it.
6. One place for your decisions
Have agents tag anything only you can decide (needs Sam: …?) and collect those lines in one list with the options attached. You answer once; the answer goes back to the agent that asked. See approving from your phone.
Built-in alternatives
Claude Code itself can delegate work to subagents within one session, and Anthropic's documentation describes more multi-agent features (Claude Code docs). Those suit splitting a single task. The setup above is for long-running lanes that work through a whole day.
Where Elco Console fits
Elco Console implements this whole setup on your Mac: lanes with personas and shared rules, the team log and task board with elco-msg and elco-task, delivery at run end, caps, a workday scheduler, handoffs, and a "Waiting on you" inbox. It ships with coordinator, builder and reviewer starter personas.