New: watch your coding agents work, step by step, on a live board. Try the demo, no account

Claude Code subagents: how to see what each one is doing

By Jake Marsh, who builds Taskhold. Updated 2026-10-30. Facts about other tools checked 2026-10-30. 5 min read.

Short answer: Running background subagents get a row in the panel under Claude Code's prompt. /tasks lists them with their model, and Enter opens a subagent's transcript. Finished subagents drop off within 30 seconds. For a lasting record, log SubagentStop hooks, or have each subagent report its step and progress to a shared live board such as Taskhold.

Claude Code hands work to subagents on its own, and by default they run in the background while you keep typing. Once three reviewers and a test runner are going, it gets hard to tell which one is doing what, or which one is stuck. This guide covers what Claude Code shows while subagents run, what disappears when they finish, a hook that logs them, and how Taskhold gives each subagent its own step on a progress bar.

Try the board in the live board demo. For whole sessions rather than subagents, see agent teams on a live board and seeing what Claude Code is doing.

The live board, drawn with the same progress bar component the app uses. A working task with five steps, and a blocked task waiting on a reply.

Where Claude Code shows running subagents

Where Claude Code shows running subagentsChecked 2026-10-30 against code.claude.com/docs/en/sub-agents and interactive-mode.
WhereWhat you see
The conversationA tool call row with the subagent's name and a short task, such as code-improver(Suggest code improvements)
The panel under the promptA row per running background subagent and fork. For a fork, select the row and press Enter to open its transcript and send it messages
/tasksRunning shells and subagents, with the model each subagent runs on (v2.1.242 or later). Press Enter on a subagent to open its transcript
Ctrl+OThe transcript viewer: every tool call in detail, with timestamps
The @ typeaheadNamed background subagents that are running, with their status next to the name

Checked 2026-10-30 against code.claude.com/docs/en/sub-agents and interactive-mode.

Ctrl+T is a different view: Claude's own checklist, not the subagents. If that one is blank, see Claude Code task list empty.

What disappears when a subagent finishes

  • A subagent that finishes successfully leaves the panel at once. /tasks keeps it, marked done, for 30 seconds, and the footer shows /tasks to see subagents for those 30 seconds.
  • A subagent that fails or that you stop keeps its panel row for 30 seconds and leaves /tasks.
  • Results reach the main conversation as a completion notification in a later turn. Ask about progress before then and Claude says the subagent is still running.
  • Each subagent's transcript is saved in a subagents/ folder next to the session's transcript under ~/.claude/projects/, so the detail survives even when the row is gone.

Log every subagent with a hook

SubagentStart and SubagentStop hooks fire when a subagent begins and ends. SubagentStop receives agent_type, agent_id, agent_transcript_path and last_assistant_message (the subagent's final text) on stdin, so one command keeps a log of every run:

{
  "hooks": {
    "SubagentStop": [
      {
        "hooks": [
          { "type": "command", "command": "jq -c '{at: (now | todate), agent: .agent_type, id: .agent_id, transcript: .agent_transcript_path}' >> ~/.claude/subagents.log" }
        ]
      }
    ]
  }
}
Add to ~/.claude/settings.json; needs jq. Leave out the matcher to log every subagent, or set it to a subagent's name.

A subagent that reports through the SubagentHandback tool (v2.1.271 or later) delivers its report in that tool call, and last_assistant_message then holds only its closing text.

Limits worth knowing

  • Up to 20 subagents run at once by default. Another spawn fails with Concurrent subagent limit reached; CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS changes the limit.
  • Background subagents send their permission prompts to your main session and name the subagent asking. An answer that lasts beyond one call, such as for the rest of the session, applies to the whole session. Waiting for input without an alert covers getting told about those prompts.
  • Each subagent starts with a fresh context: its own prompt, the task message Claude writes, your CLAUDE.md files and a git status snapshot. It doesn't see your conversation, and the built-in Explore and Plan agents skip CLAUDE.md.

A step per subagent on Taskhold's live board

Subagents inherit the main conversation's MCP tools, and background subagents keep every MCP tool, so a subagent can call Taskhold's tools the same way the main session does. The pattern: the main session plans the task into steps with taskhold_plan, one step per subagent, and puts the step's id in each delegation message. Each subagent reports taskhold_progress on its step and completes it with a summary. The live board then shows one bar split by step, which steps are running, what each subagent last said, and any question one of them blocked on.

## Subagents and Taskhold
- Before delegating, taskhold_plan the task with one step per subagent and
  put that step's id in the subagent's prompt.
- Subagent: taskhold_progress on your step at milestones (N of M plus one
  line), then taskhold_complete it with a one-line summary.
- A decision only the person can make: taskhold_block the step with one
  question.
Add to CLAUDE.md next to the Taskhold workflow snippet. Subagents read CLAUDE.md when they start.
  • A subagent definition with a tools list gets only the MCP tools it names. Add mcp__taskhold__* to the list, or leave tools out.
  • Explore and Plan skip CLAUDE.md, so put the step id and the reporting rule in the delegation message itself.
  • Progress is what each subagent reports. The card's status dot shows when an agent last reported, so a silent one stands out. If the tools don't load at all, see MCP server not connecting and Taskhold troubleshooting.
Share this page:XLinkedInBlueskyHacker News

See how far along your coding agents are.

$12/month or $120/year after the trial. Card up front. Cancel before day 7 and you pay nothing. Every agent you run is included.

Questions

How do I see what a Claude Code subagent is doing right now?
Run /tasks, select the subagent and press Enter to open its transcript. Ctrl+O opens the transcript viewer for the main conversation, where each delegation shows as a tool call row.
Can I make Claude wait for a subagent instead of running it in the background?
Yes, in an interactive session: set CLAUDE_CODE_FORK_SUBAGENT to 0 in the env block of settings.json, start claude again, and ask Claude to wait. Ctrl+B sends a waiting subagent back to the background.
Do subagents get my MCP servers?
Yes, unless the subagent's definition narrows them. Subagents inherit the main conversation's MCP tools; a tools list keeps only the tools it names, and disallowedTools removes the ones it names.

Sources

Related

Updated 2026-10-30. Something wrong or out of date? Email hello@greatwork.company.