7 月 15 日,我拿到朋友写的 Codex 用量查询软件。它能把账户额度、每日 Token 和模型占比放进一张小卡片,在我的电脑上却一直读不到数据。朋友走官方账户链路,我平时用第三方 API,两边的用量来源对不上。
我起初只想让它接上自己用的 API,能正常显示就好。接口接通以后,又陆续重做了数据解析、Windows 界面和背景处理,连文字放在哪儿才能看清,也重新调了一遍。

先把用量读出来
原程序按 Codex 官方账户的认证方式取数。本机只有 API Key、没有账户 access token 时,就读不到官方订阅接口的 5 小时和 7 天额度。我的环境还用了自己的 provider 和 base URL,所以得先读懂本地配置,再访问兼容的 /usage?days=31 接口。
程序会读取当前 provider,再取第三方 API 返回的逐日 Token 和限额。接口没给的数据,卡片就显示“无数据”,不拿别的数字凑上。官方账户的 5h / 7d 配额也保留着,虽然我自己用不到。
三路数据,汇入一张卡片
- 01官方账户 API
- 02第三方 Usage API
- 03本机 rollout 日志
- 04统一用量视图
API 给不了的,从本机 Codex 日志里找
第三方接口能查每天用了多少 Token,却未必有每次任务的模型和推理强度。我把这部分改成扫描本机 Codex 的 rollout 日志,读取 model、reasoning effort 和 Token 增量,按 low、mid、high、xhigh、max、ultra 分开统计。
这样才看得出同一个模型的用量究竟花在哪种强度上。统计时还有个容易踩的坑:fork 和 subagent 会在开头重复写入一些事件,必须排除;累计总量也得先换算成增量,否则同一笔消耗会被算好几遍。
- 账户 API 负责官方额度与重置时间;
- 第三方 usage 接口负责逐日 Token;
- 本地 session 日志负责模型与推理强度;
- 某条链路缺失时,其余区域仍能继续显示。
做成 Windows 托盘卡片
界面最后用 C#、WinUI 3 和 Windows App SDK 重写了,没有套 Electron 或网页壳。卡片是 320 × 200 DIP,平时收在通知区域,点托盘图标才展开。按 F5、用托盘菜单,或等每 5 分钟的自动刷新,都能在原窗口里更新数据。
左上角的 Codex 被我换成了 Series_apple。官方用户需要的额度、重置胶囊和最多五行模型列表仍然保留。最后打了 x64 自包含安装包,普通 Windows 电脑不装 Visual Studio、.NET SDK,也不开 Developer Mode,就能安装。
换背景以后,人物和文字怎么放
允许换背景以后,麻烦才多起来。竖图塞进横卡片,人物经常被切掉,所以导入时加了可拖动的 8:5 裁切预览,导入后也能重新调位置。图片会保存下来,删掉原图也不影响卡片背景。
图片在本机离线生成动漫人物 mask,人物保留清晰,周围适当柔化。程序再看局部亮度和特征色,给标题、Token、模型标签和热力图选颜色。日文图片名用了合适的字体,尽量完整显示,不再被截成半个名字。这些处理都在本机完成,不用上传背景图。
换一张图再试
几乎每调一版,就会冒出一个问题。人物跟着背景一起糊了,文字太淡,图片名黑得突兀;有时热力图和模型区挤得太高,长标题显示不全,描边又太重。同一层遮罩,在暗图上发白,换张亮图反倒发黑。
朋友给的效果图提醒了我:只对着眼前这张图调颜色和坐标,换图就会出问题。后来改成随位置连续调整明暗,让左侧、顶部和边缘留出文字需要的对比,人物焦点尽量保持亮度与清晰度。文字用不透明的暖白色加一点阴影,热力图和模型标签沿用从图片提取的低饱和色。暗图、浅图、颜色复杂的图,都得拿来试。
零用量的格子要一样
热力图还有个问题。我只用了三天,前面明明没有用量的格子,却随着位置和背景变出不同颜色,看着像那些天也用过。
我把颜色和位置的关系去掉了。空白日期与 Token 为 0 的日期统一用中性色,非零用量沿同一个图片特征色分成四档,不再混入人物遮罩或底图颜色。逐个检查像素后,前 29 个零用量格子的中心颜色完全一致,最近三天才有不同亮度。
工具真正变成“自己的”,不是把名字换掉,而是让它理解我的数据、我的环境和我看待信息的方式。
从朋友的卡片,到我的日常仪表
最开始只是想弄明白朋友的软件为什么在我这里不能用。后来接口通了,我又会在意强度有没有算对,零用量的格子有没有误导人,人物是不是被挡住,换张图以后文字还能不能看清。
7 月 15 日,这张读取账户接口、本机日志和个人背景的 Windows 卡片总算做完了。朋友的想法还在,只是按我的数据来源和使用习惯,改成了现在这个版本。
10 月更新:改名 Albireo / 双星
上面记录的是 7 月 15 日的版本。之后这张卡片继续更新,到 1.4.8 已改名为 Albireo / 双星,作品集序号 II,接续 Astralyn / 星律。辇道增七(Albireo)是一蓝一金的双星,对应卡片上 Codex 偏蓝、Claude 偏暖的两种身份色。只改了显示名称,程序文件和数据目录仍叫 Codex Usage。
- 1.4.0 加入 Claude Code 用量:卡片分为“合计 / Codex / Claude”三页,用滚轮、方向键或页码点切换;Claude 的 5 小时和每周配额来自 Claude Code 登录,过期前自动续期。
- 取色改为从背景里提取 OKLCH 角色色,Codex 和 Claude 各取最接近自己身份色的真实颜色。
- 背景处理会识别人脸和人物:人物保持清晰,文字压到脸上时自动淡化;1.4.4 加入悬停阅读模式,指针停在卡片上时背景磨砂,文字不再淡化。
- 翻页、进度条生长和热力格弹出都改用 Composition 动画,遵循 Windows 的“动画效果”设置。
- 1.4.5 重做背景图库:可以裁切、重命名、重新识别,预览就是真卡片,切换背景时交叉淡入。
- 1.4.6 改名并精简卡片文案;1.4.7 起模型名带版本号;1.4.8 按 OpenAI 官方价格表补上 gpt-6-sol、gpt-6.1-sol 和 gpt-6-luna 的 API 价格。
技术上换到 .NET 10 与 Windows App SDK 1.8。人脸检测和人物分割使用本地 ONNX Runtime 模型与 Windows FaceDetector,全部在本机完成,不上传图片。
