lzwcc/ ui-motion-lab
No.P02 · Project · 2026.10.23查看源码
作品 / 项目

token-stats:汇总几台机器的 AI 编程用量

统计我在几台机器上用了多少 Claude Code 和 Codex 的 token,画成 GitHub 主页上的卡片。服务器上什么都不用装,只依赖 Python 标准库。

原创Python / SQLite / SVG / GitHub Actions约 2 分钟

token-stats 是我写的一个命令行工具,用来统计自己用了多少 AI 编程的 token。

我平时同时用 Claude Code 和 Codex,分散在一台笔记本和两台服务器上。每台机器的日志只在它自己身上,Claude Code 还会删掉 30 天前的日志;现成的工具要么只看本机,要么要把数据交给它的服务。所以自己写了一个:在笔记本上运行一条命令,把几台机器的用量拉回来存进本地数据库,再画成卡片放到 GitHub 主页上。

下面这张就是它生成的,数据是我自己的。

token-stats 生成的概览卡:模型占比环形图、近半年热力图和统计token-stats 生成的概览卡:模型占比环形图、近半年热力图和统计

怎么做的

笔记本经 ssh 把一段约 150 行的解析程序发到服务器上运行,服务器只把新增的请求传回来,本身不用装任何东西,也不会留下文件。每条请求按唯一键存进 SQLite,几台机器的数据合在一起不会重复计数,日志被清理以后,存下来的也还在。第一次采集约 52 秒,之后每次 6 秒多。

整个工具只用 Python 标准库,macOS 自带的 Python 3.9 就能跑。卡片是直接拼出来的 SVG,一共 9 张,亮色、暗色各一份,推到我自己的公开仓库,主页 README 直接引用。自动提交用的是一个不关联任何账号的作者,每天更新数据不会让贡献图变绿。

月度用量卡:最近 12 个月,按 Claude Code 和 Codex 堆叠月度用量卡:最近 12 个月,按 Claude Code 和 Codex 堆叠
模型排行卡:前 8 个模型的用量,按厂商上色模型排行卡:前 8 个模型的用量,按厂商上色

一共 9 张卡片,全部的样子见卡片画廊。

这个网站首页的「AI 用量」也来自它。token-stats 每次发布时会顺带生成一份汇总数据,数字和卡片出自同一段代码,网站发布时读一次就行。

测试

在三台真实机器上和 ccusage 对过账,结果一致。61 个单元测试在 macOS、Linux、Windows 上跑,每次推送还会用打包出来的源码走一遍安装和卸载。我没有 Windows 机器,Windows 只在 CI 里测过。

为什么这样设计、开发中踩过的坑,写在博客里:汇总多台机器的 Claude Code 与 Codex 用量,生成 GitHub 主页卡片。