/team <task> (or chanto team "<task>" [--agents N]) puts a lead agent in charge of several worker agents:
- Plan: the lead explores read-only and splits the task into independent sub-tasks (up to twice the agent count, at most 8). Each sub-task owns some files or directories, so the workers don't edit the same files. You see the plan, with any overlapping ownership flagged, and approve it.
- Run in parallel: each sub-task becomes a background run in its own worktree and branch, at most
agentsat a time. All of them start from the same base: HEAD plus a snapshot of your uncommitted changes. Each run has its share of the budget, verified mode and needs-input prompts. They show up inchanto runs. - Review: as each run finishes, the lead reads its diff, verification result and final message, then accepts it or rejects it with a reason. A rejected sub-task is re-delegated once with that feedback. A failed run (error, budget, time limit) is reported, not retried.
- Merge: accepted results are cherry-picked onto the team branch
chanto/team/<id>in plan order. If one conflicts with the work merged before it, the cherry-pick is aborted and the sub-task is re-delegated once. The new run starts from the merged work and is told which files conflicted. If that also fails, the sub-task is reported as a conflict. - Check and report: the project's checks (verified mode's
checks, or the detected ones) run on the merged result. The report lists each sub-task with its runs, state, notes and the check results.
Your checkout is never touched. chanto team apply <id> brings the team branch onto your current branch the way chanto runs apply does (cherry-picked, or applied uncommitted if you have local changes). You can also git merge chanto/team/<id>.
While it runs, the TUI shows ⧉ team 1/3 merged · 2 running in the status line and a line per sub-task above the prompt. A sub-task waiting for input says so: answer it with /runs attach <id>. /team status shows the list, and /team stop stops the team and its running sub-tasks. Esc detaches the lead but leaves the sub-tasks running. chanto team resume <id> picks the team up again (the record is in ~/.chanto/teams/<id>/team.json). chanto team list and chanto team show <id> show past teams.
The budget is the total for the sub-task runs, split evenly. A re-delegation only happens if the total still has room for another share. --max-cost overrides it for chanto team. Model, provider, mode and --no-verify apply to the sub-task runs.
[team]
agents = 3 # sub-task runs at once (`--agents N`); the daemon's `[background] max_parallel` also applies
max_cost_usd = 6.0 # total, split evenly across sub-tasks