The problem
When Claude Code hands a job to a subagent, the main conversation mostly sees the job going out and a summary coming back. What the subagent read, which commands it ran and what it edited on the way stay in a separate transcript file, so checking its work means trusting the summary or digging through JSON Lines on disk.
- A summary can say "all tests pass" without showing which tests ran.
- A failed or stopped subagent's reason is easy to miss in the parent's transcript.
- With several subagents running at once, you can't see which one is on which step.
How Pairbar solves it
- Find the chat's subagentsA 👥 chip on a chat's row counts the subagents working now. Click it, or choose Show subagents from the chat's menu, to list them under the chat: running first, then failed and stopped, then done (folded behind Show N done).
- Hover for a quick lookRest the pointer on a subagent for its status, model and time, the tokens it used and its share of the chat's, how many tool calls it made, and what it's doing or found, with Open transcript and Copy result.
- Open the transcript readerClick the subagent. The reader opens beside the sidebar: at the result for a done subagent, following along for a running one. Drag its edges to resize it; it keeps the size.
- Read the brief, steps and resultThe brief is folded to three lines (Show more). Each step is one line, such as "Bash · swift test …" or "Edit · ChatStatus.swift (+24 −3)"; click one, or select it with ↑↓ and press ↩, for its output or diff. The result sits at the bottom with Copy.
- Search it⌘F searches the brief, the steps, their output and the result; ↩ or the arrows move between matches. Esc closes the search, then the reader.
Shortcuts
| Shortcut | What it does | Where |
|---|---|---|
| ⌘F | Search the transcript | transcript reader |
| ↑ ↓, ↩ | Move between steps, open one | transcript reader |
| Esc | Close the search, then the reader | transcript reader |
What the reader shows
| Part | What's in it |
|---|---|
| Header | title, status chip, type, model, run time (counting while it runs), tokens (in, out, cache), when it started; Show in chat, Copy result, Copy all (the whole transcript as Markdown) |
| Brief | the task it was given; long paths shortened (~ for your home folder), shown in full on hover |
| Steps | one line per tool call; reads in a row fold into "Read N files"; what the subagent said between steps reads as text; a step that started its own subagent opens to that subagent's steps |
| Result | its final answer, set apart at the bottom, with Copy |
| Live | new steps scroll into view and the current one shimmers; scroll up to stop following, Jump to latest to come back |
Commands show as their program and subcommand ("npm test …") and links as their site and path, never their query. Show in chat opens the parent chat in Claude (the app's links can't point at a single message). Each subagent's menu also has Reveal transcript in Finder.
Outcomes
- Done: a finished answer.
- Failed: an error, with the reason (such as an API error or an unknown agent type), including a call that failed before the subagent started.
- Stopped: one you interrupted, or one cut off when its chat stopped.
- Background subagents (Claude's "run in background") show as running until they report back.
A subagent that's waiting for you makes its parent chat show Needs you. With Subagent finished or failed on (Settings → Notifications, off to start with), you get a banner when one ends while you're in another app. From the focused chat's context card, "3 running" unfolds the subagents and opens the newest in the reader.
Without Pairbar
Without Pairbar, subagent transcripts are still on disk and readable:
- Open the file: Claude Code keeps each subagent's transcript as
agent-<id>.jsonlunder the session's folder in~/.claude/projects/, until its clean-up period (30 days by default) removes it. - Filter it with
jq, for example to pull out tool calls and the final message. - Read the parent chat in the Claude app or terminal, which shows the job going out and the subagent's answer coming back.
- Resume the session with
claude --resumeto scroll back through it in the terminal.
Frequently asked questions
- Where does Pairbar read subagent transcripts from?
- From the transcript files Claude Code already writes on your Mac. Pairbar only reads them; nothing is uploaded or changed.
- Can I read a subagent while it's still running?
- Yes. The reader follows along: new steps scroll into view and the current one shimmers. Scroll up to stop following, and Jump to latest brings you back.
- Can I copy what a subagent found?
- Yes. Copy result copies its whole answer, from the reader, its hover card or its menu; Copy all copies the whole transcript as Markdown.
- Can Pairbar stop or redirect a subagent?
- No. It shows subagents and their transcripts but doesn't control them. Use Show in chat to open the parent chat in Claude and interrupt or redirect it there.
Related
- DocsChatsThe chat list: status, grouping, sorting, filters, pins, labels, hover details, subagents, bulk actions, the chat menu
- Use caseSee the Claude Code subagents and Codex spawned threads running inside your chatsA 👥 chip per chat counts working subagents; the list shows each one's job, agent, progress and time, and questions surface on the parent.
- GlossarySubagentA helper agent a main coding agent starts for one piece of work, with its own context, returning only a summary.
- Use caseCreate, improve and manage Claude Code agents without editing Markdown by handThe Agents tab lists every Claude Code agent you have; New agent, Improve, Turn chat into agent and Teach start a Claude chat that writes the file.
- Use caseRun several Claude Code and Codex agents in parallel without losing trackA Needs you section, live activity lines, subagent chips, worktrees and ⌃1–9 for running many agents at once.
Try Pairbar free for 7 days
One sidebar for the Claude and Codex desktop apps. Everything on for 7 days, no card needed; then $49/year ($39 first year with LAUNCH), $9/month or $129 lifetime (first 200 buyers). macOS 26 or later, Apple silicon.