DSH Token 用量统计插件 - 今日 Token 用量按模型分桶、缓存命中率、7 日趋势图、可选顶栏徽标、持久化存储自动清理。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-token-usage-xc
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:xchannel1987/dsh-token-usage-xc
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH Token 用量统计插件 —— 实时追踪今日与最近 7 日 Token 消耗,按模型分桶展示,提供缓存命中率分析和趋势图表。
DSH 0.1.7 兼容(
>=0.1.7-rc.1):设置命名空间已按 0.1.7 机制适配(宿主导出Config
- volatile 字段),设置入口位于「设置」页的对应分区。
✨ 核心特性
📊 今日 Token 用量
在设置页新增「今日 Token 用量」分区,实时展示:
- 按模型统计:输入/输出/缓存读/缓存写 Token 数
- 缓存命中率:
cacheRead / (uncachedInput + cacheRead) × 100% - 请求次数:每个模型的 API 调用次数
- 当日总计:所有模型的汇总数据
📈 7 日趋势图
- 堆叠柱状图:按模型分色的 7 日用量趋势
- 日期切换:查看任意历史日期数据
- 模型筛选:可选择显示特定模型
🔔 顶栏徽标(可选)
- 实时显示:会话顶栏显示今日总 Token
- 点击展开:点击徽标查看明细
- 紧凑格式:K/M/B 简化显示,悬停查看精确值
- 移动端排布(≤1023px):顶栏一行依次为 汉堡 │ PTC 模式 │ 剩余表计 │ 用量徽标 │ 后台任务,徽标位于倒数第二、jobs 最右,与抽屉图标同一水平互不遮挡;≤380px 自动换行并保持视觉顺序
- 移动端紧凑:隐藏「tok」后缀并收紧内边距,保证 390px 宽度下一行完整显示
💾 数据持久化
- 按天落盘:
~/.dsh/storages/dsh-token-usage-xc/<YYYY-MM-DD>.json - 重启不丢:重启后数据自动恢复
- 自动清理:7 天自动清理旧数据
- 启动回填:回填今天早于插件加载的用量
🔧 数据来源
| 来源 | 说明 |
|---|---|
| session/event | 监听 assistant/message 事件的 usage 字段 |
| 模型归属 | 直接读取事件的 message.source.model |
| 会话水位 | 按 seq 去重,避免重复计数 |
为什么不自己解析 session.jsonl.zstd?
该文件是多 zstd 帧拼接,需要像持久化后端那样扫描帧边界逐帧解码。插件统一走sessionQuery,避免重复实现这套复杂逻辑。
📦 安装
# 使用 DSH CLI
dsh plugin --profile web add dsh-token-usage-xc
# 或使用 npm
npm install dsh-token-usage-xc
安装后重启 DSH,在设置页可看到新增的「今日 Token 用量」分区。
⚙️ 配置
| 选项 | 默认值 | 说明 |
|---|---|---|
| enabled | true | 启用统计 |
| refreshIntervalSec | 60 | 前端刷新间隔(10-3600秒) |
| backfill | true | 启动时回填今日用量 |
| headerBadge | false | 会话顶栏显示总 Token 徽标 |
🎮 使用
查看今日用量
- 打开 DSH 设置
- 找到「今日 Token 用量」分区
- 查看按模型分桶的明细数据
查看 7 日趋势
- 在用量面板点击「趋势」标签
- 查看堆叠柱状图
- 点击日期查看详情
启用顶栏徽标
- 在设置中打开「会话顶栏显示今日总 Token」
- 会话页顶栏将显示今日总量
- 点击徽标可快速查看明细
🔌 数据接口
提供 RPC 接口供其他插件调用:
// rpc.call("/api", "dsh-token-usage-xc/today", {}) → 物理路由 POST /api/dsh-token-usage-xc/today
// (0.2.24 起首选;dsh <0.1.5 或宿主带 profile 补丁时旧通道 rpc.call("/dsh-token-usage-xc","today") 亦在)
{
available: boolean;
date: string; // 'YYYY-MM-DD'
totalTokens: number;
requests: number;
models: {
model: string;
modelName: string | null;
provider: string;
uncachedInputTokens: number;
outputTokens: number;
cacheReadTokens: number;
cacheWriteTokens: number;
totalTokens: number;
requests: number;
}[];
}
// rpc.call("/api", "dsh-token-usage-xc/last7days", {})
// 返回最近 7 日的汇总数据
📐 统计口径
- 总 Token = uncachedInput + cacheRead + cacheWrite + output
- 缓存命中率 = cacheRead / (uncachedInput + cacheRead) × 100%
- 仅计最终 usage:每个 assistant/message 恰好一条,天然无重复
- 按事件时间归档:根据 event.time 归到 YYYY-MM-DD
📄 许可证
🔗 链接
链接
同类插件
bowenliang123/dsh-context★ 2079
DSH 上下文洞察面板:Context 仪表盘 + /context命令 + Context 浏览器,查看 Context的分类组成、内容详情、演进趋势、压缩/注入事件、统计等一站式 Context 全生命周期管理。
Han-1413141/dsh-cost-meter★ 408
会话与当日 API 费用统计、预算图框(已用%)、官方余额、历史看板,支持峰谷计价与官方价格一键同步。
wssfk12138/dsh-damage-pulse★ 263
在 DSH Web 界面追踪 DeepSeek Token 用量、单次与会话费用及账户余额,并显示缓存感知的扣费动画。
zh667/TokenLedger★ 202
侧边栏用量面板:把 Token 归属到实际服务该请求的中转站,站点从已有的 provider 配置中读出,无需额外配置;含今日/本月/累计三窗口、按站点与模型下钻、一年活跃度热力图,以及 New API / Sub2API / DeepSeek 余额。
Ychris12138/dsh-usage-stats★ 172
多供应商用量看板:按供应商/模型统计 Token 与日期下钻,统一展示账户余额,并追踪 OpenCode Go / Z.ai 订阅额度。
PolinniZhong/dsh-personal-center★ 118
DeepSeek Harness 个人中心:跨会话用量统计、按模型成本估算、全局自定义指令、外观全局字号、数据驱动的桌面宠物(位图/矢量皮肤)与会话状态概览,纯本地离线运行。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。