FantasyStarry/dsh-token-stats ↗★ 1
dsh-token-stats
按自然日统计 LLM token 用量(按提供商/模型/会话,含子代理对账):悬浮用量宠物(史莱姆,Codex 桌宠式打磨:情绪弹入过渡/待机浮动/眼睛左顾右盼/工作光标与加载点/晕眩轨道星/双击逗宠物爱心/面板情绪行)+ 设置页"用量统计"分区(提供商汇总 chips/零值日基线圆点/加载 shimmer/可折叠 30 天视图/窄屏零溢出)+ 插件配置表单 + /usage 命令
安装
此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗
说明文档
阅读完整 README ↗dsh-token-stats
按自然日统计 DeepSeek Harness(DSH)Web 的 LLM token 用量,按提供商 / 模型拆分, 持久化到磁盘,并在 Web GUI 的多个位置展示。
功能
- 统计口径:每次成功的模型调用计一次(来自会话事件
assistant/message的usage与message.source.{provider,model},与 token-meter 同源)。 失败回合、被重试的尝试不计入。inputTokens(未缓存输入)、outputTokens、cacheReadTokens(缓存读)、cacheWriteTokens(缓存写)、reasoningTokens(推理)- 计费输入 ≈
inputTokens + cacheReadTokens + cacheWriteTokens
- 按自然日(服务器本地时区
YYYY-MM-DD)聚合,历史保留 366 天(可配)。 - 启动重建(v0.1.1):每次加载插件时把"今天"的统计从会话日志整体重算
(
$DSH_HOME/sessions下今天有写入的 zstd/jsonl 日志,完整解码全部 zstd 帧), 再叠加实时订阅的新事件。插件无论何时安装/重启/热重载,今天的数据都以日志为准, 不漏计、不重复计数。 - 四处展示(v0.2.0 起,数字用 k/m/b 缩写):
- 悬浮用量宠物(v0.6.0 / v0.7.0 / v0.8.0 / v0.9.0 打磨)(
shell.overlay):右下角一只圆滚滚的史莱姆 (纯 CSS/SVG 绘制,无图片资源)。v0.8.0 参考 Codex 桌宠(Boba / Desk Otter)设计语言: 角色描边 + 底部暗影 + 地面阴影落地、尺寸加大(64px)、hover 探头、双击逗宠物 (4 颗爱心依次飘起,最大一颗最后飞出 + 蹦跳 + 开心脸)。v0.9.0 赋予生命力: 情绪切换 180ms 弹入过渡、待机身体浮动 + 眼睛左顾右盼、工作态屏幕光标闪烁 + 加载点、晕眩双星对称环绕 + 身体摇摆;面板头部显示当前状态行(工作中/忙到冒汗/ 转圈圈/打瞌睡/休息中/干完活啦,彩色圆点)。情绪 = 实时工作状态 + 今日用量:- 工作中(v0.7.0):服务端把
activity(上次活动时刻 + 最近完成列表) 附带进/token-stats/summary,客户端 2.5s 轮询;只要任何会话在活动 (turn/start、tool/call、assistant/chunk等事件都会刷新活动时刻), 宠物就"专注盯小电脑"(表情 + 打字颠簸 + 白屏小电脑蓝色进度条动画 + 右上角脉冲点动画 + 扩散光环动画),悬停气泡显示「正在干活…」; - 空闲:
0 请求 → 打瞌睡、轻用量 → 休息眯眼、**开发迭代注意**:本机 profile 的nodeLinker: hoisted(pnpm v11)会把file:`
- 工作中(v0.7.0):服务端把
- 悬浮用量宠物(v0.6.0 / v0.7.0 / v0.8.0 / v0.9.0 打磨)(
依赖拷贝进
node_modules,并非符号链接。改代码后需要重新dsh plugin --profile web add "file:..."或手动把lib/同步到node_modules/dsh-token-stats/lib/:客户端 bundle(client.js)是每次请求实时 读文件的,同步后刷新浏览器即生效;服务端(index.js)需要重启 dsh web。
升级插件:改代码 → 提交推送 → 打新标签(如 v0.2.0)→
dsh plugin --profile web add "github:FantasyStarry/dsh-token-stats#v0.4.0" → 重启 dsh web。
:DSH 会话日志()是 ——每批事件追加一个独立压缩帧。v0.1.0 的回填用 解整个文件只能得到第一帧(通常是 session 头),导致启动回填 实际读到 0 条 usage:插件加载之前发生的调用全部漏计(实测漏掉约 3/4 的用量)。 v0.1.1 改为按帧完整解码 + 每次加载重建今天,数据与日志完全一致。