How to keep track of multiple Claude Code sessions

Updated 21 October 2026

Run two or three Claude Code sessions at once and the hard part stops being the code: it’s remembering which session is waiting for a permission, which one finished, and which one is still working. Here are the ways to keep track, from Claude Code’s own agent view to notifications that name the project, and how to answer any session from your browser.

The short answer

OptionShowsAnswer permission prompts from it?
Agent view (claude agents)Background sessions: needs input, working, completedNo, you attach to the session first
Notification hook with the project nameWhich project needs you, as it happensNo
Agent PetsEvery Claude Code, OpenCode and omp session, background or not, on every Chrome pageYes: Allow, Always, Deny and reply from any tab

1. Agent view: one screen for background sessions

Claude Code has a built-in dashboard for parallel work. Run:

Terminalclaude agents

Each prompt you type there starts its own background session, and every session gets a row grouped under Needs input, Working and Completed, with a one-line summary of what it’s doing or asking. Select a row and press Space to peek at it and type a reply, or Enter to attach to the full conversation. To move a session you already have open into agent view, run /bg in it or press ← on an empty prompt.

Things to know:

2. Notifications that name the session

A plain notification hook says “Claude Code needs your attention”, which doesn’t help when three sessions could have sent it. Every hook receives JSON with the session’s working directory (cwd) and the message, so a short script can put the project name in the title. Save this as ~/.claude/notify.sh and run chmod +x ~/.claude/notify.sh (it uses jq):

~/.claude/notify.sh#!/bin/bash
input=$(cat)
project=$(basename "$(jq -r '.cwd' <<< "$input")")
message=$(jq -r '.message' <<< "$input")

if [ "$(uname)" = "Darwin" ]; then
  osascript - "$project" "$message" <<'EOF'
on run argv
  display notification (item 2 of argv) with title ("Claude Code · " & item 1 of argv)
end run
EOF
else
  notify-send "Claude Code · $project" "$message"
fi

Then point a Notification hook at it in ~/.claude/settings.json:

~/.claude/settings.json{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt|idle_prompt",
        "hooks": [{ "type": "command", "command": "~/.claude/notify.sh" }]
      }
    ]
  }
}

Now each alert is titled with the project, such as “Claude Code · checkout-api”, above Claude’s message, such as “Claude needs your permission”. The matcher limits it to permission prompts and “waiting for you”; leave it empty for every notification type. Type /hooks in Claude Code to check that it’s registered.

Tip: run /rename and /color in each session so its name and color tell them apart in the terminal and in agent view.

3. See and answer every session from your browser with Agent Pets

If you spend the wait in Chrome, Agent Pets turns each session into something you can see from any page:

It installs with one command, npx getagentpets init, and runs entirely on your computer: your code and prompts never leave your machine. Each terminal keeps its own prompt, so you can answer in either place.

Get Agent Pets — was $25, now $6Get Agent Pets — $25

Questions

How do I see which Claude Code session needs input?

For background sessions, run claude agents: sessions waiting on you are grouped under Needs input at the top. For sessions in separate terminal windows, use a Notification hook that puts the project name in the alert, or Agent Pets, which shows every session as a pet with its state above it.

Can I approve a permission prompt from agent view?

Not from the peek panel. A reply you type there waits in the queue; attach to the session with Enter or → to answer the prompt.

Do I get notified when a background session needs me?

While agent view is open, yes: Claude Code sends a notification, and fires the Notification hook with agent_needs_input or agent_completed. With agent view closed, it doesn’t.

Sources: Claude Code’s documentation on agent view and hooks.

More guides