statusline-vocablisted
Install: claude install-skill mthli/skills
# statusline-vocab
Put a "word of the conversation" segment on the Claude Code statusline so the user passively learns
English vocabulary from their own work. Three moving parts:
1. **`~/.claude/hooks/vocab/extract.sh`** — `Stop` hook. Each time the assistant finishes a turn,
this hook reads the last ~30 transcript entries, calls `claude -p --model claude-haiku-4-5`
to pick one English word worth learning (lemma + US IPA + POS + translation + emoji; target
language configurable), and writes JSON to `~/.claude/vocab/current.json`. A 3-minute cooldown
prevents the word from churning every single turn within one conversation.
2. **`~/.claude/vocab/current.json`** + **`~/.claude/vocab/history.jsonl`** — current word plus an
append-only wordbook history of everything that's been picked.
3. **`~/.claude/statusline-command.sh`** — reads `current.json` and appends a vocab segment to the
statusline output.
Rendered example (with default Chinese; swap to any language via `--lang`):
```
➜ skills git:(develop) · Opus 4.7 ctx:12% · 📝 transcript /ˈtrænskrɪpt/ n. 誊本,逐字记录
```
## When to use this skill
The user has typed `/statusline-vocab` or otherwise referenced this feature. Likely intents:
- **Install** on a fresh machine — set everything up (optionally with `--lang`)
- **Status / diagnose** — "why isn't a word showing up?", "what's installed?", "what language am I on?"
- **Switch language** — "translate to Spanish", "use Japanese definitions" → `install.py confi