sandbase-harness
sandbaseai
Local-first, self-hosted AI agent runtime and MCP bridge with sandboxed sessions, memory, credentials, audit/replay, and a local Console.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:licyer/dsh-token-monitor
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DeepSeek Harness(DSH)Web 界面的大模型余量与用量监控插件:会话头部实时余量徽标 + 主区"用量"页签,本地 SQLite 记录每次调用的 token 与费用。
[!NOTE] 需要 Node.js ≥ 22.5.0(依赖内置
node:sqlite)。仅支持 DSH Web 端(platform: web)。实测环境:DSH 0.1.5-rc.1(保留对 0.1.1 的旧接口兼容回退;会话数据不可跨版本回退——高版本写过的会话低版本无法打开)。
dsh plugin --profile web add dsh-token-monitor
dsh plugin --profile web add github:licyer/dsh-token-monitor
安装即自动注册(写入 profile 的 package.json bundles 与依赖),重启 dsh web 生效,无需手动改配置。
| 能力 | 说明 |
|---|---|
| 余量徽标 | 会话头部显示当前模型供应商余量(k3 · 5h 剩 82%),点击弹详情层 |
| 用量页签 | 与"对话 / 轨迹"并列:token 用量、估算费用、趋势、排行、请求明细 |
| 模型定价 | 内置 DeepSeek 官方价(含高峰倍率与已公布即将生效档),用量页底部可自行维护 / 覆盖;表里没有的模型用 pi-ai 刊例价兜底 |
| 自动采集 | 自动采集 DSH 会话日志,后台定时 + 手动刷新 |
| 历史导入 | cc-switch 记录每 5 分钟自动同步;也支持手动导入与 SQL 文件导入,重复导入不产生重复数据 |
| 跨设备同步 | DSH 用量支持导出/导入 JSON 快照(明细 + 聚合),不同设备记录合并到一台设备,幂等不重复 |
| 语言跟随 | 界面文案跟随 DSH 中文 / 英文切换 |
徽标显示当前模型供应商的余量:
点击徽标弹出详情层:当前提供方指标、本会话 token 用量、全部提供方折叠区、cc-switch 自动同步失败提示条(仅失败时出现)、更新时间与刷新。

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





配置文件:$DSH_HOME/storages/token-monitor/config.json。
设置入口:DSH 设置面板(左下角齿轮)→ Token Monitor 页,表单保存后即时写回该文件。三个设置项:默认时间窗 / 余量轮询间隔(秒)/ 请求记录保留时间(天);下方另附已适配供应商清单(哪些提供方已适配、开发者是否用真实凭证验证过)。
| 字段 | 默认值 | 含义 |
|---|---|---|
defaultDays |
1 |
用量页签默认时间窗天数;0 = 全部 |
pollMs |
60 |
头部余量轮询间隔(单位秒,5–86400)。设置页与 config.json 均存秒,需要毫秒时由前端单独 ×1000 |
retentionDays |
60 |
请求记录保留天数(超过此时长的记录会被定期清理,不影响聚合统计;设置页提供 30/60/90) |
| 提供方 | 类型 | 适配说明 | 验证状态 |
|---|---|---|---|
kimi-coding |
订阅额度 | 5h / 7d / 权益等级(百分比与重置倒计时) | ✅ 已验证 |
moonshotai-cn |
按量余额 | 可用余额(CNY)+ 现金/代金券明细 | ✅ 已验证 |
deepseek |
按量余额 | 账户余额(按币种账户显示) | ✅ 已验证 |
opencode-go |
订阅额度 | 5h / 7d / 30d(百分比与重置倒计时) | ✅ 已验证 |
commandcode |
订阅额度 | 月额度 + 5h / 7d 滚动窗口(已用百分比与重置倒计时;额外结转额度单独行) | ✅ 已验证 |
openrouter |
按量余额 | 积分余额(1 积分 = $1)+ 本月/总消耗 | ✅ 已验证 |
minimax / minimax-cn |
订阅额度 | 5h / 7d 用量百分比(剩余%) | ⚠️ 待真实 key 验证 |
zai / zai-coding-cn |
订阅额度 | 5h / 7d 用量百分比(窗口自动识别,含重置时间) | ⚠️ 待真实 key 验证 |
| — | — | 未适配 | — |
验证状态说明:✅ = 长期运行、真实响应结构已验证;⚠️ = 已实现并通过 mock 测试,但未用真实 key 校准(响应结构以参考实现为准,若有出入请发抓取返回的
raw原文校准)。
显示"查询失败" = 凭证已配置但余量接口查询失败,按条排查:
providers.<id>.url 覆盖注意:若显示"插件未适配该提供方",则是该提供方尚未适配,与以上无关。
用量来自会话日志采集:确认 $DSH_HOME/sessions 下有会话日志,点顶部"刷新"(先采集再查询);cc-switch 记录每 5 分钟自动同步一次,失败时弹层会给出提示并可手动重试,"数据来源"里也可手动导入或导入 SQL 文件。
费用按定价表估算:内置 DeepSeek 官方价(含高峰倍率与已公布即将生效档),可在"用量页底部 → 模型定价"自行维护或覆盖;表里没有的模型用 pi-ai 刊例价兜底,都没有则计入 token 不计入费用。仅供参考、非实际账单;订阅制不产生真实扣费。
这是 DSH 会话数据单向向前导致的,与插件无关。DSH 的会话日志带事件白名单校验:新版新增的事件若未标 ignorable,旧版会把整份日志判为"由更新的 harness 写入"并拒读(典型报错 resume failed … SessionFormatUnsupportedError: event type "…" unknown to this harness and not marked ignorable …),于是:
举例:0.1.2 起,会话日志会写入 model/selection 等 0.1.1 没有的新事件。若你在 0.1.2 期间创建或续写过某个会话,再回退到 0.1.1,这个会话就会打不开——0.1.1 不认识 model/selection,直接拒绝整份日志;该会话在 0.1.1 下无法恢复,改日志或跳过校验只会损坏数据。
这是浏览器同源并发连接被占满,不是 DSH 的单页面限制,也与本插件无关。
DSH Web 走 HTTP/1.1(没有 WebSocket / 多路复用),单个页面就会对 http://127.0.0.1:<port> 维持 3 条左右的常驻/流式连接;而浏览器对同一 origin 的并发连接有上限(Chrome 通常 6 条)。重启后如果每次都新开标签页、旧页面又不关,多个页面同时抢同一份配额,新页面的首屏请求和旧页面的刷新请求就都在排队/超时——表现就是"新页面空白、旧页面也转圈";关掉多余页面后,剩下的页面立刻恢复。
规避办法:
重启时不要自动开新页面:用 dsh web --no-open 启动(不自动打开浏览器),再在已有标签页里刷新 / 重新打开地址即可,标签页就不会越积越多;不再需要的旧页面请关掉(重启后旧页面的连接已失效,刷新旧页面也可能连不上新进程);
想自查连接占用(Windows):
Get-NetTCPConnection -LocalPort <port> -State Established | Measure-Object | Select-Object Count
单页约 3 条,随页面数增加;关掉页面后会回落。
用量数据本地存储:会话日志增量采集进 SQLite(token-monitor.db),页面查询纯读库秒开,采集由后台定时器 / 手动刷新 / 打开页签时触发。
model_prices 单表、峰谷倍率与取价口径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
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: dsh-token-monitor、token-monitor。