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.
How 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.
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
npx claudepluginhub jleechanorg/claude-commands --plugin claude-commandsSpawns 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.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.