用Claude Code、Cursor、Codex写代码挺爽的,但月底一看账单,心里难免犯嘀咕:这钱都花哪了?哪些session在反复重试浪费token?哪个项目最烧钱?
我最近在GitHub上发现了一个叫CodeBurn的工具,一周涨了2700多星。装上之后,终端里敲一条命令,各个AI编程工具的token消耗、费用分布、项目明细全部列出来。用了几天,确实帮我找到了不少浪费点。
下面是安装、使用、优化的全过程,附我实际跑出来的数据和踩过的坑。
CodeBurn是什么
CodeBurn是一个命令行工具,直接读取本地磁盘上的session数据来统计AI编程的token用量和费用。不需要API key,不走代理,不改任何配置,装上就能用。
支持的AI编程工具:
- Claude Code(读取
~/.claude/projects/) - Codex / OpenAI(读取
~/.codex/sessions/) - Cursor(读取本地SQLite数据库)
- OpenCode(读取
~/.local/share/opencode/) - Pi(读取
~/.pi/agent/sessions/) - GitHub Copilot(读取
~/.copilot/session-state/,仅输出token)
定价数据从LiteLLM拉取,24小时缓存一次,覆盖所有主流模型。
安装
Node.js 20以上就行:
bash
npm install -g codeburn
不想全局安装也行,直接npx跑:
bash
npx codeburn
装完在终端敲 codeburn,如果你本地有Claude Code或Cursor的session记录,马上就能看到数据。
基本用法
交互式面板
bash
codeburn
默认展示最近7天的数据。终端里会出来一个TUI面板,用方向键切换时间范围(Today / 7 Days / 30 Days / Month / All Time),按 1 到 5 快速跳转,按 q 退出。
面板上有这几块内容: - 总费用、总调用次数、session数、缓存命中率 - 每日费用折线图 - 按项目分组的费用排行 - 按模型分组的token用量(Opus、Sonnet、Haiku各用了多少) - 按任务类型分组的费用(写代码、调试、测试、探索......) - MCP服务器的调用统计
快速查看
bash
codeburn today # 今天花了多少
codeburn month # 这个月累计
codeburn status # 一行摘要:今天 + 本月
status 命令特别适合放在shell启动脚本里,每次开终端瞄一眼今天的开销。
指定时间范围
bash
codeburn report --from 2026-04-01 --to 2026-04-15
codeburn report -p 30days # 最近30天滚动窗口
按工具筛选
如果你同时用Claude Code和Cursor,可以单独看某个工具的数据:
bash
codeburn report --provider claude # 只看Claude Code
codeburn report --provider cursor # 只看Cursor
codeburn report --provider codex # 只看Codex
按项目筛选
bash
codeburn report --project myapp # 只看某个项目
codeburn report --exclude tests --exclude docs # 排除特定项目
导出数据
bash
codeburn export # CSV格式
codeburn export -f json # JSON格式
codeburn report --format json | jq '.projects' # JSON管道处理
我跑出来的数据
装上CodeBurn之后,我拉了最近30天的数据看了看。几个发现:
Claude Code占了我90%的费用。 Cursor因为用的是Auto模式(按Sonnet估价),其实不贵。真正烧钱的是Claude Code里那些长session,一个session写到后面上下文窗口塞满了,每轮对话都要重新发送大量缓存token。
缓存命中率才72%。 按CodeBurn文档的说法,低于80%说明系统提示或上下文不稳定。我检查了一下,发现有个CLAUDE.md文件写了400多行,每次修改都导致缓存失效。
Coding任务的一次成功率只有65%。 也就是说,AI写完代码后有35%的概率要改了再试。主要集中在前端样式调整这种任务上,AI改一次看效果不对,再改一次,反复几轮token就烧掉了。
Exploration类任务占了15%的费用。 这些都是纯读取文件、搜索目录的操作,AI在"到处看看"而不是动手改代码。说明我的CLAUDE.md里缺少项目结构说明,AI每次都得自己摸索。
optimize命令:自动找浪费
这是我觉得CodeBurn最有用的功能。跑一下 codeburn optimize,它会扫描你的session数据和Claude配置文件,列出具体的浪费点和修复建议:
bash
codeburn optimize # 扫描最近30天
codeburn optimize -p week # 只看最近一周
它能检测的问题:
- 重复读取文件:同一个文件在多个session里被反复读取,内容一样,上下文也一样。建议写进CLAUDE.md或用@import引入
- Read:Edit比例失调:读了很多文件但几乎没改,说明AI在盲目探索
- Bash输出没截断:没设置
BASH_MAX_OUTPUT_LENGTH,测试输出或日志全量灌进上下文 - 闲置的MCP服务器:配置了但从没调用过的MCP,每个session启动时都要加载它的schema,白白消耗token
- 僵尸agent和skill:在
~/.claude/里定义了但从没用过的agent配置 - CLAUDE.md太臃肿:包括@import展开后的实际大小
每条建议后面都附了可以直接复制粘贴的修复命令。多跑几次的话,它还能对比前后变化,标出哪些问题改善了、哪些是新出现的。最后给你一个A到F的健康度评分。
我的优化实操
根据optimize的建议,我做了这几件事:
1. 精简CLAUDE.md
原来400多行,砍到120行。把项目目录结构写清楚(减少Exploration),把常用的工具命令直接列出来(减少AI去翻README)。
markdown
## 项目结构
src/
api/ # 后端接口
components/ # 前端组件
utils/ # 工具函数
tests/ # 测试文件,pytest
## 常用命令
测试:pytest tests/ -x
启动:npm run dev
构建:npm run build
2. 设置Bash输出限制
在 ~/.claude/settings.json 里加一行:
json
{
"env": {
"BASH_MAX_OUTPUT_LENGTH": "8000"
}
}
跑测试或者执行长命令时,输出超过8000字符会自动截断,不会把整个上下文窗口塞满。
3. 清理没用的MCP服务器
我配了6个MCP服务器,实际只用了3个。把不用的注释掉之后,每个session的初始化token减少了约2000。
4. 前端样式任务换模型
对于那些CSS调整、布局微调的任务,我从Opus切到Sonnet。这类任务Sonnet够用,价格只有Opus的五分之一。在CLAUDE.md里加了一条规则:
markdown
## 模型选择
- 架构设计、复杂逻辑:Opus
- 样式调整、简单修改:用 /model sonnet 切换
优化之后又跑了一周,缓存命中率从72%涨到86%,一次成功率从65%到74%,周费用降了约40%。
macOS菜单栏小组件
如果你用Mac,CodeBurn还有一个菜单栏应用,在状态栏显示今天的花费,点开能看完整面板:
bash
npx codeburn menubar
这条命令会下载一个Swift原生应用装到 ~/Applications/,通过文件系统事件实时刷新。支持切换货币单位(默认USD,可以改成CNY):
bash
codeburn currency CNY
几个注意点
Cursor的数据有限制。 Cursor的Auto模式不记录实际用了哪个模型,CodeBurn按Sonnet的价格估算,标注为"Auto (Sonnet est.)"。另外Cursor不记录单个工具调用,所以面板上没有工具分布,换成了编程语言分布。第一次读取大型Cursor数据库可能要等一分钟,后面有缓存就快了。
GitHub Copilot只记录输出token。 所以Copilot那行的费用肯定低于实际值。
隐私方面没问题。 CodeBurn只读本地文件,不联网上传任何数据。价格信息从LiteLLM的公开定价表拉取,也是公开数据。
汇率更新。 如果设了非USD货币,汇率数据来自欧洲央行(Frankfurter API),24小时缓存一次,免费无需key。
总结
CodeBurn干的事很简单:告诉你AI编程的钱花在哪。装完跑一下,数据就出来了。optimize再帮你找出浪费点。
每月AI编程开销超过50美元的话,装一个看看,说不定能省出不少。