pixle-codes

Spinwatch — Development skill for Claude Code

Development community

Alarm when your coding agent spins instead of works — catches repeated identical tool calls and endless talk-without-action in live or past sessions.

How to install Spinwatch

This entry records only its repository, not the path inside it, so there is no exact command to give. Open pixle-codes/spinwatch and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Spinwatch does

Alarm when your coding agent spins instead of works — catches repeated identical tool calls and endless talk-without-action in live or past sessions. Reads Claude Code, Codex, and opencode transcripts.

Alternatives in Development

  • Summarize Interview — Summarize interview transcripts with JTBD and action items 7.8k ★
  • Not Claude Code Emulator — ULTRA DANGEROUS CLAUDE CODE EMULATOR; MAKING THE API REQUEST IDENTICAL TO CLAUDE CODE 398 ★
  • Arrecall — AgentRecall on-demand recall — surface past fixes, decisions, and patterns mid-session without leaving your fl 370 ★

README

spinwatch

Alarm when your coding agent spins instead of works.

Autonomous coding agents (Claude Code, OpenAI Codex CLI) sometimes stop making progress but keep burning tokens: the same failing tool call retried forever, or "let me write the document" repeated across turns without any tool ever being called. Users report losing 12% of a weekly quota — real money — on a single stuck session before noticing.

Billing dashboards can't help: productive work and degenerate spin look identical in a cost chart, and the alert arrives after the money is gone. spinwatch reads what the agent actually **did** — the tool-call sequence in its transcript — and raises an alarm while the session is still alive:

  • REPEAT — the same tool call (same name AND same normalized arguments) fired N times within a sliding window of tool calls. Catches the retried-too-large-file loop and re-fired idempotent actions.
  • TALK — K consecutive assistant text turns with zero tool calls between them. Catches "assembling the document now" ×∞.

Install

No dependencies; Python 3.10+ stdlib only.

git clone https://github.com/pixle-codes/spinwatch && cd spinwatch
python3 -m spinwatch --help

Usage

# scan transcript files or whole directories (*.jsonl and *.db are discovered)
python3 -m spinwatch scan ~/.claude/projects ~/.codex/sessions ~/.local/share/opencode

# machine-readable / cron-friendly forms
python3 -m spinwatch --statusline scan ~/transcripts   # "spinwatch SPIN: ..."
python3 -m spinwatch --json scan session.jsonl         # exit 0 clean / 1 spin

# stricter / looser detection
python3 -m spinwatch scan --window 12 --repeat-threshold 3 --talk-threshold 6 s.jsonl

# live watch while a session runs (Ctrl-C stops; alarms once per streak)
python3 -m spinwatch --follow --interval 5 ~/.local/share/opencode

Exit codes: `0` no spin · `1` findings · `2` usage error.

Live watch (`--follow`)

Scan answers "did it spin?"; `--follow` answers "is it spinn