Skip to main content

Sessions

The Sessions tab is the daily-use surface — a live list of every claude session ccmon is watching, with a detail pane on the right.

Layout

  • Left sidebar — every active session, oldest at the bottom. Each row shows the project / repo, the git branch, the working directory, and the session age.
  • Header badges — counts of stuck sessions and pending approvals at a glance.
  • Filter input at the top of the sidebar — filters by project, branch, or cwd.
  • Footer — total session count, stuck count, pending-approval count, and a live-update indicator that pulses when the daemon pushes a new event.
  • Right pane — the selected session's metadata (project, cwd, branch, started time, last activity), the recent timeline of tool events, and the current state pill.

Session states

Every session is in exactly one state, shown as a state pill:

StateMeaning
WorkingThe agent is actively running tools.
AwaitingThe agent is paused on a permission request. The Approvals tab will have a pending entry.
StuckThe agent has been idle past CCMON_STUCK_THRESHOLD_S (opt-in; see Environment).
EndedThe session has finished — by Stop, by user interrupt, or by exit.

Selecting a session

Clicking a row selects it and updates the detail pane. The timeline shows the most recent events in chat-style order — PreToolUse, PostToolUse, Notification, Stop, etc. — with tool name, input preview, and timing.

The detail pane updates live as the daemon pushes new events over its WebSocket interface. There's no polling — events appear as fast as the hooks fire.

What you can do from here

  • Open the session's transcript in the History tab.
  • Jump to its pending approval if there is one (the row's pending-approval indicator is clickable).
  • Refresh the long summary — invokes claude -p to summarize the session (cached for 30 s; capped at 2 concurrent calls so you don't hit your rate limits).
tip

Long Sonnet thinking can look stuck. The stuck state is opt-in — set CCMON_STUCK_THRESHOLD_S=90 to enable it with a 90-second threshold.