Screens / Watching the work
Run console with recovery
List every run, steer the ones in flight, and say what to do about the ones that stopped.
For: The people who run agents day to day.
3 ways to lay it out
1. List and run detail
Pick it when: The default: a table of runs and the selected one's detail.
- Run logProEvery run, one line each, filterable to failures.
- Run recoveryProA run that stopped, and what the person can do next.
- Steer composerProSend a message into a run, and see whether the agent has picked it up yet.
- Log streamProThe live log.
- Agent screenProA computer-use or browser run's screen, saying who has control, with Take over and Hand back.
Pro and Premium items need a licence key; free ones install as they are.
2. Chat starts runs, console beside
Pick it when: Runs start from a conversation, and the person wants to watch them without leaving it.
- Task trayProBackground work as one pill: how many are running and how many need you.
- Agent activityProWho is working right now, in words.
- Run logProThe runs the chat started.
Pro and Premium items need a licence key; free ones install as they are.
3. A stopped run
Pick it when: A run failed, was cancelled or went quiet: the page leads with what can be done.
- Run recoveryProWhy it stopped and the options: resume, retry, or leave it.
- Run heartbeatProPast a threshold, "No update since 10:42".
- Log streamProThe last lines, with gaps marked.
Pro and Premium items need a licence key; free ones install as they are.
Rules that matter most here
- Unknown stays unknown
A silent run is "no update since", never "running"; a steer message is "sent" until the agent has picked it up.
- Say what can and can't be undone
Resuming or retrying says what the run already did and won't repeat.
- Nothing is pre-selected in a decision
Resume, retry and leave it are all offered and none is the default.
Already covered elsewhere
- Pattern: Agent trace viewer for React
- Pattern: Show a computer-use or browser agent's screen
- Builds the whole screen with an agent route and a store: Run console (Premium), with a
-claudetwin for the Claude Agent SDK.
Brief for a coding agent
Paste this into the agent that builds the screen. The docs MCP server returns the same text from get_screen.
Build a run console with Candor UI. Start from the run-console block (run-console-claude for the Claude Agent SDK): an agent starts and steers runs from the chat, and a console lists every run with its log, trace and receipt. List runs with RunLog; open one to show its LogStream, TraceViewer and RunReceipt. RunHeartbeat shows "No update since <time>" past a threshold; it never calls a silent run alive. A stopped run shows RunRecovery: why it stopped and what the person can do, with no option pre-selected. SteerComposer sends a message into a run and shows whether the agent has picked it up yet, never as "read" before it is. Say what a retry or resume repeats and what it skips. Show background work as a TaskTray in the shell. Start from the "List and run detail" layout: A run list on the left; on the right the selected run's log, state and a steer box. Candor items: run-log (https://candor.themethodic.com/docs/run-log.md), run-recovery (https://candor.themethodic.com/docs/run-recovery.md), steer-composer (https://candor.themethodic.com/docs/steer-composer.md), log-stream (https://candor.themethodic.com/docs/log-stream.md), agent-screen (https://candor.themethodic.com/docs/agent-screen.md). Install: npx candor-ui add run-log run-recovery steer-composer log-stream agent-screen Read each item's docs before using it and take its props from there; don't guess them. Pro and Premium items need the person's licence key, which they add with `npx candor-ui key <key>`; don't ask for it.