DSH小鲸鱼挂件如何统计Codex CLI消耗:本地会话记账的完整实现解析

发布时间:2026/9/29 5:16:23
DSH小鲸鱼挂件如何统计Codex CLI消耗:本地会话记账的完整实现解析 DSH小鲸鱼挂件如何统计Codex CLI消耗本地会话记账的完整实现解析【免费下载链接】DeepSeek-Balance-Whale-WidgetDeepSeek HarnessDSH一只住在 DSH 界面右下角的小鲸鱼娘帮你盯着DeepSeek账户余额。QQ弹弹支持拖拽吸附、左吸附翻转、数字滚动动画随界面自动启用建议直接喊来你的dsh安装项目地址: https://gitcode.com/gh_mirrors/de/DeepSeek-Balance-Whale-WidgetDSH 小鲸鱼记账挂件DeepSeek Balance Whale Widget简称 DSHW是 DeepSeek HarnessDSHWeb 界面右下角的常驻挂件帮你看余额、今日已用和每轮消耗。它还有一个隐藏能力统计 Codex CLI 消耗——直接读取本机 Codex 会话日志做本地会话记账不联网、不需要任何密钥连你没在 DSH 里跑的 Codex 消耗都能算出来。为什么它能看见Codex CLI 的消耗先明确一个容易误解的点这个挂件不是装进 Codex 里的插件它是 DSH Web 插件而是把 Codex 当作数据来源。原理一句话Codex CLI 每次会话都会在本机留下明文日志小鲸鱼只需要读文件就能算出 token 用量。数据源$CODEX_HOME/sessions/YYYY/MM/DD/rollout-*.jsonl含archived_sessions/归档目录纯文本 JSONL 格式零侵入只读本机文件、不联网、不需要密钥也不会写入~/.codex目录不能装进 Codex挂件本体仍运行在 DSH Web 里Codex 仅作为被读取的数据源详见 README.md 的「Codex 模式」一节对应的模板定义在 lib/index.jskind: codex的模板刻意留空了余额接口与凭据名——因为根本用不到。日志里读什么三类关键事件每个rollout-*.jsonl文件的每一行是一条{ type, timestamp, ordinal, payload }事件。小鲸鱼只关心三种信息解析逻辑见 lib/index.js 的parseCodexFileText日志事件用途turn_context→payload.model模型归属判定这一轮用的是哪个模型如gpt-5-codex按天 模型聚合event_msgtypetoken_count→info.total_token_usage累计 token 量单调递增统计的主依据同一事件里的info.last_token_usage本轮拆分input / 缓存命中 / 输出 / 推理 token 的占比来源防重复计数的关键用累计量差值而不是逐条累加这是整个记账实现里最精妙的一步。同一个会话轮次日志里可能出现多条token_count事件——如果逐条累加消耗会被重复计算。小鲸鱼的做法是差值法lib/index.js记录上一条事件的total_token_usage累计量本次增量 本次累计 − 上次累计累计量天然单调递增同轮多条记录只会把差值摊薄到正确的总量上天然免疫重复计数若累计量缺失total_tokens为 0则退回使用last_token_usage增量再按last_token_usage的比例缩放拆成输入 / 缓存 / 输出 / 推理四项分别入账——这就是统计口径优先累计、拆分靠比例的含义。性能护栏会话攒多了也不会卡死页面老用户可能记得早期版本的教训会话日志越攒越多后同步全量扫描会冻结 DSH 的事件循环几分钟。现在的实现有三条护栏lib/index.js增量缓存统计结果缓存在$DSH_HOME/.dshw-codex.json只记录各文件的聚合结果与size/mtime——文件没变就直接复用绝不重读✂️单文件上限超过 32 MB 的超大日志直接跳过并计入skipped界面会提示已跳过 N 个超大日志️单轮预算一轮扫描最多读 400 个文件 / 96 MB读不完就标记deferred稍后补扫全程异步、每个文件处理完都让出一次事件循环。快照 60 秒过期一次后台每 5 分钟静默刷新任何调用方都不会触发阻塞式扫描。统计结果在挂件上怎么显示添加 Codex 模型后你会看到这些地方动起来前端渲染逻辑在 assets/whale-widget.js模型列表行Codex 今日 x · 近7天 y tokens有跳过/待补扫时附带状态提示模型子菜单今日 / 本月 / 累计 / 近 7 天以及会话文件数「测试」按钮直接返回本地统计不发起任何网络请求额度联动该模型的额度「已用来源」可选Codex 本地会话 token——不重置累计−基准、每日今日、每月本月复用同一套额度展示与泡泡模块订阅窗口5h / 周日志里若带有rate_limits快照ChatGPT 订阅才有API-key 计费为 null子菜单会追加5h 已用 x% · N小时后重置 | 周 已用 y% · N天后重置字段名做了多候选容错三步启用 Codex CLI 消耗统计添加模型菜单 → 资源管理 → 小鲸鱼记账 → 模型 → 添加厂商选Codex本地会话模板。它无需填任何密钥与接口检查开关Codex 模型的子菜单里有「读取~/.codex/sessions」复选框。没添加过 Codex 模型时本机统计默认关闭完全不去读目录添加后默认开启会话日志特别大的机器可以手动关掉配置额度口径可选在额度设置里把「已用来源」切成Codex 本地会话 token再选重置周期不重置 / 每日 / 每月即可。模型注册表落在$DSH_HOME/.dshw-api.json不含密钥统计缓存落在$DSH_HOME/.dshw-codex.json不含任何凭据记账内核的金额运算则统一由 lib/accounting.mjs 处理。小结与限制这套实现的核心思路值得借鉴把查账单变成读日志——Codex CLI 的消耗不需要厂商接口配合本机日志里已经写好了全部答案再用累计差值防重复、增量缓存保性能。两点限制要知道Codex 适配目前只是部分接口日志的适配不同版本日志字段有差异时靠多候选键容错日志里只有token 没有金额费用需要结合余额观测或订阅额度口径来看。遇到统计异常比如订阅窗口不显示欢迎反馈给项目维护者——这也是 README 里明确写出的已知边界。【免费下载链接】DeepSeek-Balance-Whale-WidgetDeepSeek HarnessDSH一只住在 DSH 界面右下角的小鲸鱼娘帮你盯着DeepSeek账户余额。QQ弹弹支持拖拽吸附、左吸附翻转、数字滚动动画随界面自动启用建议直接喊来你的dsh安装项目地址: https://gitcode.com/gh_mirrors/de/DeepSeek-Balance-Whale-Widget创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考