reap — Claude Code skill: report on unused context
Shows how much of the context an agent loads goes unused: idle skills, MCP servers, subagents, hooks and always-loaded prose. Measured from real session transcripts.
npx skills add thousandflowers/skillreaper --skill reap -a claude-codeWhat reap does
The skill shells out to reap --agent and asks you to paste the output verbatim. No reformatting, no reordering, no trimming, and no headings or tables of your own: the binary renders the whole report, closing attribution line included.
Only arguments starting with - get passed through; anything else is dropped, and the skill says so. The evidence window comes from --days N (30 by default), pricing from --model <id>. Want the full inventory instead of the top rows? Use reap --json. Whether the tool exists is decided by command -v reap alone — a copy found elsewhere on disk might be an older build, and quietly using it would mask a broken install.
When reap is missing, the skill prints a single block: a one-off run via npx skillreaper, plus permanent install options. The --agent flag requires version 0.5.0 or newer; on an older build it fails with flag provided but not defined: -agent, and that calls for an upgrade rather than a fresh install. The skill never prunes anything by itself — reap prune is interactive and aborts without a terminal. Ask for it explicitly and it will run reap prune --yes and mention reap restore --all.
What it helps with
- figure out why the context window keeps filling up
- spot skills and MCP servers that never fire
- measure how many tokens the always-loaded prose costs
- decide which tools are safe to drop
- break context spend down by category
Example prompts for the agent
- Run reap and paste the report as is
- Run reap over the last 14 days and price it with
--model - Give me the full inventory with
reap --json
How to install reap
1Skills CLI (Vercel)
npx skills add thousandflowers/skillreaper --skill reap -a claude-code2Manually: put the files in place
~/.claude/skills/reap/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/reap/
1Skills CLI (Vercel)
npx skills add thousandflowers/skillreaper --skill reap -a codex2Manually: put the files in place
.agents/skills/reap/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add thousandflowers/skillreaper --skill reap -a cursor2Manually: put the files in place
.cursor/skills/reap/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install thousandflowers/skillreaper reap2Manually: put the files in place
.github/skills/reap/SKILL.md1Skills CLI (Vercel)
npx skills add thousandflowers/skillreaper --skill reap -a gemini-cli2Platform CLI
gemini skills install https://github.com/thousandflowers/skillreaper --path plugins/skillreaper/skills/reapManually: put the files in place
.devin/skills/reap/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add thousandflowers/skillreaper --skill reap -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about reap
How do I install reap in Claude Code?
Run npx skills add thousandflowers/skillreaper --skill reap -a claude-code. The skill file lands at ~/.claude/skills/reap/SKILL.md.
What does reap do?
It reads session transcripts and reports which loaded context never got used: skills, MCP servers, subagents, hooks and always-loaded prose. Useful when you need to know what is burning tokens.
What does the skill need to work?
A reap binary at version 0.5.0 or newer, since that is what --agent requires. The check runs through command -v reap, so an older copy sitting off PATH will not be picked up.
Source text
SKILL.md · MIT
--- description: Report how much of the context this agent loads is never used - unused skills, MCP servers, subagents, hooks and always-loaded prose - measured from real session transcripts. Use when asked why the context window is full, what is wasting tokens, or what is safe to remove. --- # skillreaper - context utilization report Run `reap --agent`, then paste its output verbatim. Do not reformat, re-order, summarise, truncate or re-align anything, and do not add a heading or a table of your own: the binary already renders the report, including its closing attribution line. ## Arguments Append any `$ARGUMENTS` tokens that begin with `-`; ignore anything else and say so. `--days N` sets the evidence window (default 30), `--model <id>` prices it. For the full inventory rather than the top rows, use `reap --json`. ## If reap is not installed Decide with `command -v reap` and nothing else - never an absolute path, never a filesystem search: a copy found off `PATH` may be an older build, and silently using it hides a broken install. If that fails, print exactly this and nothing else: > `reap` is not installed. Run it once without installing anything: > > ```bash > npx skillreaper > ``` > > Or install it permanently: > > ```bash > brew install thousandflowers/tap/skillreaper > ``` > > ```bash > go install github.com/thousandflowers/skillreaper/cmd/reap@latest > ``` ## If reap is too old `--agent` needs reap ≥ 0.5.0. If it exits with `flag provided but not defined: -agent`, say the installed build is too old and give `brew upgrade skillreaper` (npm: `npm install -g skillreaper@latest`) - an upgrade, never the install block above, which they have already done. ## Pruning Never prune on your own initiative. `reap prune` is interactive and aborts when it has no terminal, so calling it from here does nothing anyway. If the user explicitly asks in this turn: get an unambiguous yes, run `reap prune --yes`, and remind them of `reap restore --all`. If the request is at all ambiguous, hand them the plain `reap prune` command instead. For the per-category breakdown, point them at `/skillreaper:gap`.
© thousandflowers · MIT · thousandflowers/skillreaper