skillreaper

module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2026 License: MIT

README

reap in action

Your AI agent reads 187 skill descriptions every session.
You use 4. Reap the rest.

CI Release Issues MIT


brew install thousandflowers/tap/skillreaper
reap

One command. Zero config. Read-only. It scans your transcripts, finds every skill/agent/MCP your AI loads but never uses, and tells you exactly what it costs in context window, latency, and money.


The problem

Every Claude Code session loads 150–300 skill descriptions, agent configs, and rule files into context. Most of it is dead weight:

  • 187 items scanned
  • 142 never used (76 %)
  • 8 000 tok/session wasted
  • ~2 160 000 tok/month burned on irrelevant instructions

Your agent scrolls through a wall of irrelevant tools looking for the right one. Wrong picks cost turns. Turns cost tokens. Tokens cost money.

reap points at the waste. You decide what goes.


Before → After

Before skillreaper After skillreaper
187 items loaded every session 45 items, all actively used
Wrong tool 1 in 5 turns Right tool on first try
8 000 tok/session dead Full context budget for real work
~30 pages of irrelevant instructions read monthly Zero
Lower cache hit rate = higher latency Smaller prompt fits in cache

Install

# macOS — Homebrew
brew install thousandflowers/tap/skillreaper

# Any platform — npm/npx (Node ≥ 18)
npx skillreaper

# Any platform — Go (Go ≥ 1.22)
go install github.com/thousandflowers/skillreaper/cmd/reap@latest

Binary downloads — macOS (Intel + Apple Silicon), Linux (amd64 + arm64), Windows (amd64 + arm64) — all on the releases page. Single static binary, no dependencies.

Upgrading, uninstalling, and platform-specific tips → INSTALL.md.


Usage

reap                     # scan + report (read-only)
reap prune               # quarantine unused items (reversible)
reap keep <name>         # protect an item from pruning
reap restore --all       # undo every prune
reap --json              # structured JSON output
reap --md                # markdown report
reap --days 7            # shorter evidence window
reap version             # print version

Everything is reversible. reap prune moves files to a reaped/ directory with a versioned manifest. Nothing is ever deleted. Run reap restore --all and everything goes back exactly where it was.


Verdicts

Label Meaning
REAP Zero uses — safe to quarantine
KEEP Used, tiny, or manually protected
REVIEW Too new or not enough sessions

Every verdict includes a reason suffix explaining why.


Privacy

100 % local. Zero telemetry, zero network, zero uploads. Reads config files and session transcripts on disk — your data never leaves your machine.


Platform support

Platform Full support
Claude Code ✅
OpenCode ✅
Codex CLI ✅
Hermes ✅
Cursor Inventory only (no local transcripts)
OpenClaw Inventory only (no session history)

How it works

  1. Auto-detect — probes every known config directory. Only installed platforms are scanned. No flags needed.
  2. Inventory — scans skills, agents, MCP servers, hooks, and prose files across all detected platforms.
  3. Evidence — parses session transcripts (JSONL or SQLite). Counts tool_use blocks and command invocations with timestamps.
  4. Cost — character weight (ceil(chars / 3.7)) + init parser tool declarations. Model pricing auto-resolves by model name.
  5. Verdict — REAP / KEEP / REVIEW with machine-readable reason.
  6. Act — reap prune quarantines. reap restore --all undoes.

Limitations (transparency)

Token counts are approximate. The tool estimates tokens as ceil(chars / 3.7), based on the average English BPE tokenizer rate. Real token counts vary by tokenizer (Claude vs GPT vs Gemini) and content (more code ≈ more tokens per char). This is a documented approximation — the relative ranking matters more than the absolute number.

Platform format stability. Each supported platform has its own config layout and transcript format. These change over time as platforms evolve. Parser updates are an ongoing maintenance reality. The project is architected for easy fixes (one struct per platform in internal/platform/), but format changes can lag by days to weeks after a platform update.

Not a tool declaration fix. Claude Code's deferred tools reduce the init-time tool declaration overhead. Skillreaper addresses a different problem: always-loaded skill/agent/prose files. If a skill description is 248 characters, it is read into context every session — regardless of lazy tool loading. These two optimizations are complementary, not competing.


Design

  • 100 % local, zero dependencies, single static binary (Go ≥ 1.22)
  • Multi-platform — adding a new platform is one struct in internal/platform/
  • Reversible quarantine — never deletes, never destructive
  • MIT licensed
cmd/reap/       CLI entry point
internal/
  platform/     platform definitions + auto-detection
  scan/         inventory scanners
  usage/        transcript parser (JSONL + SQLite)
  report/       verdict logic + ANSI/JSON/MD renderers
  prune/        reversible quarantine
  cost/         model pricing
docs/           demo assets


Issues · Discussions · Releases · MIT

Directories

Path Synopsis
cmd
reap command
Command reap scans a Claude Code installation, reports unused skills/MCP servers/agents with evidence from real transcripts, and prunes them reversibly.
Command reap scans a Claude Code installation, reports unused skills/MCP servers/agents with evidence from real transcripts, and prunes them reversibly.
internal
cost
Package cost estimates token counts and money from character counts.
Package cost estimates token counts and money from character counts.
platform
Package platform defines the AI coding tools that skillreaper supports and auto-detects which are installed on the current machine.
Package platform defines the AI coding tools that skillreaper supports and auto-detects which are installed on the current machine.
prune
Package prune quarantines unused items reversibly.
Package prune quarantines unused items reversibly.
report
Package report joins inventory and usage evidence into verdicts and renders the result as ANSI text, JSON, or Markdown.
Package report joins inventory and usage evidence into verdicts and renders the result as ANSI text, JSON, or Markdown.
scan
Package scan inventories the context payload of an AI coding agent installation: skills, agents, MCP servers, hooks, and always-loaded prose.
Package scan inventories the context payload of an AI coding agent installation: skills, agents, MCP servers, hooks, and always-loaded prose.
usage
Package usage extracts invocation evidence from Claude Code session transcripts (~/.claude/projects/**/*.jsonl).
Package usage extracts invocation evidence from Claude Code session transcripts (~/.claude/projects/**/*.jsonl).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL