vibereceipt — 你的 AI 编程,逐项列清。
vibereceipt 读取 Claude Code、Codex CLI 和 OpenCode 本来就保存在你电脑上的会话日志,打印一张购物小票:token 用量、按 API 价格算要花多少钱,以及智能体说了多少次 “You’re absolutely right”。然后保存一张可以直接发出去的 PNG。
npx github:glmn-ai/vibereceipt即将上架 npm:npx vibereceipt。
- 无需账号
- 没有网络请求
- 零运行时依赖

用 --demo 示例数据打印,不是任何人的真实日志。
智能体做过的一切,逐行列出
数字来自日志,价格来自公开价目表。趣味计数只在你的日志里有记录时才出现。
*** FUN COUNTERS ***
大家最爱截图的部分。
- "YOU'RE ABSOLUTELY RIGHT"在智能体的回复里计数。
- "PERFECT!"另一句口头禅,同样计数。
- TIMES YOU INTERRUPTED你在中途打断智能体的次数。
- RAGE TAX带脏话的提示词。
- NIGHT-OWL PROMPTS 00-05午夜到凌晨 5 点之间发出的提示词。
- BUSIEST DAY这段时间里最忙的一天。
- LONGEST STREAK连续使用的最长天数。
- LONGEST SESSION同一会话中没有超过 1 小时间隔的最长一段。
- PEAK HOUR一天中你最常工作的那个小时。
0 BYTES UPLOADED
你做了什么
会话数、你输入的提示词、智能体回复、工具调用(含最常用的 3 个工具)、编辑过的文件和模型请求数。
- SESSIONS
- PROMPTS YOU TYPED
- TOOL CALLS
- FILES EDITED
Token
输入、输出、缓存读取、缓存写入,以及合计。
- INPUT
- OUTPUT
- CACHE READ
- CACHE WRITE
按工具和模型
你用过的每个智能体,以及花费最多的 3 个模型,各自的 token 和费用。
- BY HARNESS
- BY MODEL (TOP 3)
账单
按 API 标价算出的小计,附价目表日期。加上 --plan,它会和你的订阅费对比。
- SUBTOTAL
- SUBSCRIPTION
- YOU SAVED
票头和票尾
日期、由统计数据哈希出的小票号,以及“收银员”:你花费最多的模型。底部是条形码和一句承诺。
- CASHIER
- 0 BYTES UPLOADED
- THANK YOU FOR VIBING
本地读取,本地打印
它读取你磁盘上的文件,写出一张 PNG。仅此而已。
没有网络代码
零运行时依赖。从不导入 http、https、net、tls 或 dgram,也从不调用 fetch。没有账号,什么都不上传。
只读
日志只以读取方式打开,OpenCode 数据库也以只读模式打开。它唯一写入的文件就是那张 PNG。
小票上没有隐私内容
提示词文本一读到就只剩时间戳和一个“是否骂人”的标记。MCP 和未知工具合并成一行,名字不会出现。项目名只有加上 --projects 才会显示。
自己验证
克隆仓库,对构建产物运行 grep。它什么都不会输出。
git clone https://github.com/glmn-ai/vibereceiptcd vibereceiptgrep -rnE "fetch\(|node:https?|node:net|node:tls|node:dgram|WebSocket" dist
dist/ 里仅有的网址都是纯文本:它打印的分享链接和两个价目表来源。每次 CI 运行都会重复这项检查。
精确到分,要么就不标价
解析器和定价来自 nsq 背后的引擎 @neurosquad/core。
- 01
API 标价,带日期
采用 Anthropic 和 OpenAI 公布的 API 价格。小票上印着价目表日期:
price table 2026-10-12。 - 02
每个请求只算一次
Claude Code 每个内容块写一行,恢复的会话还会复制旧消息。这些行按消息 id 合并。
- 03
每种 token 单独计价
未缓存输入、输出、缓存读取、5 分钟和 1 小时缓存写入、长上下文和快速模式,各有各的价格。
- 04
整数运算
整数 token、整数价格,费用以皮美元计。不用浮点数,只在显示时取整一次。
- 05
“无价格”,而不是 $0
本地模型或价目表里没有的模型不标价。小票会写明这涉及多少请求和 token,并用
*标出部分计价的行。
订阅怎么算
加上 --plan 后,这段时间里你用过的每个自然月都按一个月的订阅费计。小票会如实印出 YOU SAVED 或 YOU OVERPAID。
SUBSCRIPTION
4 mo x $200 (Jul-Oct 2026)
YOU SAVED
/ YOU OVERPAID
合计是同样的用量按 API 标价应付的金额。订阅不按 token 计费,所以这不是你实际付的钱。
选时间段,加上你的套餐
不加参数就统计全部时间,在终端里打印并保存为 PNG。
| 参数 | 作用 |
|---|---|
--since <when> | 时间段:30d、7d、4w、6m、1y,或 2026-09-01 这样的日期。默认是全部时间。 |
--month / --year | 本自然月,或本年。 |
--plan <plan> | 和订阅对比:pro、max5、max20、chatgpt-plus、chatgpt-pro,或任意月费,例如 49.99。 |
--short | 适合发帖的紧凑版小票,PNG 正好是 4:5。 |
--out <path> | PNG 保存位置。默认是 ./vibereceipt-YYYY-MM-DD.png。 |
--no-png | 只打印,不保存 PNG。 |
--json | 以 JSON 输出统计,金额精确到皮美元。除非加 --out,否则不保存 PNG。 |
--projects | 加上最常用的 3 个项目文件夹名(只有文件夹名)。默认关闭。 |
--demo | 用内置示例数据打印,顶部和底部都标有 DEMO。 |
三个智能体的日志,无需配置
它读取这些 CLI 本来就保存在磁盘上的内容,也包括子智能体的日志。
Claude Code
读取
~/.claude/projectsCodex CLI
读取
~/.codex/sessionsOpenCode
读取
~/.local/share/opencode/opencode.db需要 Node 18.17 或更高版本。读取 OpenCode 的 SQLite 历史需要 Node 22.13+;更旧的版本会跳过 OpenCode 并给出提示。
想支持别的智能体?解析器来自 @neurosquad/core,它已经能读取更多。提个 issue。