按请求持久化模型 token 用量,Web 设置「Token 用量」统计页:按日趋势图、按模型明细表、日期/模型筛选。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:LaoYueHanNi/dsh-token-usage
GitHub 来源的插件在安装时会在你的机器上执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README

简体中文 | English
一个 dsh 用量插件:在 Web 界面直接展示模型 token 用量。安装后打开设置(侧栏底部齿轮),即可看到「Token 用量」页 —— 汇总卡片、按日总 token 折线图、按模型明细表,支持按日期区间和模型筛选,效果见上图。
仓库:https://github.com/LaoYueHanNi/dsh-token-usage
功能
- 实时记录:每次成功的模型请求追加一行到按天分片的 JSONL 文件(请求 id、模型、输入 / 输出 / 缓存读 / 缓存写 token、时间、会话 id)。
- Web 统计页:过滤条(日期区间 + 模型下拉 +
1d/7d/30d快捷区间)、汇总卡片、按日趋势图、按模型明细表。 - 费用统计与模型定价:按模型单价(¥/百万 token)实时计算费用 —— 汇总卡醒目展示总费用,按模型表每行带费用列与单价小字,未定价模型高亮提示(费用按 ¥0 计)。定价表由你维护在数据目录的
pricing.json,/token-usage-pricing命令可随时查看当前生效的定价。 - 历史补齐:首次启动自动同步安装前已发生的请求;
/token-usage-sync命令可随时手动补写(幂等)。
模型定价
费用 = 各 token 桶 × 对应单价 ÷ 100 万。单价在数据目录的 pricing.json 中维护(默认无定价,全部按未定价处理),格式如下:
{
"deepseek-chat": { "inputPerMillion": 2, "outputPerMillion": 8, "cacheReadPerMillion": 0.5 },
"deepseek-reasoner": { "inputPerMillion": 4, "outputPerMillion": 16, "cacheReadPerMillion": 1 }
}
- 键为模型 id(与记录中的
model完全一致),值为每百万 token 单价(¥)。 inputPerMillion、outputPerMillion必填;cacheReadPerMillion(缓存命中)、cacheWritePerMillion(缓存写入)可选,缺省时按输入单价计费。- 文件损坏或条目非法时对应模型按未定价处理,不影响统计页;保存后刷新页面或重跑命令即可生效。
- 默认数据目录:
~/.dsh/token-usage/pricing.json(配置了path时以该目录为准)。
安装
从 GitHub 安装(推荐)
dsh plugin --profile web add github:LaoYueHanNi/dsh-token-usage
包声明了
dsh.bundle,add会自动把插件挂进 profile 的层栈,无需手动改配置。构建产物lib/随仓库提交(没有prepare脚本),git 安装开箱即用,无需任何构建白名单配置。首次启动自动补齐一次历史记录,之后纯实时记录。
从本地目录安装(开发调试用)
dsh plugin --profile web add link:D:/plugins/dsh-token-usage
link: 安装的是符号链接:重新构建插件后重启 dsh web 即可生效。
更新
dsh plugin --profile web update dsh-token-usage
移除
dsh plugin --profile web remove dsh-token-usage
插件会从 profile 移除并停止加载。数据文件($DSH_HOME/token-usage/)会保留,需要时手动删除。
开发
先构建一次插件:
npm install
npm run build && npm run build:client
刻意不设
prepare脚本。 编译产物lib/已提交进仓库。pnpm ≥ 10 默认拒绝执行 git-hosted 依赖的构建脚本,除非加入白名单(报错ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED),因此若保留prepare,每个用户用github:安装都会失败。改为随仓库分发预构建产物后,dsh plugin add github:LaoYueHanNi/dsh-token-usage才能零配置开箱即用。改动src/下的任何文件后,务必重新构建并提交更新后的lib/,否则别人安装到的是旧产物:
npm run build && npm run build:client
git add lib/
临时挂载 —— 仅当次启动生效,不动 profile,cordis.yml 指向构建产物 lib/index.js:
dsh web --patch <插件目录>/cordis.yml
此模式只挂载 host 半边(数据记录与命令照常工作);统计页依赖按包名解析的客户端 bundle,因此开发 UI 请用上面的 link: 安装方式:执行 npm run build && npm run build:client(或在插件目录跑 npx tsdown --watch)并重启 dsh web 后,浏览器端插件会自动热重载。
链接
同类插件
zhu1090093659/dsh-web-ui★ 1766
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 829
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 705
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
huiliyi37/dsh-tianshu-tui★ 131
DeepSeek Harness 的终端 UI(TUI)。
omdsh-dev/dsh-at-file★ 117
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
Nagi-ovo/dsh-visualize★ 79
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。