@anthonyhan/token-pilot

中文文档
0.4.12发布于 2026/11/06MITES Module零依赖近 30 天下载 2052

你所有 AI 工具的本地账单 + 预算控制器 — 只读本地日志,零入侵,不出本机

原始使用文档
文档目录21 节
  1. 所有 AI 工具的本地账单,一抬头就看见
  2. 🚀 快速开始
  3. 状态栏应用
  4. 🎯 为什么做这个
  5. ✨ 功能清单:它能做什么
  6. 📈 数据准确性
  7. 📊 凭什么信我
  8. ⚠️ 什么时候别用它
  9. 🔋 订阅额度与余额
  10. 🧩 它和别的工具有什么不同
  11. 👥 开发者与交流
  12. 微信交流群:让 AI 先试试
  13. 其他渠道
  14. 想参与开发
  15. 💬 参与讨论
  16. 💰 支持这个项目
  17. 🙋 关于我
  18. 📝 更新日志
  19. ✅ TODO LIST
  20. English
  21. License
token-pilot —— 所有 AI 工具的本地账单,本月实测 ¥8,265 / 48 亿 tokens

token-pilot ⚡

所有 AI 工具的本地账单,一抬头就看见

同时用 Claude Code / Codex / Kimi Code 跑国产模型的人,终于能答上「这个月给 AI 烧了多少钱」——只读本地日志,数据不出本机。

License: MIT Platform Tests Accuracy

快速开始 · 状态栏应用 · 数据准确性 · 什么时候别用它 · 讨论 · 贡献 · English


状态栏面板

状态栏常驻 ⚡ ¥今日 · 预算%。左键弹面板,「打开完整看板」看全部。我的真实 10 月:47.8 亿 tokens · ¥8,265 · 32,643 次调用(怎么算的)。

⚠️ npm 上另有一个别人家的 token-pilot(MCP 代码导航工具,会往 Claude Code 写 hooks)。我们的包是 @anthonyhan/token-pilot,下面命令都带 scope,照抄即可。

🚀 快速开始

For Humans:

npm install -g @anthonyhan/token-pilot
token-pilot month     # 本月账单 + 月底预测 + 打转检测 + 省钱建议

For AI Agents:(把这句粘贴给你的 Agent)

帮我安装 token-pilot:npm install -g @anthonyhan/token-pilot,然后跑 token-pilot month 告诉我这个月 AI 花了多少钱、哪里在浪费。

状态栏应用

安装启动后只在状态栏显示一个闪电图标——无 Dock 图标、无启动窗口;左键弹面板,右键出菜单。

macOS(Apple Silicon / Intel):

# 方式一:Homebrew(推荐,自动处理 Gatekeeper,装完即用)
brew install --cask anthonyhann/token-pilot/token-pilot
# 方式二:Releases 手动下载 .dmg,拖入「应用程序」后跑一次(解决未签名的「已损坏」误报)
xattr -dr com.apple.quarantine /Applications/token-pilot.app

Windows:Releases 下载 .msi,SmartScreen 选「仍要运行」。

长期解:Apple 开发者签名+公证($99/年)在 TODO 里,有赞助再开。

自己构建:cd menubar && npm install && npx tauri build

🎯 为什么做这个

我同时用 Claude Code、Codex 和 Kimi Code 跑国产模型,账单散在三个地方:Claude 记一笔、Codex 记一笔、Kimi 记一笔,没有一个地方能回答「这个月总共烧了多少」。

试过几个现有方案,都不合用:

方案国产模型只读本地状态栏卡在哪
ccusage部分✅❌以 Claude Code 为主,deepseek-v4.1-flash 这类模型的归一路径不全
各工具自带用量页✅—❌每个工具各看各的,没法合并成一张账单
商业账单 / 代理类工具❌❌✅要把日志或请求过一遍云端,我不放心把完整会话历史交出去
token-pilot9 家✅✅—

核心区别只有一句:它把国产模型和海外模型放在同一张账单里,而且全程不出本机。

✨ 功能清单:它能做什么

场景你说它做
看账单token-pilot month按宿主/按模型双维度月账单 + 月底预测
怕超支设个月度预算进度条 + 超支系统通知 + 托盘常驻 ¥今日 · 预算%
Agent 打转不用说话自动揪出「单会话 ≥30 次调用」的死循环,算出浪费金额
想省钱看「省钱建议」卡贵模型干轻活 → 迁移建议+每月省多少;低缓存命中 → 优化空间;本月缓存帮你省了多少
上下文太长自动提醒 / 点徽标会话超 100K 上下文标记「该压缩」,可写 Claude Code autoCompact / 装 RTK 输出压缩层(含压缩引擎,装完自动 rtk init -g 接入 Claude Code hook)
想知道能省多少看「压缩潜力」板块本月陈旧输出/重复读取/超长输出各浪费多少钱,按模式拆分 + 列出最浪费的 5 个会话
还够不够用看「订阅额度与余额」板块 / token-pilot quota火山 Agent/Coding Plan、OpenCode Go、GLM 的额度窗口;DeepSeek 等现金余额。比线性节奏快还是慢会直接标出来
核对价格token-pilot prices每个在用模型的单价来源(目录价/人工覆写/自动补价待核对)
谁在烧看「宿主/模型/项目榜」哪个工具、哪个模型、哪个项目花最多,一目了然
国产模型不用配置DeepSeek/GLM/Kimi/Qwen 走宿主日志 model 字段自动归一

兼容你的工具链: Claude Code ✅ · Codex ✅ · Kimi Code ✅ · OpenCode ✅(全量 token)· DeepSeek/GLM/Kimi/Qwen/MiniMax/混元/MiMo/LongCat/Doubao ✅(模型归一)· 其余 12 款仅检测 · 桌面订阅端记固定月费

📈 数据准确性

账单工具不准就是误导。所以准确性可验证:

python3 scripts/reconcile.py month    # 第三方视角独立重算原始日志,与 CLI 逐项对账
python3 scripts/verify-dashboard.py   # 看板 36 项算法不变量校验
npm test                              # 69 个单元测试(定价/采集口径/聚合/注入/熔断/RTK/额度/并发)

实测修过的口径坑(2026-10-21,本机 4787 个日志文件):

坑影响修复
Claude 流式快照重复行某会话 169 行 usage 实为 79 次调用按 message.id 去重取最大
Codex input 含 cached 子集缓存被按全价+缓存价计两次拆分 input − cached
Kimi inputOther 才是新输入同上只认 usage.record 且不并入缓存

📊 凭什么信我

  • 我自己的 AI 账单就是它管的:本月 ¥8,265 / 47.8 亿 tokens(2026-10-29 本机实时数据)
  • 36 项看板算法不变量 + 69 个单测 + 独立对账脚本,全部开箱可跑
  • 诚实披露速率口径:日志按「调用完成时刻」记账,生成中的调用完成前不计入(看板内有注明)

⚠️ 什么时候别用它

  • 你想管的工具不写本地用量日志(Antigravity / Copilot / Cursor 等 12 款)——只能检测到装没装,读不到 token
  • 桌面订阅 App(Kimi.app / ChatGPT.app)——不按 token 计费,只能登记固定月费
  • 想拦在请求前面节流——它是事后分析,不拦截请求(拦截需要代理层,在 Roadmap)

🔋 订阅额度与余额

账单回答「花了多少钱」,额度回答「还能用多少」。后者来自平台自己的接口,不是本地推算。

已实测可用(用真实 key 打出真实数据验证过):

平台能拿到什么数据来源
OpenCode Go滚动 / 本周 / 本月三个窗口的已用百分比官方接口,用 OpenCode 自己的登录态
火山方舟Agent Plan 的额度绝对值 + 百分比;Coding Plan 的百分比官方 CLI arkcli usage plan
智谱 GLM额度窗口 + 套餐档位官方接口
DeepSeek现金余额GET /user/balance
Moonshot / Kimi可用余额(代金券 + 现金)GET /v1/users/me/balance
OpenRouter剩余额度(累计充值 − 累计已用)GET /api/v1/credits

已探到端点、等待实测(界面上标「待验证」,拿到对应 key 就能启用):

平台需要什么卡在哪
MiniMax 余额admin key普通 key 报 token_type_mismatch
MiniMax Token Plan有效订阅账号无订阅时返回 2062,拿不到字段结构
Kimi Code 订阅Kimi Code 订阅账号端点与字段链已知,待验证
Novita AI普通 key端点存在,字段待验证
阶跃 StepFun—无公开余额接口(16 个路径全 404,文档只有 chat)
SiliconFlow—国内站接口已废弃(410 deprecated)

为什么分两栏:探到 401 不代表接口能用——很多网关对不存在的路径也返 401。 只有用真实 key 拿到真实 JSON、确认字段语义无误的,才算「可用」。 这个原则避免了两次误判:OpenRouter 的「累计充值」差点被当成余额 (会显示「还剩 $0.34」而实际已用光),MiniMax 的鉴权头格式错差点被当成 key 无效。

凭证从哪来(三级降级,装了哪个用哪个):

  1. 你在看板「数据设置」里填的 key —— 永远可用
  2. 平台自己的登录凭据(如 OpenCode 的 ~/.local/share/opencode/auth.json)—— 装了该工具就有
  3. CC Switch 的配置 —— 装了才自动读取,不装完全可以正常用

第 3 层是便利不是依赖:不装 CC Switch 的用户,点「+ 添加平台」填一次 key 就能获得全部额度功能。 CC Switch 里配过的平台会自动回填成「CC Switch 读取」并设为只读,避免你手填一遍算两次。

怎么加平台:

  1. 设置里点「+ 添加平台」→ 下拉选平台 → 粘贴 key → 确定。余额和订阅是两套 key,分开填
  2. 内置列表没有的,选「添加自定义平台」,填「名称 + 接口地址 + 金额字段路径(如 data.balance)」即可
  3. 内置平台的端点定义在 catalog.ts,加一条数据就是加一个平台

余额和订阅是两件事,所以分开配置、分开显示:

余额订阅
回答账户还剩多少钱套餐用了多少、何时重置
key通常普通 key 即可部分平台要 admin key
例子DeepSeek ¥20.10火山 Coding Plan 本月 29%

同一个平台可以两套都配(比如 MiniMax 查订阅用普通 key、查余额用 admin key),key 按「平台 + 场景」分开存,互不覆盖。

关于接口字段的坑:有些平台不返回「余额」,只给「累计充值」和「累计已用」两个数(OpenRouter 就是这样)。直接拿累计充值当余额会显示成「还剩 $0.34」,而实际一分不剩——所以这类平台会做减法。没验证过字段语义的接口一律标为未启用,不会拿错的数字糊弄你。

诚实说明:Coding Plan 类套餐平台只下发百分比,不发绝对值。所以看板上不会出现「已用 1500/20000」这种编造的数字——有什么显示什么。

节奏判断:单看「已用 60%」没意义,知道「窗口才过 40% 就已经用了 60%」才知道该不该踩刹车。所以有窗口长度和重置时间的平台,会额外标注「比线性节奏快/慢 N%」。

🧩 它和别的工具有什么不同

省 token 这件事分好几个环节,token-pilot 只做其中一环——算清楚钱。想省得更多,通常要几个工具配合:

环节谁负责典型效果
花了多少钱token-pilot(本工具)多宿主合并账单、预算告警、算出浪费了多少
命令输出太大RTK 输出压缩层已内置支持,看板勾选即可装
读代码浪费上下文AST 结构化读取类工具(见下)大文件从「整篇读」变成「先看结构,再读需要的符号」
模型回复太长精简输出类 skill只影响输出 token,与输入侧不重叠

关于重名: npm 上有一个同名的 token-pilot(Digital-Threads/token-pilot),它做的是上面第三行那件事——用 AST 让 AI 少读代码。它不统计花费,本工具也不读代码结构,两者解决的是同一个成本问题的不同环节,可以一起用。

本工具的正确包名是带 scope 的 @anthonyhan/token-pilot,安装命令都在上面,照抄即可。

👥 开发者与交流

一个人 + 几个 AI Agent 在做,想法和坑都摆在明面上。token-pilot 是本地工具,你的账单数据不会离开本机,所以交流群里聊的主要是「怎么算得更准」「怎么支持更多工具」,不用发任何日志或账单截图。

微信交流群:让 AI 先试试

微信群「让 AI 先试试」入群二维码

扫码进群。适合:用着遇到问题想问、想提新工具/新平台的接入需求、或者单纯想看看别人怎么管理 AI 账单。

⏳ 群二维码 2026 年 11 月 6 日前有效。过期后扫码会失败——到 Discussions 留言,或在 Issues 提一句,我更新二维码并回复你新的入群方式。

其他渠道

渠道适合什么
Discussions「这个模型算得对不对」「能不能支持某某工具」——公开讨论,后来的人搜得到
Issues数据算错、功能异常,需要跟进修的问题
X @AnthonyHan_私信催更、聊产品想法
[email protected]商务、赞助、其他不方便公开的事

想参与开发

  • 写 adapter:新增一个 AI 工具的支持,只需要在 src/adapters/ 下实现 detect() + collect(),不需要读任何中心服务。想接哪个工具,先开 Discussion 说一声,避免撞车
  • 提 PR:npm test 和 cargo test 必须全绿,.github/workflows/ci.yml 会在每次 push 自动跑;分支合并前请保持工作区干净
  • 报数据不准:最有价值的反馈。附上「哪个工具、哪个模型、你预期的数字、token-pilot 显示的数字」就够了,不用贴原始日志

💬 参与讨论

  • Discussions ——「这个模型算得对不对」「能不能支持某某工具」这类问题放这里,比开 issue 合适
  • Issues ——数据算错、功能异常

💰 支持这个项目

token-pilot 免费且 MIT。如果它帮你省下了 AI 账单,可以请我喝杯咖啡:

支付宝微信
支付宝赞赏码微信赞赏码

也想出现在这里?→ [email protected](赞助位招租)

⭐ Star 本仓库 = 告诉我你在用哪个宿主——下一个 adapter 优先做 Star 用户提名最多的那个。

🙋 关于我

一个人 + 几个 AI Agent 在做产品实验(西安远程)。token-pilot 是我自己每天真在用的工具——它先抓出了我 kimi-code 里一个打了 120 次调用的打转会话,又告诉我这个月缓存帮我省了 ¥3,048。

保持联系: X @AnthonyHan_ · [email protected]

📝 更新日志

完整分版本说明见 RELEASE_NOTES.md(也是客户端自动更新弹窗的文案来源)。

  • v0.3.2 RTK 改用含压缩引擎的完整版,装完自动接 hook(备份/回滚保护);新增发布数据回流脚本
  • v0.3.1 npm 包缺 web 目录修复、看板前端编入 app 二进制
  • v0.3.0 新增「压缩潜力」板块,修省钱建议卡被静默丢弃
  • v0.2.9 自动发布链路修复(三平台产物上传与命名)
  • v0.2.6 激活自动更新链路 + 打转熔断主动通知(含防轰炸)
  • v0.2.5 npm scope 校正为 @anthonyhann,包可运行性修复
  • v0.2.3 2B 压缩执行第一层(自动压缩 + autoCompact 写入 + RTK)、价格核对台
  • v0.2.1 定价表对齐 8 家官方目录价、DeepSeek 分时、面板布局修复
  • v0.2.0 压缩潜力量化、9 源采集覆盖、三处口径修复
  • v0.1.0 首版 → CLI 账单 + 本地看板 + macOS/Windows 状态栏应用,三形态一次给齐

✅ TODO LIST

图例:[x] 已完成 · [ ] 计划中 · [⏸] 卡在外部条件,短期不会动(原因写在后面)

采集覆盖

  • OpenCode adapter(SQLite)
  • Qoder adapter(仅会话数,model 全为 auto——诚实标注)
  • pi adapter
  • Cursor spike(结论:无 token 用量数据,ai-code-tracking 是代码追踪非用量 → 诚实归「仅检测」)
  • 云端用量 API:Doubao 火山(arkcli usage stats,日粒度)
  • [⏸] 云端用量 API:OpenAI / Kimi 开放平台
    • 实测结论(2026-11):Kimi 的余额已接通(GET /v1/users/me/balance → data.available_balance,真实 key 验证通过)。但没有用量查询端点——/v1/usage、/v1/users/me/usage、/api/v1/usage 全部 404。所以「还剩多少」能查,「今天花了多少」查不到
    • OpenAI 有 /v1/organization/usage/* 这类用量端点,但都是组织级接口,需要 Organization Admin key 才能调。我没有 admin key,无法验证个人 key 是否也可用——所以这项标「卡住」而不是「简单待办」
    • 如果你手上有 OpenAI 的 admin key 或知道 Kimi 的用量接口,发我实测一次,验证通过我当天就能接上

节流(Step 2)

  • 2A 压缩潜力量化(规则引擎:陈旧输出/重复读取/超长输出 → 本月可省多少,实测 $63-95)
  • 2B 压缩执行第一层:自动压缩提醒 + Claude autoCompact 写入 + RTK 安装(含 engine 的完整版;自动接 hook,改动 settings.json 前备份、失败还原)
  • 异常重试自动熔断提醒(breaker.ts:单会话 ≥30 次调用即主动通知,每轮最多提 1 个防首跑轰炸)
  • [⏸] 2B 压缩执行第二层:代理网关(LiteLLM / 自研)
    • 卡点不是技术,是边界:本地代理会接管你所有 AI 工具的请求链路。要做就得先回答「失败怎么无感回退」「改了网络出问题怎么一键还原」「凭什么让用户信它不劫持 key」。这三条没有令人信服的答案之前不做——宁可不做,也不能做一个会偷偷影响你网络的中间层
  • [⏸] 低价模型路由(同上,是代理网关的一个子功能)
    • 依赖上一条;另外自动路由会导致「同一段对话前后模型不一致」,对连贯性有损,需要先验证收益是否盖过代价

平台与工程

  • macOS 状态栏应用(arm64 + Intel x64 双架构 .app/.dmg)
  • Windows 核查 + 分平台图标 + CI(.msi 由 Actions 产出)
  • 自动更新(tauri-updater,v0.2.6 起生效,三平台共用一份 latest.json)
  • CI 自动发布:打 tag 后三平台产物 + 合并版 latest.json 自动进 Release,并回写 brew cask
  • [⏸] Windows .msi 实机安装验证
    • 现状:CI 只验证到「产物成功生成 + 签名文件存在 + 文件大小合理」,没有在真实 Windows 上装过、跑过、验证过自动更新。开发环境是 macOS,手上没有 Windows 机器
    • 需要:一台 Windows 10/11 机器。谁愿意帮忙实测,开 Discussion 说一声,我把验证步骤整理成清单发你
  • [⏸] 统一二进制(universal2 单包替代 arm64/x64 两个 dmg)
    • 技术上可行:依赖全是纯 Rust(tauri / serde / open,没有 C 库),lipo 能合并
    • 代价明确:两个架构的代码合并后,单包体积必然大于现在任一个 dmg(现在 arm64 是 5.4MB、x64 是 5.7MB)。具体多大需实际构建后才能确认,这里是预估不是实测
    • 而且 latest.json 仍要按架构分发,等于要多维护一条合并流程
    • 结论:只有在「用户分不清该下哪个」真的成为常见问题时才值得做。现在两个 dmg 名字里已经标了 aarch64 / x64,暂时不是瓶颈
  • [⏸] 签名与公证
    • 阻塞原因:Apple Developer Program $99/年,目前项目没有收入来源
    • 影响:未签名的 app 首次打开会被 Gatekeeper 拦一次,需要右键打开或跑一次 xattr -dr com.apple.quarantine(快速开始里有写)。brew 安装的会自动处理
    • 若将来有赞助覆盖这笔开销,优先做这个——它比任何新功能都更能降低新用户的第一次使用摩擦

English

README in English → README-en.md

token-pilot — local billing + budget control for all your AI coding tools. Reads local logs only (no hooks, no telemetry). CLI + local dashboard + menubar app (macOS/Windows). Chinese models (DeepSeek/GLM/Kimi…) auto-normalized via host-log model field.

License

MIT © anthonyhann

版本与发布记录

@anthonyhan/token-pilot 共发布 20 个版本,首次发布于 2026/10/23;过去 12 个月发布了 20 个版本。

版本发布日期距今
0.4.12latest2026/11/061 天前
0.4.112026/11/061 天前
0.4.102026/11/061 天前
0.4.92026/11/052 天前
0.4.82026/11/052 天前
0.4.72026/11/052 天前

关于 @anthonyhan/token-pilot 的常见问题

@anthonyhan/token-pilot 是什么?

你所有 AI 工具的本地账单 + 预算控制器 — 只读本地日志,零入侵,不出本机

如何安装 @anthonyhan/token-pilot?

在项目目录运行 npm install @anthonyhan/token-pilot,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 token-pilot,可以用 npx token-pilot 直接运行。

@anthonyhan/token-pilot 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/anthonyhan__token-pilot 是否存在。

@anthonyhan/token-pilot 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@anthonyhan/token-pilot 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@anthonyhan/token-pilot 可以商用吗?

@anthonyhan/token-pilot 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@anthonyhan/token-pilot 的下载量有多少?

根据 npm 官方下载统计,@anthonyhan/token-pilot 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,052 次,日均约 68 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@anthonyhan/token-pilot 还在维护吗?

最新版本 0.4.12 发布于 2026/11/06(1 天前);至今共发布 20 个版本,其中过去 12 个月发布了 20 个;首次发布于 2026/10/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。