Agent pane (Labs): live todo card and activity line (cx-ncc.102)
Claude Code desktop's in-session status (its 10-14 release, video 5), harness-agnostic, behind the Debug Settings toggle agent.sessionStatus (bead cx-ncc.102).
With the Debug Settings toggle In-session status (agent.sessionStatus, off by default) on, a running turn changes in two ways:
- Todo card. The turn's todo list (Claude TodoWrite through acpmux, Codex's plan, any ACP
planupdate) draws as a quiet card under the work. Steps show a dashed circle while waiting, a spinner while running and a filled check when done. There is no heading, strike-through or bold, and a screen reader still hears progress and each step's state. - Activity line. One line under the card names what the agent is doing now and ticks the turn's time, e.g.
••• Edit ProductGrid.module.css 26s. It shows the running tool call as its row names it (a command shows as itself), else the todo in progress. It takes the "Working for" status's place. While the answer streams, the card stays above the answer and the line goes away.
With the toggle off, or for a turn without a list, nothing changes.
Base fix included: the todo list row is also .acpmux-plan (rows are acpmux-row acpmux-${kind}), the composer's Plan toggle class. The toggle's 28px height and flex centering applied to the row, and the row's paint containment clipped the existing list to about one item. The toggle's unscoped rules now name the button.
Captures
Real cmux NEXT: a DEV build of this PR merged with #20878, taken while the opt-in was still the Labs preview flag (it now reads the Debug toggle; the cards are unchanged), on a fleet capture slot, with a fake ACP agent sending a plan and tool calls. These were taken before the last commit: the activity line now names the file only (Edit ProductGrid.module.css) instead of its full path.
| Toggle on, dark | Toggle on, light |
|---|---|
![]() | ![]() |
Toggle on, live: the card moves through its steps while the activity line names each call.

Full quality:
Toggle off (before), real app

Gallery (agent-pane.plan-list, sbx Linux Chromium, dark):
Toggle on: live todo card and activity line

Toggle off, base: the existing list clipped to about one item (no heading, no third item)

Toggle off, this PR: the existing list whole again

Depends on #20953 (the agent.sessionStatus Debug toggle and its page event). #20878 has landed.
Testing
bun test test/transcript-plan-card.test.ts test/transcript-worked-fold.test.ts(sbx): 13 pass, including a file-name test that was red before its fix. The first commit adds the new test, which is red without the change (nostatusCardsoption orACTIVITY_LINEin turns.ts).vp check(format, lint, typecheck) is clean on sbx, and check-type-scale, check-layers and check-system-blue pass.
Follow-ups
- Present-tense labels ("Editing…") from TodoWrite's
activeForm: cx-ncc.105, next PR. - The reference's
›on the line (jump to the running call) is left out until the transcript can reveal a row by id.
Changelog
Added: Debug Settings toggle: a running agent turn shows its todo list as a live card with the current activity under it.
🤖 Generated with Claude Code

