Claude Code already has /usage (same as /cost). On a Pro or Max plan it will show session cost estimates, plan bars, and a recent breakdown of usage by skill, subagent, plugin, and MCP server.
But, I wanted to optimize Claude, or have it optimize itself, rather than tell me. Skills I installed months ago were sitting idle, and contributing tokens each turn. /usage is good at showing what ran and what counted against the plan. It does not answer: what is installed, still loads, and has not fired once across the last stretch of my own transcripts?
That is what session-tax is for.
What it actually measures
It reads your Claude Code session transcripts off disk on your machine. No network calls in the free script. Imports are fs, path, and os.
Across a window you choose (default 90 days) it reports:
- how many tokens a session typically opens with before you type (median and the worst tenth)
- installed skills versus skills that actually got invoked
- how many of those skills look dead (installed, not wired to an event, older than a fortnight, zero invocations in the window), and how many tokens their listings cost on every open
- counts for custom agents, connected servers, and hooks
The dollar line is a rough guide. It prices opening context using the cache-read / cache-write mix it sees in your transcripts, and it says so. On a subscription you mostly pay this in overhead.
Free vs paid
Free edition: the totals above. It will tell you how many skills look dead and what that listing tax adds up to. It does not print the names.
Paid ($19, one seat): names the dead skills, points at cold servers (connected but almost never called), machine-readable --json, and --home so you can audit a different profile. Shop link lives in the GitHub README on purpose. Some forums quietly filter *.pages.dev URLs.
Repo: github.com/CraniusMaximus/claude-code-autonomy-pack
What I want to know
Does it help? Is it a waste of time? Any inaccuracies?
Top comments (0)