From session-tools
Detect stuck states in a Claude Code tmux session and resolve them
npx claudepluginhub shsym/claude-session-tools --plugin session-toolsThis skill uses the workspace's default tool permissions.
Detect what's blocking a session and suggest or apply a resolution.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Detect what's blocking a session and suggest or apply a resolution.
$ARGUMENTS format: <session-name> [auto]
Parse arguments:
auto flagCapture session output:
"$PLUGIN_DIR/bin/capture-session" "<session_name>" 40
Analyze the output and determine:
✢, ⏺, Thinking…)Stuck types:
| Type | Signs | Fix |
|---|---|---|
yes_no | (y/n), [Y/n], Continue? | Send y or n |
multi_choice | ❯ 1., numbered options | Send number |
text_input | Enter:, Type:, waiting for input | Send text or Escape |
permission | Bash command, Allow, permission dialog | Send y or n |
interactive_editor | : alone (vim), (END), --More-- | :q! or q |
hanging_command | No output, no prompt | Ctrl-C |
worker_idle | ❯ prompt, no task | Needs new task |
Report findings:
## Session: <name>
**Status:** <working/stuck>
**Stuck Type:** <type or N/A>
**Details:** <what you see>
**Suggested Fix:** <what to do>
If auto mode and stuck:
Execute the fix using tmux send-keys:
# For yes_no:
tmux send-keys -t "<session>" "y" && tmux send-keys -t "<session>" Enter
# For multi_choice:
tmux send-keys -t "<session>" "1" && tmux send-keys -t "<session>" Enter
# For text_input (cancel):
tmux send-keys -t "<session>" Escape
# For permission:
tmux send-keys -t "<session>" "y" && tmux send-keys -t "<session>" Enter
# For interactive_editor (vim):
tmux send-keys -t "<session>" Escape && tmux send-keys -l -t "<session>" ":q!" && tmux send-keys -t "<session>" Enter
# For interactive_editor (pager):
tmux send-keys -t "<session>" "q"
# For hanging_command:
tmux send-keys -t "<session>" C-c
Then re-capture and verify the fix worked.
/session-tools:unstick-session ai-worker-001
## Session: ai-worker-001
**Status:** stuck
**Stuck Type:** permission
**Details:** Waiting for approval: "Bash command: npm install"
**Suggested Fix:** Send 'y' Enter to approve, or 'n' Enter to deny