v1.0.18 · OPEN SOURCE · MIT

Coach🦞Claw

A self-evolving coaching layer for Claude Code. Reads your transcripts, learns your habits, ships ambient tips and XP rewards as you work.

$ npx @rm0nroe/coach-claw@latest install --seed
See how it works
Local · zero-network Deterministic cron Comprehensive test suite macOS · Linux
What you get

Coaching that grows with you, not against a fixed checklist.

Coach Claw watches how you actually use Claude Code, surfaces the habits worth reinforcing, and quietly upgrades its own watch-list as your work shifts.

01 / TRANSCRIPTS

Reads your sessions, on a schedule.

A daily deterministic pass walks redacted transcripts and detects behavior patterns — no LLM on the cron path, zero tokens, zero network.

02 / WATCH-LIST

Tracks weaknesses and strengths.

Behaviors land in profile.yaml. Strengths get reinforcement banners; weaknesses get nudges. Both graduate or retire as the data shifts.

03 / AMBIENT TIPS

Coaches in real time, while you work.

Two Claude Code hooks inject pre-rendered tips, streak rewards, and level-up banners — never narrating, always forward-looking.

claude — @rm0nroe/coach-claw
>git commit -m "wire up auth"
[main 4f8a1c2] wire up auth · 4 files changed, 117 insertions(+), 9 deletions(-)
>git commit -m "wire up auth"
[main 4f8a1c2] wire up auth · 4 files changed, 117 insertions(+), 9 deletions(-)
🦞 From Coach Claw: kicking off pytest right after that edit batch is exactly the habit your profile tracks.
⚡️ +1 XP · safe-git-hygiene streak ●●●··
>pytest coach/tests/ -k merge
============ 12 passed in 0.84s ============
🌟 Power-up: running the test for the module you just edited before your next commit is what graduates a habit from streak to mastered.
⚡️ +2 XP · clean-streak ●●●●·
>/coach-insights
🎓🌟 MASTERED: safe-git-hygiene  +5 XP
●●●●● 5 consecutive insights runs detected this habit — it's now a core strength.
🎉 Level up. You're now L8 Sensei.
Scroll to step through
A normal commit lands. Coach watches.
Under the hood

Determinism where it matters.

The cron path is local-only and LLM-free, so daily runs are reproducible and cost zero tokens. The LLM only writes the tip body — labels, XP lines, and streak bars are pre-computed in Python.

i.

Daily deterministic pass

analyze.py walks redacted transcripts, emits detections under run-id insights-<ts>. Atomic write under flock, one commit per run.

ii.

Weekly LLM-triggered refresh

Once per 7 days, fires claude -p "/insights" for its sidecar refresh side-effect, then aggregates JSON deterministically.

iii.

Two Claude Code hooks

SessionStart loads the watch-list and queues celebrate banners; UserPromptSubmit schedules tips, banks XP, and renders streaks.

iv.

Hybrid ELO + level system

50-level craft ladder with 12 theme variants and statusline integration. Configurable ELO range via /config; XP thresholds stay fixed across themes.

All data stays local.

profile.yaml never leaves your machine. The daily path is zero-network. The weekly path's /insights stdout is discarded — only the local sidecar refresh is consumed.

$ cat ~/.claude/coach/profile.yaml
Get started

Two minutes to your first tip.

macOS launchd or Linux cron. Idempotent installer. Backs up existing state. Roll back any run with git checkout.

$ npx @rm0nroe/coach-claw@latest install --seed