VCode home

See what the agent is doing right now

Agents: claude, codex, opencode · On: phone, desktop

While a turn runs, the last thing in the transcript is a live card that says what the agent is doing and how long the turn has been going.

Why you would use it

An agent can spend a minute inside one command with nothing to show. The line tells you whether it is writing an answer, running something, or thinking, so a quiet screen does not read as a hung app.

How to use it

  1. Send a message. The card appears under the last durable card.

    A turn in flight: the tool card says running, and the live card under it reads Running bash with the command's output below

  2. Read the label on the left and the timer beside it.

    The live card close up: spinner, Running bash, the elapsed time 0m 11s, and the command's output tail under them

  3. To interrupt the turn, use the Stop key in the composer. See stop-a-running-turn.

What you see

One of five labels, with a spinner in the transcript's left gutter, on the line that joins the turn's steps. The spinner is a small grid of blocks that shows the VCode, Claude, OpenAI, Cursor, opencode, Devin, Copilot and Muse logos one after another in a shuffled order, in grey shades. Each logo forms first, then a white light sweeps left to right across it and on into the label, every 2.9 seconds:

Label Means
Writing the reply is streaming; the card holds the answer so far, rendered as markdown
Running <tag> a tool call is open, e.g. Running bash; the card holds the command's raw output tail
Waiting on subagent the agent launched a subagent and waits for it to return; a message you steer in waits too (queue-or-steer)
Thinking reasoning is streaming, or nothing has been reported yet
Compacting the context is being summarised, not worked on

After the label, the time the named step has taken as 0m 12s, counting up: Running bash counts from when that command started, and Thinking or Writing from the last step that finished, or from the start of the turn when there is none yet.

While text is arriving a ▌ cursor sits at the end. Command output is shown in a monospace block, never as markdown, so a file the command printed cannot be mistaken for prose. With no output yet the card is a single status line rather than an empty box.

Order matters: visible output beats an open tool, which beats thinking. When the durable card for the message lands, the live card goes.

The card also comes up for a turn you did not send. Claude starts one for itself when a background agent finishes, when a ScheduleWakeup fires, or when a cron job comes due; the transcript has no message of yours at the top of it, and everything else (the label, the timer, the Stop key, the tab's working dot) reads the same as any other turn.

Limits and known gaps