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
| Option | Shows | Answer permission prompts from it? |
|---|---|---|
Agent view (claude agents) | Background sessions: needs input, working, completed | No, you attach to the session first |
| Notification hook with the project name | Which project needs you, as it happens | No |
| Agent Pets | Every Claude Code, OpenCode and omp session, background or not, on every Chrome page | Yes: 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:
- It lists background sessions only. Sessions you have open in other terminal windows don’t appear until you background them.
- A reply from the peek panel doesn’t answer a permission prompt: it waits in the queue until you attach and answer the prompt itself.
- Claude Code notifies you when a background session needs input or finishes only while agent view is open.
- Agent view is in research preview, so the screen and shortcuts may change.
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:
- Every live Claude Code, OpenCode and omp session gets its own named pet that walks along the bottom of the page, whether you started it in a terminal window or in the background.
- A capsule over each pet says what it’s doing: Thinking, Allow Bash?, Your Turn or Done. The toolbar badge counts the sessions waiting on you.
- When a session wants to run a command or edit a file, its pet bounces. Click it and answer Allow, Always or Deny right there, no attaching or switching windows.
- Read any session’s latest answer and send its next message from the tab you’re on.
- In another app, a desktop notification names the pet that needs you, with Allow and Deny on it.
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.