Repository navigation
v0.2.0
The recommendation that would have broken your other repo
context-tax judged every server on the sessions in the directory you ran it from. For a server whose only lever is claude mcp remove <name> -s user, that is the wrong denominator: the command is machine-wide. Found on a real machine — one call in this project, 67 in a sibling checkout, and the removal printed against it anyway.
A verdict's denominator now has to cover everything its fix would switch off. Machine-wide levers need machine-wide silence. Project-scoped levers keep the project's count.
The first run in an unfamiliar directory
In a fresh clone, or anywhere you have not used Claude Code before, share, calls and per call all came out empty and every verdict downgraded to "too few sessions to judge". Those are the three columns that carry the whole argument, blank in the run you are most likely to make first — while the history to fill them sat on the same disk.
A project with too little history now borrows the machine's denominator and says on this machine wherever it did.
The exact total does not widen. A cold-start median mixed across projects with different configs is not this directory's prefix, and it will not be labelled as one.
The scan was narrow because a whole-corpus pass was assumed to cost a minute. Measured: 890 transcripts and 2.1 GB in 5.1s, inside a command that already spends ten seconds starting servers.
The screen
- Leads with the number. It used to open with four lines of
chars/4caveat and keep its one exact figure at the bottom of the table. The methodology now sits below, next to the total it qualifies. Nothing was removed. - A line saying what this machine has actually spent: sessions, turns, tokens of context carried, and the
/clearand/compactyou typed to survive it. - A progress line. A run takes ten seconds and every one of them was silent, which reads as a hang. It names the server it is waiting on. Written to stderr and only when stderr is a terminal, so
--json,> fileand| lessare byte-for-byte what they were. - Rows sharing a note collapse onto one line, and a row measured from the bundled table says so rather than printing the same bare dash as a row that could not be measured at all.
Breaking, for library users
Verdict carries a required scope, LedgerRow a basis, Ledger a machine, and MeasureOptions an optional onProbe. The CLI is unaffected.
Full notes in CHANGELOG.md.
npx context-tax