Help us improve
Share bugs, ideas, or general feedback.
From claude-commands
Detects whether AO worker tmux sessions are actively thinking, executing commands, idle, or queued. Avoids false idle reports by inspecting 20+ lines for Unicode activity indicators and tool-use patterns.
npx claudepluginhub jleechanorg/claude-commands --plugin claude-commandsHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-commands:ao-session-monitorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Claude Code renders the `❯` prompt at the bottom of the tmux pane **while the model is thinking above it**. Checking only the last 5-6 lines will produce false "idle" reports.
Spawns and manages persistent tmux-based Claude Code CLI sessions with bidirectional communication. Subcommands: spawn, send, read, status, list, kill for parallel peer orchestration and multi-turn steering.
Renders a prepared tmux layout for operator-side observability of session side-channels (STATE.md tail, CI watch, events.jsonl tail). Default 4-pane layout or debug layout. Read-only — coordinator chat stays in original terminal.
Launches and manages multiple Claude Code worker sessions via tmux, assigning tasks, monitoring progress, and collecting results. Useful for delegating work to parallel agents.
Share bugs, ideas, or general feedback.
Claude Code renders the ❯ prompt at the bottom of the tmux pane while the model is thinking above it. Checking only the last 5-6 lines will produce false "idle" reports.
tmux capture-pane -t <session> -p -S -20✻ ✶ ✳ ✽ ✾ followed by an action word and duration
✻ Cascading… (5m 34s · ↓ 3.0k tokens · thinking)✶ Germinating… (2m 21s · ↓ 1.2k tokens · thought for 7s)Bash(, Read(, Edit(, Write(, Grep(, Glob(| Indicator | State | Meaning |
|---|---|---|
✻✶✳✽✾ + duration | WORKING | Model is thinking or executing tools |
Running… or timeout | WORKING | Shell command in progress |
Baked for Xm or Sautéed for Xm | COMPLETED | Finished, went idle |
❯ with no activity indicators in 20 lines | IDLE | Actually waiting for input |
Press up to edit queued messages | QUEUED | Has pending message from lifecycle-worker |
+uncommitted in status bar | HAS WORK | Edited files but hasn't committed/pushed |
❯ visible = idle: WRONG. The prompt renders below the thinking indicator. Always check 20+ lines.Bash in last 6 lines = not working: WRONG. The model may be in a long thinking phase between commands.for s in $(tmux list-sessions 2>/dev/null | grep "ao-[0-9]" | cut -d: -f1); do
name=${s##*-}
last=$(tmux capture-pane -t "$s" -p -S -20 2>/dev/null)
pr=$(echo "$last" | grep -oE "PR: #[0-9]+" | head -1)
uc=""; echo "$last" | grep -q "uncommitted" && uc="+uc"
activity=$(echo "$last" | grep -oE "[✻✶✳✽✾] [A-Za-z]+…[^)]*\)" | tail -1)
if [ -n "$activity" ]; then
echo " $name: WORKING $pr $uc ($activity)"
elif echo "$last" | grep -qE "Baked|Sautéed"; then
echo " $name: completed $pr"
elif echo "$last" | grep -q "queued"; then
echo " $name: QUEUED $pr"
else
echo " $name: idle $pr $uc"
fi
done