Airsc miễn phí cho tất cả. Nếu nó giúp bạn, hãy ủng hộ $2–$20.

Ủng hộ
PluginAn toànQuy trình & bộ nhớ agentCần cài đặt chút

skillreaper

thousandflowers · thousandflowers/skillreaper

Công cụ CLI này giúp các tác nhân AI giảm gánh nặng ngữ cảnh bằng cách xác định và loại bỏ an toàn các kỹ năng, máy chủ MCP và tác nhân phụ không được sử dụng.

Cut context bloat in your AI-agent stack: find and safely prune unused skills, MCP servers and subagents from real transcript evidence

59 sao7Giấy phép: MITCập nhật 2 tháng trước0 lượt mở

Xem kết quả thực tế

Kết quả terminal phân tích mức độ sử dụng skill và đánh giá giữ/xóa

Ảnh từ README của tác giảKết quả terminal phân tích mức độ sử dụng skill và đánh giá giữ/xóa

Ảnh từ README của tác giả thousandflowers ·Nguồn

Bạn có thể làm gì với nó

  • Xác định những kỹ năng tác nhân đã cài đặt nào chưa bao giờ được sử dụng thực sự.
  • Cắt bỏ an toàn các kỹ năng và máy chủ MCP không cần thiết để tối ưu hóa việc sử dụng cửa sổ ngữ cảnh.
  • Phân tích các mẫu sử dụng tác nhân để hiểu hiệu quả của các công cụ khác nhau.

Kiểm tra an toàn

An toàn

Không thấy dấu hiệu rủi ro trong các file đã quét.

Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.

Trích từ README

S           K           I          L          L
######  #######   ###   ######  ####### ###### 
##   ## ##       ## ##  ##   ## ##      ##   ##
######  #####   ####### ######  #####   ###### 
##  ##  ##      ##   ## ##      ##      ##  ## 
##   ## ####### ##   ## ##      ####### ##   ##

a generated sample stack, not a real install - run reap for your own numbers

skillreaper · last 30d · 34 sessions
7/378 items fired · 1% utilization
371 never fired · 371 marked REAP · ~22720 dead tokens/session

TOKENS  CATEGORY  NAME                 VERDICT  REASON
185     skill     import-timesheet     REAP     unused
185     skill     render-playlist      REAP     unused
177     skill     review-sitemap       REAP     unused
163     skill     deploy-dataset       REAP     unused
159     skill     validate-manifest    REAP     unused
157     skill     parse-contract       REAP     unused
149     skill     extract-receipt      REAP     unused
145     skill     sync-changelog       REAP     unused
111     skill     summarise-timesheet  REAP     unused
110     skill     export-timesheet     REAP     unused
(361 more marked REAP not shown — use --json for all)

To prune: reap prune   (interactive, reversible via reap restore --all)

1 warning — some evidence was incomplete; those items were held back from a REAP verdict.

measured by skillreaper · github.com/thousandflowers/skillreaper

Real reap --agent output, run against a generated sample stack (hero-fixture.sh) - not anyone's install. The numbers further down are measured on mine.

Most of what your AI agent loads, it never uses.

skillreaper finds the unused skills, MCP servers, subagents, hooks and always-loaded prose quietly filling your context window - proven from your own session transcripts - and prunes them reversibly. Runs locally against transcripts you already have. Nothing is ever uploaded.

npx skillreaper

On my own installation, measured 2026-08-23: 382 items loaded, 13 ever fired - 3% utilization. That's ~19,755 dead tokens re-sent in every single session, ~1087k a month of pure token waste, paid for on every request before you type anything.

Measured 2026-08-23 on my own installation; raw output in docs/measurements/. Every "on my own installation" figure on this page comes from that one run.

One command. Zero config. It reads your real session transcripts, finds every skill / MCP / agent your AI loads but never fires, and shows you exactly what it costs you.

What it does

skillreaper is a measuring instrument for your agent's context window. Pruning is one of the things you do with the measurement, not the point of it. The whole surface, in the order you use it:

StageCommandWhat it answers
MeasurereapWhat do I load, what actually fires, what does the dead part cost per session?
reap gapWhat share of each category is ever used, and which MCP tools fire but return noise?
reap by-projectWhich project is actually firing each skill?
Decidereap why <name>Why did this item get this verdict, on what evidence?
Actreap pruneQuarantine the dead items, reversibly
reap mute <name>Strip a heavy rarely-used description, keep the skill callable
Engineerreap routePropose a lazy-load routing plan for a library too big to prune flat
reap apmEmit a proposed APM apm.yml, so a team reproduces one lean set
Comparereap snapshotKeep this run, so a later one has something to be measured against
reap diffWhat appeared, left, changed verdict, and did anything come back after a prune

Everything above the Act row is read-only. You can run the entire measurement side without changing a single file.

What it reads, what it writes

Read-only, changes nothingWrites, always reversible
reap 1reap prune  ↔  reap restore --all
reap gapreap mute <name>  ↔  reap unmute <name>
reap by-projectreap keep <name>  ↔  reap keep --remove <name>
reap why <name>reap install-hook  ↔  reap uninstall-hook
reap route
reap apm
reap manifest <name>
reap share
reap snapshot 1
reap diff

Nothing is ever deleted. reap prune moves files into a reaped/ directory with a versioned manifest, reap mute keeps a backup of the description it strips, and reap uninstall-hook removes only skillreaper's own entry, leaving your other hooks alone. Every write is atomic (temp file + rename) and confined to your Claude directory, so an interrupted prune, mute, or hook edit leaves the original file intact, never a half-written mix.

1 The only files a read-only command writes are skillreaper's own: ~/.claude/reaped/nudge-state.json, which the default report touches so a hint it already showed you does not repeat, and the snapshot reap snapshot exists to write. Neither touches your stack. Pass --no-nudge (or set SKILLREAPER_NO_NUDGE=1) and not even that happens. No command in either column sends anything over the network.

First 60 seconds

Three commands, in this order. Only the third one writes anything, and it prints its own undo line.

reap                       # 1. measure: what you load, what fires, what it costs
reap why <name>            # 2. decide: the evidence behind one verdict
reap prune                 # 3. act: quarantine the dead ones, interactive

1. reap prints the report at the top of this page. Every row carries a verdict:

LabelMeaning
REAP(broken)Invoked but errored - broken, not just cold
REAPZero uses - safe to quarantine
MUTEUsed rarely + heavy - description stripped, skill stays available
KEEPUsed, tin
Xem mã nguồn trên GitHub