用途
contextburn 读取 Claude Code 已经写在你机器上的会话记录,告诉你所付费的 tokens 中,有多大比例真正变成了模型输出,以及有多大比例是智能体在重新读取它已经发送过的上下文。
普通的 token 计数器回答“我花了多少”,contextburn 回答“其中有多少是真正的工作”。它给出一个归一化的占比,因此可以跨会话、跨模型和跨工作方式进行比较。
为什么是两个数字
按 token 数看,占比几乎不变。因为智能体每一步都会重新发送累积的上下文,重复读取主导了不管你怎么做——它描述的是智能体本身。
按成本加权看,占比会变动,因为缓存读取的定价远低于新输入和输出。它取决于你如何运行会话——它描述的是你。
上面提到的对比来自一个受控实验,附带数据集和分析脚本:“Clear Every Third Task: A Measured U-Curve in the Context Economy of Coding Agents”。在 U 曲线报告背后的 36 次运行会话日志上展示真实输出,机器上没有其他东西。视频带 DOI:10.5281/zenodo.22713920。这些运行本身是公开的:Hugging Face(DOI 10.57967/hf/10366)、Kaggle、OSF(DOI 10.17605/OSF.IO/5QTWY)。
主要能力
- 读取本地 Claude Code 会话记录(
~/.claude/projects/**/*.jsonl)。所有数据不离开机器——完全无网络调用。 - 按消息 id 去重使用记录,并保留逐元素最大值。流式运行时会为同一次调用写入早期快照和最终记录:两者都算会重复计数,只保留第一个则会把输出减半。
- 使用按模型价格加权成本占比,价格表保存在
bin/contextburn顶部。价格变化时在那里更新。 - 提供语言文件,因为菜单栏应用从 Finder 启动时环境变量不会传给它:
echo ru > ~/.config/contextburn/lang可切换应用和 CLI 的语言。 - 让智能体在会话中途读取自己的运行效率。包内附带一个无依赖的 MCP 服务器(stdio),提供两个工具:
run_efficiency以结构化数据返回占比,spend_breakdown返回完整报告。 - 也可以安装为 Claude Code 插件,它会注册同一个服务器。
编辑器扩展
- 兼容 VS Code 的编辑器(VSCodium、Cursor、Windsurf、Gitpod 等)——Open VSX:
arsentev-ai.contextburn。在本地 CLI 之上提供一个状态栏计量器;源码在editors/vscode。 - Raycast——源码在
editors/raycast,商店提交待定。
菜单栏应用(macOS)
app/main.swift 是一个小型状态栏应用。它每分钟轮询一次 contextburn --json,显示当前燃烧率和每小时图表;点击某个柱可查看该小时的明细。
如果 CLI 不在 ~/bin 或常见的 Homebrew 路径中,请设置 CONTEXTBURN_BIN=/path/to/contextburn。
适用场景与限制
- 目前仅支持 Claude Code 会话记录。
- 成本加权占比的时效性仅取决于
bin/contextburn中的价格表。
其他信息
- 软件 DOI(所有版本):10.5281/zenodo.22712985。GitHub 的“Cite this repository”按钮提供引用;元数据在
CITATION.cff中。 - 作者:Evgenii Arsentev — arsentev.ai · ORCID 0000-0002-9120-7298。
- 该项目在第一天以 tokmon 发布,后改名以避免与同名无关工具混淆;
TOKMON_*环境变量仍然有效。 - 许可证:MIT——见 LICENSE。