Docs · Status
Six states, from the agent.
Every session's tmux pane is polled, every two seconds by default
(poll_interval), and each poll resolves to one of six states.
Pane rules
Detection matches per-tool regex rules against the visible pane, reads the newest turn to
tell finished from waiting, and treats output that changes between
polls as working. A turn that ends without any summary line still resolves: a
working pane that goes quiet counts as finished, or
waiting when it ended on a question.
Work that outlives the turn which started it, such as a background agent, is matched by
busy_line, so a turn-end summary keeps reading as working while
that work runs. Polling continues while you are inside a session, so the statuses stay live.
Claude Code hooks
For Claude Code the status is first-hand rather than inferred. Sessions launch with a
generated --settings file whose
hooks write the lifecycle
state (working, waiting, finished, idle)
to a per-session status file, and the poller reads that first.
Pane rules still refine it, because hooks cannot see a plain-text question, an Esc interrupt
or an error line, so a matching pane verdict upgrades the hook status. They take over
entirely when the hook file is missing or stale. Enabled per tool with
status_source = "claude-hooks".
Reading the list
Each row carries its status and tool inline, and a folded group keeps a count per status, so
a collapsed subtree still tells you whether anything under it needs you. Selecting a session
shows the tail of its pane on the right, which is how a waiting agent's actual
question reaches you without attaching. A session with no window left, archived or killed,
shows the snapshot taken while it still had one.