Build1 distinct publisher2 min readPublished
/usage reports cost per model and nothing underneath it. A shell script counting invocations per Skill, subagent and MCP server gives you a ranking, which is not a bill.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
5015 tool_use events across 39 sessions in a week, the sample summary the script prints in `--short` mode [10], works out at about 129 tool calls per session [1] and roughly 716 a day [2]. That is the traffic `/usage` compresses into one currency figure per model [1]. In the sample output reproduced in the dev.to writeup, two rows cover the whole period: 3,240 yen for Sonnet and 892 for Opus [2], so 78 percent of the money is attributed to a model name and nothing else [3].
The gap is a unit mismatch, and the script does not close it. `usage-breakdown.sh` counts invocations [3]; the built-in report is denominated in currency [1]. Its author is straight about this, noting in the code that real token totals would mean aggregating the `usage` object off API responses and that call count is standing in until then [7].
The time window is coarser than the flag suggests. Sessions are included or skipped by comparing each file's `mtime` against a cutoff, with 7d the default and 14d or 30d available by argument [9]. That is a file-level test, so a long session whose last write happens to land inside the window is counted in full, earlier events and all.
The counters are flat, too. One Skill call and one Agent call each add 1 to their own tally [11], and the Agent branch keys on `input.subagent_type` [6], so a subagent that runs its own conversation weighs the same as a skill that injects a prompt. The author's defence of call counts holds where the compared things are alike: a Skill called 100 times against one called once really is orders of magnitude apart in tokens [8]. Across categories it does not hold.
One reporting choice earns its keep. Skills named in `plugin:skill` form are counted under their namespace as well as individually, on the reasoning that you often only need to know the `superpowers` plugin is heavy rather than which of its skills [12]. Less comfortable: parse failures are swallowed by try/except [13], which stops one malformed line killing a run, at the price of undercounting without saying so.
Ranking one Skill against its own history at a fixed window is the reading this data supports. Anything wider produces a number you would not want to defend in a budget meeting.
Ranked by verification strength, evidence, and original report placement.
Claude Code's /usage command outputs a per-model cost total for a period; the breakdown of that cost is invisible, including which session, which Skill, how many times it was called, and where the tokens went.
The sample /usage output shown in the article lists two rows: claude-sonnet-4-6 at 3,240 yen and claude-opus-4-8 at 892 yen.
usage-breakdown.sh is a 106-line shell script that parses transcript.jsonl with Python and tallies call counts per Skill, Agent and MCP server using collections.Counter.
Claude Code streams every operation during a session into .jsonl files under ~/.claude/projects/, one event per line and one file per session, inside a <project-id>/ directory.
Inside message.content[] sit blocks with "type": "tool_use" whose name field is the invoked tool; the Bash tool, Edit tool, Skill tool, Agent tool and MCP calls are all recorded in the same format.
For the Skill tool the skill name is at input.skill; for the Agent tool it is input.subagent_type; for MCP servers the tool-name convention mcp__<server>__<tool> lets the server name be extracted by splitting on __.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Code shown, outcomes unmeasured
The mechanism claims are well specified and internally consistent: the transcript layout and tool_use field conventions are documented, and the script's dispatch, counters and mtime window appear as actual excerpts, which makes them reproducible by any reader with Claude Code installed. But everything rests on one self-published post with no second source, no repository to inspect the full 106 lines, and no measurement connecting the produced ranking to tokens or yen — the author concedes token totals would need usage-object aggregation that the script does not do.
Author's machine only
Adoption evidence stops at the author: one inline script publication with no repository or package channel, and one self-reported 7-day sample from a single local transcript directory. No third-party user, deployment, download count or vendor uptake appears anywhere in the cluster, and the hardcoded single-project transcript path suggests it has not been generalised beyond that one setup.
Mildly overstated, self-caveated
The headline promise — name the Skill that is burning your tokens — outruns what the tool measures, since it ranks invocation counts and never touches tokens or cost; a Skill invoked once with a huge context can outrank one invoked fifty times cheaply. The overstatement is small because the article and dek both flag it explicitly ('a ranking, which is not a bill', call count is 'a stand-in for now'), and because the underlying schema and code claims are modest and demonstrated rather than inflated.
Personal-platform self-promotion
A first-person post on a developer publishing platform showcasing the author's own script: the incentive is attention and credibility for the technique, not sales. No vendor sponsorship, employer, funding, paid product, license or affiliate relationship is disclosed or implied in the source, and there is no commercial artifact behind the script, which keeps the pressure low but non-zero.
Moderate on mechanism, low on impact
Confidence is moderate that the described mechanism works as stated — the schema, counters and windowing are specific, plausible and cheaply falsifiable by any reader — and low that it answers the cost question or matters beyond one workflow, given a single publisher, a single self-reported sample, dependence on an undocumented internal transcript format, and no token-level validation.
invest
Three Claude agents, one task, and a malware turf war: the multi-agent bill arrives1 distinct publisher
product
A 2x LLM bill is not a bug report: token spend is an observability problem1 distinct publisher
build
A cost monitor overcounted 4.9x, then went dark for a week when set -e did its job1 distinct publisher
build
Thirty minutes a day, and none of it from letting the agent write Swift1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 25, 2026