A thread is making the rounds: "Claude can now run an actual agent team that talks to itself." The pitch — agent teams aren't sub-agents; they share a task list, message each other mid-task with no middleman, you flip it on with one environment variable, and you watch each agent think in a tmux view. The replies escalate from there ("more agents → more intelligence → better results").
Here's the unusual part: the underlying feature is real, officially documented, and verifiable down to the binary. The hype is mostly accurate on mechanism and mostly wrong on tone. This is an experimental, disabled-by-default feature with sharp edges the thread skips. So let's do the thing the thread doesn't: read the docs, check the binary, and separate what's true from what's a content hook.
(One honesty note: I couldn't verify the specific viral thread or its author, and a few secondary claims floating around — "2–16 agents," "shipped with Opus 4.6 on Feb 5" — aren't in Anthropic's docs. I'll flag those. The technical claims, though, check out individually.)
The one setting that turns it on
This part of the hype is exactly right. Agent teams are gated behind a single environment variable: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS, set to "1". You can export it in your shell, or put it in settings.json under the env key:
{
"env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" }
}
Per the official docs, without this variable "no team is set up at session start, no team directories are written, and Claude does not spawn or propose teammates." I didn't take that on faith — I grepped my own installed binary (~/.local/share/claude/versions/2.1.183) and the string CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS appears 9 times, alongside SendMessage (63), TaskCreate (39), teammateMode (23), and mailbox (38). It's real code, not a docs aspiration.
Display layout is a separate setting: teammateMode in settings.json (in-process, auto, or tmux), or the --teammate-mode flag. The "watch them think in tmux" view is just teammateMode: "tmux".
How it actually works
Once the flag is on, every session gets one implicit team, and there are four moving parts (architecture docs):
- Team lead — your main session. It plans, spawns teammates, and coordinates.
- Teammates — each one is a separate, full Claude Code instance with its own independent context window. This is the load-bearing distinction (more below). The lead spawns them via the
Agenttool'snameparameter. - A shared task list — stored at
~/.claude/tasks/{team-name}/, withpending/in-progress/completedstates plus dependency tracking. A pending task with unresolved dependencies can't be claimed until they finish; blocked tasks auto-unblock when their dependencies complete. Teammates self-claim the next unassigned, unblocked task, and claiming uses file locking to avoid two agents grabbing the same work. - A mailbox — teammates message each other peer-to-peer via
SendMessage(delivered automatically, genuinely no middleman), withSendUserMessagefor agent-to-user. There's no single broadcast call — it's one message per recipient.
A few details the tutorials gloss: teammates do not inherit the lead's conversation history — they get CLAUDE.md, MCP servers, skills, and whatever you put in the spawn prompt, nothing more. SendMessage and the task tools are always available to a teammate even if its tool allowlist is otherwise restricted. And quality gates ride on hooks — TeammateIdle, TaskCreated, TaskCompleted — where a hook exiting with code 2 blocks the action and returns feedback.
Worth knowing if you read older guides: the TeamCreate / TeamDelete tools were removed in v2.1.178. The implicit-team model replaced them; team_name on the Agent tool is now accepted but ignored.
Agent teams vs. subagents — the real distinction
The thread's sharpest claim is that agent teams "aren't sub-agents." That's correct, and it's the whole point:
| Dimension | Subagents | Agent teams |
|---|---|---|
| Communication | Report results up to the main agent only; can't talk to each other | Teammates message each other directly via the SendMessage mailbox |
| Coordination | Main agent manages all work | Shared task list; teammates self-claim the next unblocked task |
| Context window | Run within the parent's context; results summarized back | Each teammate is a separate instance with its own full context window |
| Direct interaction | You can't address an individual subagent | You can interact with individual teammates directly |
| Inherited history | Works from the prompt the parent hands it | Gets CLAUDE.md, MCP, skills, spawn prompt — not the lead's conversation |
| Nesting | Spawned by the main agent | No nested teams — teammates can't spawn teammates |
| Token cost | Lower — results summarized back | Higher — each teammate is a separate Claude instance |
| Status | Stable, generally available | Experimental, disabled by default |
In one line: subagents fan out and report back; agent teams are independent Claude instances coordinating through a shared task list and a mailbox. That's more powerful and more expensive.
Setup, step by step
- Enable it. Add the
envblock above tosettings.json(or export the variable). Without it, nothing happens. - Pick a display mode. Default is
in-process(everything in one terminal; navigate teammates with arrow keys + Enter). For side-by-side panes, setteammateMode: "tmux"(or"auto") and launch inside tmux or iTerm2. Split panes are not supported in VS Code's integrated terminal, Windows Terminal, or Ghostty. - Turn on Delegate Mode early (Shift+Tab) so the lead orchestrates instead of grabbing tasks and writing code itself. Leaving this off is the most common rookie mistake.
- Write file/module boundaries into
CLAUDE.md, and mark shared files "coordinate before editing," so two teammates never touch the same file. - Spawn teammates with complete briefs (they don't inherit your conversation). Set per-teammate model to Sonnet to control cost.
- Optionally wire quality-gate hooks (
TeammateIdle,TaskCreated,TaskCompleted). - Start with read-only research/review tasks to validate coordination before you let agents write files in parallel.
Rules that separate a clean run from chaos
The thread promised "the rules." Here they are, from Anthropic's best-practices docs and practitioners like Addy Osmani:
- Delegate Mode on, always — or the lead does the work itself and the team is theater.
- Explicit, non-overlapping file ownership per teammate. Concurrent edits to one file cause overwrites.
- Keep teams small. Anthropic recommends 3–5 teammates, ~5–6 tasks each; "three focused teammates often outperform five scattered ones."
- Brief completely in the spawn prompt — no inherited context.
- Read-only first. Surface coordination bugs cheaply before parallel writes.
- Sonnet for teammates, and shut them down when done — each active teammate burns tokens until it exits or the session ends.
- Monitor actively. Don't set-and-forget; that's where silent token burn lives.
- Don't use teams for the wrong shape of work — sequential tasks, same-file edits, or heavy cross-dependencies. The coordination overhead isn't worth it.
The failure modes the hype skips
This is where "more agents → better results" falls apart. All of these are documented or community-reported:
- No teammate resume.
/resumeand/rewinddon't restore in-process teammates — and the lead may then try to message teammates that no longer exist. - Task-status soft-deadlock. Teammates sometimes fail to mark tasks complete, blocking dependent tasks indefinitely.
- File overwrites. Two teammates editing the same file clobber each other. Partitioning is on you.
- Slow shutdown and orphaned tmux sessions that need a manual
tmux kill-session. - Lead misbehavior — doing the work itself, or shutting down before the work is finished.
- Runaway token burn. FindSkill.ai reports one of several parallel agents "flying away," including a cited case of an agent deleting 24,000 production rows in a thinking loop with no interruption gate.
- Scale walls. The same write-up reports supervisor deadlocks (30–60s hangs switching between background agents) and a practical ceiling around 5–7 concurrent sessions on consumer plans.
- Structural limits. One team per session, no nested teams, lead fixed for the session's lifetime.
What it costs
The number to internalize: ~7x more tokens than a standard session — when teammates run in plan mode (costs docs). That multiplier is scoped to plan mode, not a blanket "agent teams cost 7x," but the direction is real: each teammate is a separate instance carrying its own context, so cost scales with the number of active teammates, not just the work done. Mitigate with Sonnet teammates, small teams, prompt shutdowns, and read-only-first validation. Activity is not value — five idle-but-alive agents are five meters running.
Hype vs. reality scorecard
- "An agent team that talks to itself." ✅ Mechanism true (peer-to-peer
SendMessage). ⚠️ But experimental, off by default, with documented deadlock/resume/shutdown caveats. Not GA. - "One env var in settings.json." ✅ Accurate —
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1, confirmed in docs and the binary. - "Watch them in a FleetView tmux view." ⚠️ Split-pane viewing is real (
teammateMode+ tmux/iTerm2). "FleetView" is the internal component name in the binary; user-facing docs call it "split panes." It's not a marketed feature name. - "Use TeamCreate / TeamDelete." ❌ Out of date — removed in v2.1.178. Every session now has one implicit team.
- "Basically souped-up subagents." ❌ No — separate instances with their own context that coordinate and message, not fan-out-and-report.
- "2–16 agents, shipped with Opus 4.6 on Feb 5." ❓ Unverified. Docs say "no hard limit" but recommend 3–5; the specific count and date aren't in Anthropic's docs.
- "Massively parallel = massively faster." ❌ ~7x token cost in plan mode, runaway-burn reports, and walls at 5–7 sessions. Coordination overhead can make small teams beat big ones.
People also ask
What's the exact setting? The environment variable CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS set to "1", in settings.json under env or as a shell variable. Experimental, off by default.
Do I need tmux? Only for the split-pane view. The default in-process mode runs all teammates in one terminal, navigated with arrow keys + Enter.
Can teammates spawn their own teammates? No. No nested teams, one team per session, lead fixed for the session.
What breaks most often? Two teammates editing the same file, task-status lag that soft-deadlocks dependent work, and the fact that /resume and /rewind don't restore in-process teammates.
Builder's takeaway
Agent teams are real, officially documented, and verifiable down to the binary — not vaporware, and the viral framing is technically accurate even where its tone oversells. But it's an experimental, disabled-by-default feature with edges the hype glosses: ~7x token cost in plan mode, file-overwrite and task-deadlock risks, no teammate resume, and a real ceiling before coordination overhead eats the gains.
The honest mental model: parallel independent Claude instances coordinating through a shared task list and a mailbox. That's powerful for genuinely parallel, file-partitioned work — independent modules, broad read-only research, multi-surface refactors — and wasteful or dangerous for sequential work, same-file edits, or anything you can't watch. Turn on Delegate Mode, partition files in CLAUDE.md, keep teams at 3–5 on Sonnet, start read-only, and monitor. Otherwise you're paying 7x to generate code that still has to be right. Run it as a deliberate experiment, not a default workflow.