EN JA
Free download

How to Manage Multiple Claude Code Sessions Without Losing Track

Updated August 26, 2026

Claude Code spends most of its time working without you — which means the natural next step is running two, three, or five sessions at once. The hard part isn't starting them. It's isolating their work so they don't trample each other, and knowing at a glance which one is waiting on you. This guide covers both.

Why run sessions in parallel at all

A single Claude Code turn on a non-trivial task — implementing a feature, running a test suite, refactoring across files — can take several minutes. If you sit and watch, you're the idle one. Common parallel patterns:

Step 1: Isolate the work — git worktrees

Two sessions editing the same checkout is the classic failure mode: one session's git status fills with the other's half-finished edits, and builds pick up mixed state. The fix is git worktree: one clone, multiple working directories, each on its own branch.

# From your main checkout
git worktree add ../myapp-fix-auth  -b fix-auth
git worktree add ../myapp-new-onboarding -b new-onboarding

# One Claude Code session per worktree
cd ../myapp-fix-auth        && claude   # terminal tab 1
cd ../myapp-new-onboarding  && claude   # terminal tab 2

Each session now has a clean tree, its own branch, and its own build artifacts. When a branch merges, git worktree remove ../myapp-fix-auth cleans up. Worktrees share the object store, so this costs far less disk than extra clones.

Step 2: Give each session a home — terminal layout

Any multiplexer or tab-capable terminal works. What matters is that each session has a stable, findable place.

tmux

# One named window per session
tmux new-window -n fix-auth
tmux new-window -n onboarding

# Or split one window into panes
tmux split-window -h

Window names in the status bar double as a crude session list. tmux also survives SSH disconnects, which makes it the default choice for remote machines.

iTerm2 / Terminal.app / your IDE

Tabs or split panes work the same way: one session per pane, named after the task. VS Code and Cursor users often run one Claude Code session per editor window, scoped to that window's workspace — the integrated terminal keeps session and code side by side.

Two habits make any layout easier to navigate: rename tabs after the task (in tmux, tmux rename-window fix-auth), and give each session a status line — the /statusline command sets up a custom line under the prompt (model, git branch, context usage), so every session is self-describing when you land in it.

Step 3: The real problem — knowing who needs you

Isolation and layout are solved problems. The one that actually costs you time is attention routing. A Claude Code session blocks in specific, easy-to-miss moments:

With one session, you notice. With four, one of them is silently stalled behind the others' output — five minutes of wall-clock time gone because a yes/no dialog sat unseen. Cycling through tabs to check (Cmd+Tab, click, read, repeat) is exactly the kind of polling loop you'd never accept in code.

Terminal-native signals

You can get partial signal from the terminal itself: tmux's monitor-activity flags a window on new output (noisy — any output triggers it), and iTerm2 badges tabs on activity or bell. These tell you something happened, not Claude is blocked waiting for you — you still have to look.

Hook-based signals

Claude Code's hooks fire shell commands on lifecycle events — including Notification (Claude needs input) and Stop (Claude finished). Wiring those to macOS notifications gets you real push signal; our macOS notifications guide has copy-paste setup. The remaining gap: notifications tell you about events, but not state — "which of my five sessions are blocked right now?" still requires something that aggregates.

Step 4: A status board for all sessions

That aggregation is the piece we ended up building an app for. AgentManager is a macOS menu bar app that shows every Claude Code session on the machine in one small always-on-top floating window:

It works via the same public hooks API described above (setup is one click, and the hooks are cleanly removable), so it composes fine with your own hook scripts. Sessions run in worktrees, tabs, tmux — anywhere — and still land on the same board.

Practical tips that keep parallel sessions sane

See every session at a glance

AgentManager puts a status lamp on every Claude Code session and surfaces the ones that need you — free to use, no account required.

macOS 13+ — free plan shows up to 2 sessions at once