licyer/dsh-token-monitor 预览 preview

licyer/dsh-token-monitor

插件Plugin 原生Native ⭐ 3 MIT 其他Other

DeepSeek Harness(DSH)Web 界面的大模型余量与用量监控插件:会话头部实时余量徽标 + 主区"用量"页签,本地 SQLite 记录每次调用的 token 与费用。

catalog 简介 / catalog descriptioncatalog description:DSH Web 模型余量与用量监控插件

项目介绍Project Overview

dsh-token-monitor 是 DSH Web 端的余量与用量监控插件,在会话头部显示供应商余量徽标,并提供用量页签,用本地 SQLite 记录每次调用的 token、费用与请求明细,支持趋势、排行、热力图、历史导入和跨设备 JSON 快照合并。需要在 DSH Web 端查看模型额度、消耗或同步多设备记录时使用。注意:需 Node.js ≥22,仅支持 Web 端,费用为估算且部分供应商未用真实 key 验证。

dsh-token-monitor is a DSH Web plugin for quota and usage monitoring. It adds a provider quota badge in the chat header and a Usage tab, storing each call’s tokens, estimated cost, and request details in local SQLite. It supports trends, rankings, heatmaps, history import, and idempotent cross-device JSON snapshot merging. Use it to track model allowances, consumption, or merge records across devices. Caveat: requires Node.js ≥22, supports only the Web profile, costs are estimates, and some providers lack real-key validation.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add dsh-token-monitor

licyer/dsh-token-monitor 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-token-monitor

DeepSeek Harness(DSH)Web 界面的大模型余量与用量监控插件:会话头部实时余量徽标 + 主区"用量"页签,本地 SQLite 记录每次调用的 token 与费用。

release npm version license node

功能 · 安装 · 供应商适配 · 常见问题 · 架构 · 开发

[!NOTE] 需要 Node.js ≥ 22(依赖内置 node:sqlite)。仅支持 DSH Web 端(platform: web)。

用量页签总览

功能

能力 说明
余量徽标 会话头部显示当前模型供应商余量(k3 · 5h 剩 82%),点击弹详情层
用量页签 与"对话 / 轨迹"并列:token 用量、估算费用、趋势、排行、请求明细
自动采集 字节级增量采集 DSH 会话日志(zstd 分帧),后台定时 + 手动触发
历史导入 可导入 cc-switch 历史记录,重复导入不产生重复数据
跨设备同步 DSH 用量支持导出/导入 JSON 快照(明细 + 聚合),不同设备记录合并到一台设备,幂等不重复
语言跟随 界面文案跟随 DSH 中文 / 英文切换

安装

从 npm(推荐)

dsh plugin --profile web add dsh-token-monitor

从 GitHub

dsh plugin --profile web add github:licyer/dsh-token-monitor

然后在 ~/.dsh/profiles/web/cordis.patch.yml 顶层数组追加:

- insert:
    - id: token-monitor
      name: dsh-token-monitor

重启 dsh web 生效。

余量监控

徽标显示当前模型供应商的余量:订阅制供应商(如 Kimi For Coding)显示滚动窗口与周额度百分比;按量付费供应商(如 DeepSeek 官方)显示账户余额。

点击徽标弹出详情层:当前提供方指标、本会话 token 用量(可切换会话)、全部提供方折叠区、cc-switch 数据同步提示条、更新时间与刷新。

余量详情弹层

用量页签

顶部筛选(客户端 / 供应商 / 模型级联,供应商按厂商归并)+ 时间窗(当天 / 昨天 / 7 / 30 / 90 天 / 全部),统计卡显示总消耗、请求次数、预估费用、平均 TTFT、新增输入、缓存命中、输出、缓存命中率。

  • 使用趋势:渐变面积图,左轴 token 构成,右轴切换预估费用 / 请求次数;当天为分钟级刻度(2~60 分钟自适应 ≥12 桶,补桶不跨天),悬浮提示显示桶区间(如 15:00~15:30

使用趋势

  • 供应商消耗统计:X 轴供应商、柱内按模型堆叠,右柱费用 / 次数可切换

供应商消耗统计

  • 年度消耗热力图:GitHub 日历风,近 12 个整月,色深 = 当日 token,首尾按周补齐

年度消耗热力图

  • 使用排行:模型 / 供应商 / 客户端三维度聚合,默认按总消耗降序

使用排行

  • 请求记录:分页明细表(时间倒序),页码跳转、每页条数可调(10/20/50/100)

请求记录

  • 会话聚焦:弹层"用量详情"→ 聚焦该会话,横幅可取消

跨设备同步(DSH 用量导入/导出)

用量页签底部数据来源卡片的 DSH 行提供「导出 / 导入」按钮,把不同设备的使用记录合并到一台设备:

  • 导出:下载本机 DSH 用量的 JSON 快照(明细 + 按天聚合),文件名带本地时间戳(如 token-monitor-dsh-export-20260820-153000.json);
  • 导入:选择另一台设备导出的文件,幂等合并——明细按 record_id 主键去重(record_id = 会话 UUID + 日志序号,跨设备天然不冲突),聚合行覆盖 upsert,重复导入同文件无副作用;
  • 导入成功后页面静默重载,趋势 / 排行 / 年度热力 / 请求记录立即反映合并后的数据。

插件配置

配置文件:$DSH_HOME/storages/token-monitor/config.json(Windows 默认 C:\Users\<你>\.dsh\storages\token-monitor\config.json)。

设置入口:DSH 设置面板(左下角齿轮)→ Token Monitor 页,表单保存后即时写回该文件。三个设置项:默认时间窗 / 余量轮询间隔(秒)/ 请求记录保留时间(天);下方另附已适配供应商清单(哪些提供方已适配、开发者是否用真实凭证验证过)。

字段 默认值 含义
defaultDays 1 用量页签默认时间窗天数;0 = 全部
pollMs 60 头部余量轮询间隔(单位秒,586400)。设置页与 config.json 均存秒,需要毫秒时由前端单独 ×1000
retentionDays 60 请求记录保留天数(超过此时长的记录会被定期清理,不影响聚合统计;设置页提供 30/60/90)

行为约定:

  • 文件不存在时插件自动创建一份默认值文件(纯 JSON),无需手动建;
  • 已有文件绝不覆盖(含格式调整后缺新字段时,缺的字段回落默认值);
  • 文件损坏(非法 JSON)时用默认值运行,且不覆盖坏文件,仅记录警告;
  • 设置页保存(POST /token-monitor/config)是唯一写入路径:合并更新已知字段,用户手加的未知键原样保留;非法值回落默认;保存前校验,空对象/非法 JSON 返回 400。

供应商适配

提供方 类型 适配说明 验证状态
Kimi For Coding(kimi-coding 订阅额度 5h / 7d / 权益等级(百分比与重置倒计时) ✅ 已验证
Moonshot AI(CN)(moonshotai-cn 按量余额 可用余额(CNY)+ 现金/代金券明细 ✅ 已验证
DeepSeek(deepseek 按量余额 账户余额(按币种账户显示) ✅ 已验证
OpenCode Go(opencode-go 订阅额度 5h / 7d / 30d(百分比与重置倒计时) ✅ 已验证
OpenRouter(openrouter 预充值余额 账户余额($)+ 本月/总消费 ⚠️ 待真实 key 验证
MiniMax / MiniMax(CN)(minimax / minimax-cn Token 套餐 5h / 7d 用量百分比(剩余%) ⚠️ 待真实 key 验证
智谱 / 智谱 Coding(CN)(zai / zai-coding-cn Coding 套餐 5h / 7d 用量百分比(窗口自动识别,含重置时间) ⚠️ 待真实 key 验证
其他提供方 未适配

验证状态说明:✅ = 长期运行、真实响应结构已验证;⚠️ = 已实现并通过 mock 测试,但未用真实 key 校准(响应结构以参考实现为准,若有出入请发抓取返回的 raw 原文校准)。

常见问题

徽标没显示或"查询失败"?

A: 确认供应商凭证已配置(credentials seam 或环境变量)且 providers 声明了 apiKeyEnv;端点漂移可手动钉死 url

用量页签没数据?

A: 用量来自会话日志采集:确认 $DSH_HOME/sessions 下有会话日志,点顶部"刷新"(先采集再查询);CC 数据需在"数据来源"手动导入。

费用准不准?

A: 按 pi-ai 本地刊例价估算,仅供参考、非实际账单;订阅制不产生真实扣费。未定价模型计入 token 不计入费用。

已知限制

  • 费用为估算(pi-ai 刊例价 + 每日汇率),非实际账单。
  • 明细保留 60 天;更早的历史只能看按天聚合。
  • 服务端窗口倒计时文案(如 5h 后重置)暂未多语言化。

架构

用户操作          ┌─ 定时器(5min) ─┐
  │               │  手动刷新      │
  ▼               ▼                ▼
页面查询 ──纯读──▶ SQLite ◀──字节级增量折叠── 会话日志(zstd)
(秒开)           (token-monitor.db)            ($DSH_HOME/sessions)
  • 页面打开:先从数据库渲染(秒开)→ 后台触发一轮折叠 → 静默重载
  • 查询路由触发日志读取;折叠只由 定时器 / 手动刷新 / 打开后后台触发 驱动
  • 折叠水位记录字节偏移(last_offset),只续读追加的日志帧
  • 存储与同步设计详见 设计文档

开发

git clone https://github.com/licyer/dsh-token-monitor.git
dsh plugin --profile web add link:/path/to/dsh-token-monitor   # 本地路径挂载
  • 改前端(lib/client.js):HMR 热替换,刷新即生效
  • 改服务端(lib/index.js / lib/util/):需重启 dsh web 进程

许可证

MIT © 2026 licyer

上一个 Prev DHS-multi-agent-plugin 下一个 Next dsh-deepseek-monitor