Claude Code Learning Hub
中文 Mingyu's Library

Hub / Tips / B · Parallelism & throughput

Multiple sessions or multiple agents — which actually speeds you up?

When work piles up, should you open more terminal windows or have Claude dispatch more agents? This page gives you a decision rule you can apply as-is.

These two are often treated as two ways of doing the same thing. In fact they solve problems along two different axes — they don't conflict, and neither can replace the other.

One-line answer

Answer Our takeIt's not either-or: multiple agents (subagents) solve width within a single task — side quests like searching, testing, and research run in parallel in separate contexts, bringing only summaries back to the main conversation; multiple sessions solve length across time — each independent piece of work gets its own nameable, resumable session. Ask "is this a side branch of my current task, or a separate piece of work?" and the answer falls out.

Steps

  1. Classify the work first.OfficialThe criterion for a subagent: a side task would flood the main conversation with search results, logs, or file contents you'll never reference again — so it does the work in its own context window and returns only a summary. Conversely, if it's a separate piece of work unrelated to what you're doing now, it deserves its own session.
  2. For width within one task, use subagents.Just say it in the conversation: "use subagents to research the auth, database, and API modules in parallel".OfficialSince v2.1.198 subagents run in the background by default, so the main conversation isn't blocked; but note that each subagent's result eventually flows back into the main conversation — spawn too many, each returning a long report, and they crowd out your context all the same.
  3. For multiple tasks across time, use multiple sessions.OfficialA session is a conversation bound to a project directory and persisted to disk: name it at startup with claude -n auth-refactor, then resume it by name with claude --resume auth-refactor; inside a session, /branch copies the current conversation to try another path while leaving the original untouched. For the full session-management playbook, see D6 · Session management.
  4. Multiple sessions editing the same repo will step on each other's files — the fix is one worktree per session; see Worktrees: keep parallel sessions out of each other's way.
  5. At larger scale, upgrade by asking "who coordinates".OfficialThe docs give selection criteria for four parallelism modes:
    ModeWho coordinatesWhen to use it
    SubagentsClaude dispatches and collects results within one conversationSide tasks would flood the main conversation
    Agent view (claude agents)You toss independent tasks into the background and check status laterSeveral unrelated things in flight at once (research preview)
    Agent teamsA lead agent splits work, assigns it, and tracks progressYou want Claude itself to coordinate a group of workers (experimental, off by default)
    Dynamic workflowsA script holds the plan and runs dozens or hundreds of subagentsRepo-wide audits, large migrations — work beyond what one conversation can coordinate
  6. Our own experiment backs this up.Our takeWe ran a controlled experiment with 27 agents and reached the same conclusion: multiple agents manage width within one task, multiple sessions manage length across time and total context, and the two axes are orthogonal; what actually decides whether parallel development succeeds is having an interface contract everyone follows. Full write-up: Multiple sessions or multiple agents? I ran 27 agents to find out.
  7. Cost note.OfficialRunning several sessions or subagents at once multiplies token consumption, and it all counts toward your plan's usage and rate limits.

Copy-paste prompt

I have these things on my plate:
1. <task A>
2. <task B>
3. <task C>

Classify them first — don't start working yet:
- Which are side branches of the same task that can run in parallel?
  Handle those yourself with background subagents; each subagent should
  return only its conclusions and a list of changes, not its working
  output;
- Which are independent tasks? List those back to me and I'll open a
  separate session for each with claude -n <name>.

Show me the classification for confirmation first; once I confirm,
execute only the parts that belong in this session.

Sources & last verified