See Claude Code subagents and tool calls live
In ccdeck, every Claude Code subagent is a card of its own, joined to the session that started it, with its last four tool calls beside it as they run; double-click a card to list its tool calls, and click one for its input and response.
You will
- Read a card, its lines and its bubbles
- Find your way around the canvas
- Open an agent's details and its tool calls
- Know what a restart brings back
Before you start
- The deck open in your browser. Install ccdeck with npx and see your first session shows how.
- At least one Claude Code or Codex session on the canvas.
Steps
-
Read the cards and the lines
Each card is one agent: a session, or a subagent that a Claude Code session started. Subagents stand in one column beside their session, joined to it by a line each: dashed and moving while running, solid once finished.
Open the full-size picture
Demo data One session with four subagents, of which only reviewer is still running. Each card's state pill reads LIVE, DONE or ERR. The bubbles to the right are its last four tool calls: a pulsing dot while one runs, ✓ once finished, × if it failed. A note tied to a session's card says what it is doing, and its plan once it keeps one.
Codex cards show less. A Codex card has no title; its note gives the prompt's first line while a turn runs. A child session Codex starts gets its own card, joined to its parent.
More about what a card shows
- Top row: the state and the name, a session's folder or a subagent's type.
- Second row: session, child session, or subagent and its folder; → 4 for four subagents started; the model chip, with the effort once stated (Opus 5 · high); then the agent's run time.
- Then a Claude Code session's title; once the agent keeps a to-do list, its steps done of all and the one under way; and a chart of the last 60 seconds.
- Last row: the tool calls (tools), those still running (in-flight) and, once one fails, how many failed. A session adds its tokens (tok) and spend.
- The ring at a session card's top right: the share of the context window in use (Codex's own figure, the deck's estimate for Claude Code). Click it for the breakdown.
- Beside a Bash call, a second bubble names the program, such as
npm; beside a file call, the file.
-
Fit the board and move around it
Press F to fit every agent on screen. Drag the empty canvas, or scroll, to pan. Hold Ctrl (Cmd on macOS) and scroll to zoom, or pinch on a trackpad.
Demo data The canvas controls, and the chip that appears once you move the view. Once you move the view or click a card, the deck stops bringing new sessions into view and shows Auto-fit off. Click Resume to turn auto-fit back on.
More about the keys and zooming out
- J and K: the next and the previous agent, opening its detail panel.
- Tab reaches the cards, and Enter opens the focused card's detail panel.
- F: fit once; auto-fit stays off.
- Z: zoom to the selected agent and its session.
- W: the session waiting on you, oldest first; press again for the next. Claude Code only.
- L: the session list. D: the detail panel.
- Esc: close what is open, deselect, release focus.
Hover over a canvas control for its tooltip. ? opens the full list. The arrow keys do not pan the canvas. Zoomed far out, cards become small faces: hover over one for its name, state and numbers. A running session's face then shows its plan's progress, such as 2/5 done, and so does the label above its frame: plan 2/5.
A new session lines up with the column it joins, and nothing already on the board moves.
-
Open the session list
Press L, or click the session list icon on the stripe on the left. Sessions waiting on you come first, then running ones, then finished ones.
Open the full-size picture
Demo data A row counts its subagents' tool calls too, so web-api reads 19 here. Click a row to frame that session and open its detail panel. Cmd + K, or Ctrl + K, finds a session by name. L or ‹ closes the list; Esc does not.
Claude Code only. The deck cannot see when Codex asks you something, so Codex sessions never sort to the top. Watch their terminals.
-
Open one agent's detail panel
Double-click a card.
Demo data A session's panel, whose newest tool call is still running and shows … instead of a duration. Its last section, Tool calls, lists each call, newest first. Close the panel with ×, D or Esc.
More about the panel and a session's usage
- Plan: the agent's to-do list once it keeps one, with now on the step under way.
- Activity: how many calls, how many are running or failed, and the calls by kind.
- Tokens: in, out, cache r (read) and cache c (created).
- Identity: the folder (cwd), the session id and, for a subagent, its parent.
- Prompts: what was typed into the session, newest first.
- Tool calls: each with how long it took.
Tokens and spend belong to the session; a Claude Code session's include its subagents'.
For a whole session's usage from this computer's logs, open Usage (U) and its By session, and click the session's row. Session usage lists its total tokens, a token breakdown with Cached input reuse, the models and an estimated cost; for Codex, Estimate using reprices it as Standard, Fast or Flex.
Below 641 px wide, the panel covers the canvas; × gives it back.
-
Open one tool call
Click a row under Tool calls in the detail panel. A dialog shows the call's Input and Response.
Open the full-size picture
Demo data A finished Bash call from the migrator subagent. A long block ends in show all. Clicking a bubble on the canvas opens the same dialog.
More about the dialog
For Bash it shows the command and its output, for Edit the file and the change, for Read the file.
The panel keeps the last 200 calls of each agent, and the full input and response of the newest 25 only. For an older call, the dialog says its full payloads were released, and shows a short preview.
The bubbles cannot be reached from the keyboard; the Tool calls list can. Esc or × closes the dialog.
-
Know what a restart brings back
The deck logs every event, and reads back up to the newest 2,000 when it starts. A restart, even after an upgrade or reboot, redraws what was there. Nothing is recorded while the deck is stopped.
A session working when the deck starts can come back marked restored, without its earlier tool calls. A card with ? beside its name and ≥ before its clock is a session the deck joined late.
Clearing the canvas empties the log too. C, or the bin in the canvas controls, asks first. A restart cannot bring back what it cleared.
More about the log
It is
events.jsonl, in~/Library/Logs/ccdeckon macOS,%LOCALAPPDATA%\ccdeck\Logon Windows, and$XDG_STATE_HOME/ccdeckor~/.local/state/ccdeckon Linux.CCDECK_HOMEmoves it; withCLAUDE_CONFIG_DIRset, it is inagent-daginside that directory.npx ccdeck --statusnames each running deck's log.- The replay holds fewer events when they are large. A deck started with
--workspaceor--scopereplays only that folder. --historyuses a file of your choosing, and--no-persistwrites nothing and replays nothing.- Restore unfinished sessions, in Settings › General, is on for Codex and Claude Code; a change applies at the next start. Claude Code's need macOS or Linux and a verified busy process; Codex's come from recent logs with no ending, process unconfirmed.
- A late-joined card's clock starts when the deck first saw it.
- Dragged card positions live in this browser, not the log. R drops them; Undo, or Ctrl + Z (Cmd + Z on macOS), soon after puts them back.
- The replay holds fewer events when they are large. A deck started with
If something goes wrong
Clicking a card does not open its details
A click only frames the card's session. Double-click the card, or press D.
A letter key does nothing
Turn on Single-key shortcuts in Settings › Keyboard. If it is on, an open dialog or a control you reached with the keyboard is keeping the keys: press Esc first.
The text is too small, or too large
Pick another size in Settings › Text & density; the cards follow it.
Nothing came back after a restart
The deck ran with --no-persist or another --history file, or the canvas was cleared. Start it without --no-persist, with the same --history as before.
A finished session is gone from the canvas and the session list
The board keeps six finished sessions; an older one goes two minutes after it finishes. One taken off by Remove from board or Hide finished sessions after (Settings › General) keeps its row in the list: click the row to bring it back. A hidden one returns to its place once it works again.
Something else? See Troubleshoot ccdeck: status, logs, port and hooks.