开源工具可视化分析 Claude Code 的 token 消耗,帮助程序员精细控制 AI 编程成本。对频繁使用 Claude Code 的人有直接价值。
看清你的 AI 成本花在哪里。
如果 CodeBurn 为你揭示账单从未显示过的信息,请给项目加星,让其他开发者也能找到它,并考虑赞助以保持 36 个集成的透明性。
四个界面,一个真理来源:一切数据都源自你磁盘上已有的会话文件。
CodeBurn 是一款免费、开源、本地优先的工具,可以跟踪 36 个工具和智能体(Claude Code、Cursor、Codex、Gemini、Grok 等)的 AI 编码令牌使用情况和成本,按模型、项目和任务进行分类。
你为 Claude、Codex、Cursor 以及一堆其他 AI 工具付费。账单告诉你总花费。但它永远不会告诉你其中一半流向了对话而非代码,或者某个昂贵的模型在应该一次到位的工作上烧毁了你的预算。
CodeBurn 会。它读取你的工具已经写到磁盘的会话文件,并按任务、模型、工具和项目分解每一个令牌和每一美元,覆盖 36 个 AI 工具。
一切运行在本地。无包装器、无代理、无 API 密钥,没有任何东西离开你的机器。定价来自 LiteLLM,每日刷新。
快速开始 · 发现浪费 · 应用修复 · 护栏 · 对比模型 · 追踪已上线成果 · MCP · 支持的工具 · 命令 · 功能 · 工作原理
无需安装,立即运行:
npx codeburn
这将打开交互式仪表板(默认最近 7 天)。用方向键切换时间段,按 q 退出。这就是 30 秒快速上手版本。现在你知道 AI 预算花在哪里了。
安装为永久命令:
npm install -g codeburn
也可以通过 bunx codeburn 或 pnpm dlx codeburn 运行,或在 macOS 上用 brew install codeburn。
macOS 菜单栏应用,随时在菜单栏显示你的成本:
codeburn menubar
在 Linux 上,GNOME Shell 扩展提供相同的面板视图;见 Linux (GNOME)。
需要 Node.js 22.13+ 及至少一个磁盘上有会话数据的受支持工具。对于 Cursor 和 OpenCode,better-sqlite3 会自动安装。
codeburn overview # 本月,清晰表格
codeburn overview --no-color # 纯文本,可复制粘贴
codeburn overview --from 2026-06-01 --to 2026-06-15 # 任意日期范围
codeburn overview -p all # 最近 6 个月
codeburn overview -p lifetime # 完整历史(无上限)
codeburn overview --provider claude # 仅查看一个工具
codeburn overview 输出一份可复制粘贴的摘要,说明你的 AI 成本花在了哪里:总额(成本、令牌、缓存命中)、按工具和顶级模型的分类、高价值日期、顶级项目、按日期的表格,以及活跃度和工具使用情况。可将其管道输出到任何地方(粘贴板、PR、Slack 或推文);当输出不是终端时颜色会自动移除,或传入 --no-color。
CodeBurn 2026 年 6 月
总计
成本 $2,795.10
令牌 3.49B in 23.9M / out 20.2M / cache-w 72.5M / cache-r 3.38B
调用 14,755 会话 753
缓存命中 99.3%
按工具
┌──────────┬───────────┬────────┬───────┐
│ 工具 │ 成本 │ 令牌 │ 占比 │
├──────────┼───────────┼────────┼───────┤
│ claude │ $2,662.37 │ 3.34B │ 95% │
│ codex │ $119.12 │ 128.1M │ 4% │
└──────────┴───────────┴────────┴───────┘
(另含 Top models、Highest-value days、顶级项目、按日期表格、By activity 和 Tools)
codeburn optimize # 扫描最近 30 天
codeburn optimize -p today # 仅今天
codeburn optimize -p week # 最近 7 天
codeburn optimize --provider claude # 仅限一个提供商
codeburn optimize --format json # 以 JSON 输出设置健康度 + 发现
codeburn optimize 扫描你的会话和 ~/.claude/ 设置,找出浪费模式:
BASH_MAX_OUTPUT_LENGTH 无上限,后缀噪音)~/.claude/ 中定义但从未调用的幽灵智能体、技能和斜杠命令每项发现都显示估计的令牌和美元节省,以及一份可直接粘贴的修复:一行 CLAUDE.md、一个环境变量或一个 mv 命令来归档未使用的项目。发现按紧迫度排序(影响加权对已观测浪费),汇总为 A 至 F 等级的设置健康度。重复运行会根据 48 小时最近窗口将每项发现分类为新的、改进中或已解决。
你也可以从仪表板内联打开它:当状态栏中出现发现计数时按 o,按 b 返回。
codeburn optimize --apply # 交互式审查和应用修复
codeburn optimize --apply --dry-run # 打印计划,不做任何改变
codeburn optimize --apply --yes # 无提示应用每个可应用的修复
codeburn act list # CodeBurn 做过的每项改变
codeburn act undo --last # 回滚最近的改变
codeburn act report # 已实现与估计的节省
codeburn optimize 发现浪费;--apply 为你修复配置类发现:设置值、环境变量、归档未使用的智能体和技能。每次改变在应用前都备份并记入日志。codeburn act list 显示历史记录,codeburn act undo <id> 恢复原始文件(如果文件在应用后有改变,它会拒绝,除非你传入 --force)。
闭环从诚实开始:一旦应用的修复至少 3 天前,codeburn act report 就会对比其估计的节省与你的会话实际做过的,之后 codeburn optimize 运行会在标题中显示那个已实现的数字。估计会对标现实,而非仅被宣称。
codeburn guard install # 钩入此项目的 .claude/settings.json
codeburn guard install --global # 或钩入 ~/.claude/settings.json
codeburn guard status # 上限、安装位置、标记的项目
codeburn guard uninstall # 干净卸载,保留你自己的钩子
Guard 在 Claude Code 中安装可选钩子,在你工作时监视会话成本:
codeburn guard allow 仅针对该会话解除限制。上限在 ~/.config/codeburn/guard.json 中编辑(将某个值设为 null 以禁用它)。添加 --statusline 以在 Claude Code 状态栏中显示会话成本。安装经过与其他所有内容相同的日志,所以 codeburn act undo 也会移除它们。钩子故障安全开启:损坏的 guard 永远不会阻止会话。
codeburn compare # 交互式模型选择器(默认:最近 6 个月)
codeburn compare -p week # 最近 7 天
codeburn compare -p today # 今天
codeburn compare --provider claude # 仅 Claude Code 会话
哪个模型对你的工作实际更好?按仪表板中的 c,或运行 codeburn compare。用方向键切换时间段,b 返回。
也比较每个类别的一次到位率、委派率、规划率、每轮平均工具数和快速模式使用情况。
codeburn yield # 最近 7 天(默认)
codeburn yield -p today # 仅今天
codeburn yield -p 30days # 最近 30 天
codeburn yield -p month # 本日历月
codeburn yield --format json # 已上线/回滚/放弃/模糊不清的支出为 JSON
那笔支出真的上线了吗?codeburn yield 按时间戳关联 AI 会话与 git 提交:
属性是基于时间戳窗口的(启发式):每个提交最多归属于一个会话,即包含它的最紧窗口。JSON 报告携带方法论:"timestamp-window"。
需要 git 仓库。从你的项目目录运行。
codeburn web # 在浏览器中打开 http://localhost:4747
codeburn web -p 30days # 从不同时间段开始
codeburn web --port 8080 # 选择端口(如果被占用则回退到自由端口)
codeburn web --no-open # 启动服务器而不打开浏览器
一个本地网页仪表板,具有与 TUI 相同的任务、模型、工具和项目分类统计,使用图表呈现。使用量图表随选定的时间段显示(15 分钟、小时或每日分组),可在按会话和按模型的折线图之间切换。所有数据从本地硬盘读取,服务器绑定到 localhost;不上传任何数据。
在同一网络上查看笔记本电脑、桌面电脑和工作机器的统一总计。在每台其他设备上分享其使用情况:
codeburn share --pair # opens a pairing window and prints a PIN
然后从主设备添加一次(PIN 授权配对):
codeburn devices add # find nearby devices and pair, or: add <host> --pin <pin>
codeburn devices # combined totals by machine
codeburn devices rm <name> # forget a device
配对由 PIN 授权,保持在本地网络上。你也可以直接从浏览器仪表板发现和配对设备。
codeburn menubar
一条命令:下载最新的 .app,安装到 ~/Applications,并启动它。使用 --force 重新运行以重新安装。原生 Swift 和 SwiftUI 应用程序位于 mac/(构建详情见 mac/README.md)。
菜单栏图标显示"设置"中选定的支出期间(默认为"今日";还可选择"周"、"月"和"6 个月")。非今日期间会添加简短后缀(如 $42 / mo),使菜单栏数值保持清晰。点击打开弹出窗口,其中包含 AI 智能体选项卡、期间切换器(今日、7 天、30 天、月份、全部)、趋势、预测、脉冲、统计和计划洞察、活动和模型分类统计、优化发现和 CSV/JSON 导出。每 30 秒刷新一次。
你也可以从终端设置菜单栏状态期间:
defaults write org.agentseal.codeburn-menubar CodeBurnMenubarPeriod -string month
允许的值为 today、week、month 和 sixMonths。重新启动应用程序以应用外部默认值更改。
紧凑模式缩小菜单栏项以适应文本,去掉小数(如 $110 而不是 $110.20):
defaults write org.agentseal.codeburn-menubar CodeBurnMenubarCompact -bool true
重新启动应用程序以应用。要还原:defaults delete org.agentseal.codeburn-menubar CodeBurnMenubarCompact。
刷新频率在"设置"的"使用刷新"下设置。Auto(默认)在 AC 电源上每 30 秒刷新一次,在电池、低电耗模式下以及显示屏睡眠时降低刷新频率;还提供固定 1、5 或 15 分钟的刷新间隔和手动模式(仅在打开弹出窗口或点击"立即刷新"时刷新)。从终端:
defaults write org.agentseal.codeburn-menubar CodeBurnMenubarRefreshSeconds -int 300
刷新间隔秒数:60、300 或 900;0 为手动,-1 为自动。在下一个刷新周期生效,无需重新启动。
Linux 通过 GNOME Shell 扩展(GNOME 45+)获得相同的环境视图:顶部面板中的支出、期间切换器、紧凑模式和每日预算警报。它位于 gnome/:
git clone https://github.com/getagentseal/codeburn && cd codeburn/gnome
./install.sh
gnome-extensions enable codeburn@codeburn.dev
有关设置和开发说明,见 gnome/README.md。在 Windows 上,codeburn web 目前是常开视图。
claude mcp add codeburn -- npx -y codeburn mcp
codeburn mcp 通过 stdio 运行本地 MCP 服务器,因此 Claude Code、Cursor 或任何 MCP 客户端可以在对话中提问"我的令牌本周去哪儿了?"或"如何减少花费?"。它公开两个工具:
所有数据从本地硬盘读取,与 CLI 相同。项目名称默认被假名化;只有在使用 include_project_names: true 询问时,AI 智能体才能看到实名。对于其他 MCP 客户端,使用命令 npx 和参数 -y codeburn mcp 配置 stdio 服务器。
CodeBurn 自动检测你使用的 AI 工具。每个徽标链接到其提供商文档。
如果多个提供商在硬盘上有会话数据,在仪表板中按 p 在它们之间切换。
每个提供商文档列出确切的数据位置、存储格式和已知的特异性。Linux 和 Windows 路径自动检测。如果路径已更改或错误,请开启问题。
--provider 标志将任何命令过滤到单个提供商:codeburn report --provider claude、codeburn today --provider codex、codeburn export --provider cursor。适用于所有命令:report、today、month、overview、status、export、web、optimize、compare、yield。
添加新提供商只需一个文件。例子见 src/providers/codex.ts。
运行 codeburn 以打开仪表板,或使用下面的子命令。大多数命令也接受 --provider、--project / --exclude 和时间段标志(-p today|week|30days|month|all|lifetime)。
同步发送令牌计数、成本、模型和项目,从不发送提示或代码。此功能为预览版;协议可能在版本之间更改。详情见 docs/sync/。
左/右箭头键在"今日"、"7 天"、"30 天"、"月份"、"6 个月"和"终身"之间切换(使用 --from / --to 获取精确的历史窗口)。主要的"每日活动"面板始终显示可滚动的完整历史:使用上/下箭头移动一天,Page Up/Page Down(或 Shift+Space/Space)翻页,g/G 跳到任一端。这些按键在原位更新面板,而不是移动终端的滚动历史。按 q 退出,1 2 3 4 5 6 作为时间段快捷键,c 打开模型比较,o 打开优化。仪表板默认每 30 秒自动刷新(使用 --refresh 0 禁用)。它还显示每个会话的平均成本和所有项目中成本最高的五个会话。
使用输入、输出、缓存读取、缓存写入和网络搜索令牌计数为每个 API 调用定价,Claude 快速模式有倍数。价格从 LiteLLM 获取并在本地缓存 24 小时至 ~/.cache/codeburn/。所有 Claude 和 GPT-5 模型的硬编码回退可防止模糊匹配造成的错误定价。
根据工具使用模式和用户消息关键词分为 13 个类别。无 LLM 调用,完全确定性。
每日成本图表,按项目、按模型(Opus、Sonnet、Haiku、GPT-5、GPT-4o、Gemini、Kiro 等)、按活动(包括一次成功率、核心工具、shell 命令和 MCP 服务器)。
对于涉及代码编辑的类别,CodeBurn 跟踪文件感知的重试周期。重试是指同一文件在中间执行 shell 命令后被重新编辑(Edit foo.ts、Bash、Edit foo.ts)。在 shell 步骤中编辑不同文件不算重试。一次成功列显示在没有重试的情况下成功完成的编辑回合的百分比。一次成功率 90% 表示 AI 在 10 次编辑中有 9 次无需重试就成功了。文件级跟踪可用于 Claude、Codex 和 Goose;其他提供商回退到基于工具名称的检测。
codeburn plan set claude-max # $200/month
codeburn plan set claude-pro # $20/month
codeburn plan set cursor-pro # $20/month
codeburn plan set custom --monthly-usd 200 --provider codex # ChatGPT Pro-style custom plan
codeburn plan reset --provider codex # remove one provider plan
codeburn plan set none # disable plan view
codeburn plan # show configured plans
codeburn plan reset # remove plan config
Claude Pro、Claude Max、Cursor Pro 和自定义提供商计划的订阅跟踪。计划按提供商存储,因此你可以同时跟踪 Claude 和 Codex/Cursor 订阅;仪表板为每个活跃的提供商计划显示一行超额。旧的/自定义所有计划保持为单个聚合计划,并在添加提供商特定计划时被替换,避免超额行被重复计算。现有的单计划配置仍作为后备读取。预设使用公开声明的计划价格(截至 2026 年 4 月);它们不模型精确的令牌额度,因为供应商未公布精确的消费者计划限额。
codeburn currency GBP # set to British Pounds
codeburn currency AUD # set to Australian Dollars
codeburn currency JPY # set to Japanese Yen
codeburn currency CNY # set to Chinese Yuan
codeburn currency RON # set to Romanian Leu
codeburn currency # show current setting
codeburn currency --reset # back to USD
支持任何 ISO 4217 货币代码(162 种货币)。汇率从 Frankfurter(欧洲中央银行数据,免费,无需 API 密钥)获取并缓存 24 小时。配置存储在 ~/.config/codeburn/config.json。货币设置适用于所有地方:仪表板、状态栏、菜单栏、CSV/JSON 导出和 JSON API 输出。
如果某些模型显示 $0.00,你的提供商报告的模型名称与 LiteLLM 定价数据中的任何条目都不匹配。使用重写模型名称的代理时,这种情况很常见。
codeburn model-alias "my-proxy-model" "claude-opus-4-6" # add alias
codeburn model-alias --list # show configured aliases
codeburn model-alias --remove "my-proxy-model" # remove alias
别名存储在 ~/.config/codeburn/config.json 中,在定价查询前运行时应用。目标名称可以是 LiteLLM 模型列表中的任何内容,或来自备用表的规范名称(例如 claude-sonnet-4-6、claude-opus-4-5、gpt-4o)。内置别名为已知的代理模型名称变体而提供。用户配置的别名优先于内置别名。
codeburn price-override my-model --input 0.27 --output 1.10 # USD per 1M tokens
codeburn model-savings "llama3.1:8b" gpt-4o # local model, counted as savings
codeburn proxy-path ~/work/copilot-repo # subscription-covered project
price-override 为任何模型设置确切费率(输入、输出、缓存读取、缓存创建),对于私有部署或 LiteLLM 定价错误的模型很有用。model-savings 将免费的本地模型映射到付费基线:本地调用保持 $0,仪表板显示相同标记在基线上的成本。proxy-path 标记通过订阅支持的代理路由的项目(例如 GitHub Copilot 上的 Claude Code),因此其 API 费率成本报告为订阅覆盖,您的实际支出保持诚实。三者都支持 --list 和 --remove。
codeburn report --project myapp # show only projects matching "myapp"
codeburn report --exclude myapp # show everything except "myapp"
codeburn report --exclude myapp --exclude tests # exclude multiple projects
codeburn month --project api --project web # include multiple projects
codeburn export --project inventory # export only "inventory" project data
按提供商、项目名称(不区分大小写的子字符串)或精确日期范围进行过滤。--project 和 --exclude 标志适用于所有命令,可与 --provider 结合使用。
codeburn report --from 2026-04-01 --to 2026-04-10 # explicit window
codeburn report --from 2026-04-01 # this date through today
codeburn report --to 2026-04-10 # earliest data through this date
任一标志单独使用都有效。反向或格式错误的日期以明确的错误退出。在 TUI 中,自定义范围仅设置初始加载;按 1 到 6 切换回预定义周期。
当工具显示零(或看起来错误的数字)时,codeburn doctor 解释原因。它完全离线和只读运行,从不写入缓存或配置。
codeburn doctor # every provider, human-readable table
codeburn doctor --provider opencode # diagnose one provider
codeburn doctor --json # machine-readable, pipe to jq
对于每个提供商,它显示探测的确切目录或数据库(带有任何环境覆盖,如 CLAUDE_CONFIG_DIR、CODEX_HOME 或 OPENCODE_DATA_DIR,以及路径是否存在)、找到的会话文件数、有限样本中有多少干净解析的文件、缓存文件计数和一行判决:OK(n 个会话)、NOTHING FOUND 和可能的原因(目录缺失、覆盖指向空目录或未安装工具)或 ERRORS(n 个解析失败)。抛出异常的提供商被捕获并报告为其自己的错误行,永远不会导致报告的其余部分崩溃。
report、today 和 month 支持 --format json 将完整的仪表板数据作为结构化 JSON 输出到 stdout:
codeburn report --format json # 7-day JSON report
codeburn today --format json # today's data as JSON
codeburn month --format json # this month as JSON
codeburn report -p 30days --format json # 30-day window
JSON 包括所有仪表板面板:概览(成本、调用、会话、缓存命中 %)、每日细分、项目(带有 avgCostPerSession)、带有标记计数的模型、带有一次性费率的活动、核心工具、MCP 服务器和 shell 命令。管道到 jq 进行过滤:
codeburn report --format json | jq '.projects'
codeburn today --format json | jq '.overview.cost'
对于更轻量的输出,使用 status --format json(仅今天和本月总计)、optimize --format json(设置健康状况、发现和复制粘贴修复)、yield --format json(生产/已还原/已放弃/模糊支出)或文件导出(export -f json)。
CodeBurn 表面化数据;您读故事。一些值得了解的模式:
这些是起点,而不是判决。单个实验会话上的 60% 缓存命中率没有问题。跨数周工作的持久 60% 缓存命中率是配置问题。
CodeBurn 对消息进行去重(对于 Claude 使用 API 消息 ID、对于 Codex 使用累积标记交叉检查、对于 Cursor 使用对话/时间戳、对于 Gemini 使用会话 ID、对于 OpenCode 使用会话+消息 ID、对于 Pi/OMP 使用 responseId、对于 Codebuff 使用聊天文件夹+消息 ID、对于 Kimi 使用会话+消息 ID),按每个条目的日期范围过滤,并对每个轮次进行分类。
CodeBurn 是免费的,完全在您的计算机上运行,存在是为了降低您的 AI 账单。如果它已经为您节省了超过赞助成本的费用,请考虑返还一部分。
保持 36 个集成的准确性是一项持续的工作。底层工具每周都在变化:Cursor 重塑其数据库,Claude 移动配置路径,新模型以新价格发布。赞助保持 CodeBurn 与所有这些保持同步,因此您看到的数字始终是真实的。
您的赞助去向:
诚实的数字。新模型和价格变化被快速映射,因此您的成本是真实成本,而不是猜测。
更多工具。36 个提供商中的每一个都从单个文件开始。赞助为下一个提供资金。
快速修复。当供应商破坏某些内容时,付费时间可以立即修补,而不是有朝一日。
以团队或公司身份赞助?您的徽标会立即出现在这里,在每个打开仓库的开发者面前。第一个赞助者拥有它,直到下一个出现。
CodeBurn 是 AgentSeal 开源项目,与 CodeBurn Bt. 或 codeburn.hu 无关。
定价数据来自 LiteLLM。汇率来自 Frankfurter。