读取本地 session transcript 解析 Token 用量,按项目、skill 归因,展示撞限时间点和超长上下文会话。
撞到 Claude Code 5 小时或每周额度上限的时候,我最想知道的是哪个项目用掉的,但 /usage 答不出来。它只给账号层级的百分比,再加几个像 ">150k context"、"4+ parallel sessions" 的标签,没有拆到项目,那些百分比也没办法自己验算。
Claude Code 本来就会把每条消息的 token 用量写入本机的 session transcript(~/.claude/projects/*/*.jsonl)。所以我写了一个 skill 叫 quota-audit,读这些文件,按项目、按 skill 整理用量,也列出真正撞到上限的时间点和当下被挡的 repo。它只读文件,不会写入任何东西,数据也不会送出去。
开头先放几行算好的结论,接着每个窗口(5h、24h、7d)一列总览,最后才是最长那个窗口的明细。摘录一段示例:
KEY FINDINGS (7d window)
• Estimated cost $147.31, 65% of it in my-app ($95.20)
• Top skill is ai-work at 54%
• 11 sessions crossed 150k context, $88.40 combined (60% of window cost)
• 3 rate-limit hits in 7d; 14 all-time, most often blocking my-app (9 times)
window est. cost sessions >150k hits top project
5h $12.40 5 2 0 my-app 81%
24h $38.75 21 4 1 my-app 70%
7d $147.31 99 11 3 my-app 65%
skill 是逐条消息归因的,不是只看 session 用哪个指令开头,所以具名 skill 跟一般互动的切分比较可信。超过 150k context 的 session 会直接列出名字,依花费由高到低排,这通常是最值得先处理的地方。撞限记录则依 repo 和时段汇总。
另外还有一个异常检测,抓那种浏览器分页或脚本开着、每一两分钟打一次的轮询循环。这类循环会让 session 数暴增,却没有真的花到额度,先抓出来就不用追一个不存在的成本。想看每个窗口的明细和每一笔撞限记录,给 render.py 加 --full 就好。
目前版本是 v1.3.0。在交互式 Claude Code session 里:
/plugin marketplace add rosehsu47/claude-code-quota-audit
/plugin install quota-audit@rosehsu47
claude plugin marketplace add rosehsu47/claude-code-quota-audit
claude plugin install quota-audit@rosehsu47
如果安装结果显示 Run /reload-plugins to activate,就跑一下那个命令。装好之后直接问"额度都被谁用掉"或"token 都花在哪"就会触发,也可以打 /quota-audit 明确调用。报表语言会依 shell 的 locale 自动选繁体中文或英文,想固定的话设 QUOTA_AUDIT_LANG=zh 或 QUOTA_AUDIT_LANG=en。
美金数字是用工具内置的定价快照估算出来的,不是账单。项目之间的比例比较可信,总额建议拿即时的 claude -p "/usage" 对照一下。每个项目各自的 subagent 花费目前拿不到。范围也跟 /usage 一样,只看这台机器,不包含其他设备或 claude.ai 上的用量。
源代码放在 github.com/rosehsu47/claude-code-quota-audit,很想听听大家平时都怎么追额度花到哪里去。