Watch a session

In the interactive relay shell, run /watch to tail the active session live:

text
/watch

The watcher reads artifacts as they're written to disk, so it works whether the relay shell is open in a parent terminal, a scriptable run is in tmux or CI, or a remote machine has rsync'd the session directory.

Synopsis

In the relay shell, with no arguments, /watch follows the most recent active session:

text
/watch [session-id] [flags]

From another terminal, agent-relay watch takes the same arguments:

terminal
agent-relay watch [session-id] [flags]

Options

FlagTypeDefaultDescription
--no-followflagfalsePrint one snapshot pass and exit instead of following.
--poll-intervalfloat0.25Seconds between polls.
--metricsflagfalseShow a token / cost / duration panel that refreshes per turn.
--jsonflagfalseEmit JSON using the root CLI output mode.
--quiet, -qflagfalseMinimal output using the root CLI output mode.
--repopathcurrent directoryRepository path.

What you'll see

The watcher emits one line per event. Common event types:

TypeExample
promptturn 1 prompt sent 1,420 tokens
outputturn 1 output returned 380 tokens · 2 tool calls
toolturn 2 tool run_tests · exit 1
decisionturn 2 decision switched to pytest
blockerturn 3 blocker test_refresh_flow still red
statusstatus rate-limit reached · checkpoint saved

Examples

These are slash commands in the relay shell. The same arguments work on agent-relay watch from another terminal.

text
/watch

Exit codes

CodeMeaning
0Watch stream ended cleanly (session completed or checkpointed).
1The target session doesn't exist.
130Interrupted with Ctrl-C (this is normal — the watcher has nothing to clean up).