设置页用量仪表盘:按服务商/模型汇总全部会话 token 用量,含今日/近 7 天/近 30 天趋势柱状图与缓存命中率。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:V-dev-388/dsh-usage-meter
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH(DeepSeek Harness)模型用量仪表盘插件。在设置页新增「用量」板块,按服务商/模型汇总全部会话的 token 用量,支持今日 / 近 7 天 / 近 30 天三档时间范围趋势图。
- 零运行时依赖:Host 端只用 Cordis 上下文服务(sessions / shell / webServer),不 import 任何包
- 图表纯 CSS 柱状条,不引第三方库
- 数据落盘
$DSH_HOME/storages/usage-meter.json,原子写(tmp + rename) - 完全被动:只在本机监听会话事件,不联网、无遥测
功能
- 汇总卡:请求数 / 总 Token / 缓存命中率 / 输入 / 输出 / 缓存读取
- 时间范围:今日(24 根小时柱)/ 近 7 天 / 近 30 天(按天柱),本地时区切日
- 服务商表、模型表:请求数、输入、输出、缓存读取、总 Token
- 60s 自动轮询 + 手动刷新
- 全部会话都计入(含子 agent 会话)
数据口径
- 只统计
assistant/message且带usage的事件(失败请求无 message,不计) - 归属取
data.message.source.provider / model - 缓存命中率 =
cacheRead ÷ (input + cacheRead) - 不做费用估算,不做逐请求日志表
安装(dsh web profile)
方式一:dsh plugin add(推荐)
插件已发布到 npm,并声明 dsh.bundle manifest(dsh plugin add 安装后自动加入 profile 层栈):
dsh plugin --profile web add dsh-usage-meter
方式二:手动拷贝(照 khazix-skills 的静态插件安装范式)
# 1. 把包放进 profile 的 node_modules
mkdir -p ~/.dsh/profiles/web/node_modules/dsh-usage-meter
cp -R lib package.json dsh.plugin.json ~/.dsh/profiles/web/node_modules/dsh-usage-meter/
# 2. 在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:
# - insert:
# - id: dsh-usage-meter
# name: dsh-usage-meter
安装后重启 dsh web(或刷新页面加载 client bundle),打开 设置 → 用量 即可查看。
HTTP 接口
| 接口 | 说明 |
|---|---|
GET /dsh-usage-meter/summary?range=today|7d|30d |
汇总 + byProvider + byModel + series(今日按小时、其余按天),全部按 range 过滤 |
GET /dsh-usage-meter/sessions |
每会话对账数据 [{sessionId, watermark, requests, totalTokens, provider, model}] |
summary 返回字段:
{
"updatedAt": "2026-08-15T01:06:33.031Z",
"range": "today",
"requests": 36, "inputTokens": 19049, "outputTokens": 42036,
"cacheReadTokens": 4378368, "cacheWriteTokens": 0,
"totalTokens": 4439453, "cacheHitRate": 0.995668,
"byProvider": [{ "provider": "opencode-go", "requests": 36, /* ... */ }],
"byModel": [{ "provider": "opencode-go", "model": "deepseek-v4-flash", "requests": 36, /* ... */ }],
"series": [{ "label": "08:00", "requests": 28, "totalTokens": 3240870, "cacheReadTokens": 3199360 }]
}
数据存储与幂等
- 启动回填:遍历
$DSH_HOME/sessions/*/*/session.jsonl.zstd(跳过活会话),unzstd解压折 JSONL;活会话折内存session.events全量 +session/event事件增量 - 每会话存 watermark(已折最后 seq),重复回放不重复计数;会话日志变短(文件最后 seq < watermark)则清空该会话重折
- 变更 debounce 2s 后原子写
usage-meter.json
开发
node test/verify.mjs # 自包含合成测试:口径 / 幂等 / 文件变短 / summary 自洽
License
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2078
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 962
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 834
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 147
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 139
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 86
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。