在设置页查看 Token 消耗趋势与模型占比
36.5/100
综合分
6
GitHub 星标
185
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-usage-panelnpm 源 · dsh-usage-panel 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-timer@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-compaction@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-retry@deepseek-ai/dsh-session@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-session-projection-cache@deepseek-ai/dsh-session-query给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
4 张 · 点击查看大图功能亮点
- 查看Token消耗趋势
- 模型占比环形图
- 半年活跃热力图
DeepSeek Harness 消耗统计插件:设置页 Token 用量 KPI、半年活跃热力图、按模型堆叠柱状图与模型环形图(dsh-plugin)
最近更新
在 GitHub 查看全部 →v0.2.32026-09-15
· v0.2.3 — 会话统计口径修正 + DeepSeek Harness 0.1.5 适配
概览:修复会话统计的核心口径缺陷——此前 KPI 把所有"有 usage 的会话记录"都计入(含用户不可见的子代理会话),真实数据下可达数倍虚增;fork/resume 的种子边界判定同时存在少算(resume 窗口丢失、无 marker 会话投影下隐形)与多算(fork 重复计父历史)两个方向的错误。本版本统一双路径口径并完成 dsh 0.1.5 API 迁移。
---
· 🐛 统计口径修正
| 问题 | 根因 | 修复 |
|---|---|---|
| 会话数虚增(用户列表 40 → 统计 300+) | listSessions 返回全量 corpus,含子代理/fork/归档会话,KPI 逐条计数 | KPI 只计 delegationDepth === 0 会话;子代理数量保留在 coverage 明细,token 总量仍含子代理真实消耗 |
| KPI 与侧边栏对不上 | 空会话(创建了没发过消息)被排除、归档会话被计入 | sessionCount = 侧边栏可见列表:零用量会话计入、已归档会话不计(归档权威源 workspaceRegistry.archivedSessionIds) |
| resume 会话用量丢失 | session/end-seed 被误当 fork 边界(scan 取末条 marker、projection 取首条) | 按 marker 切 epoch 独立聚合,merge 用 inheritedEventCount 裁定前缀归属:fork 丢前缀、resume 全保留、无 marker 全保留 |
| fork 重复计父历史 | 子日志种子前缀混入父会话 resume marker,"首个 marker"边界前移 | 同上——权威边界取继承事件数而非 marker 位置 |
| 投影下子代理恒计为主 | scanProjection 未下传 delegationDepth | depth + inheritedEventCount 双路径下传 |
· 🔌 DeepSeek Harness 0.1.5 适配
· header.seedLength → inheritedEventCount(旧格式保留 fallback)
· coldSnapshot(id) → coldSnapshot(meta, inheritedEventCount, events),调用方先 readSession 取完整日志
· connection.rpc.handle 第三方插件不可用 → 迁移 connection.fetch.register(共享 /api 传输,自动继承 Host/Origin + 浏览器鉴权)
· 新增 assistant/attempt 计费路径(失败/重试调用结算);assistant/chunk 按字符串兼容旧日志
· workspaceRegistry 惰性激活服务经 ctx.inject 子 fiber 获取(ctx.get 拿不到休眠服务)
· ⚠️ 环境注意
· rc.6 写入的旧 subagent 日志(subagent/descriptor v2)会被 0.1.5 replay 校验拒绝读取,属框架层数据兼容限制,通过 coverage 如实披露
· npm Trusted Publisher(OIDC)未在 npmjs.com 配置时,publish.yml 会因 PUT 404 失败——本地 npm publish --access public 为当前发布通道(见 AGENTS.md §6.4)
验证:63+ 单测(epoch 折叠/双路径语义/归档排除/attempt 计费)+ 真实会话语料端到端核对 + dsh web 0.1.5-rc.1 运行时实测。
v0.2.02026-08-18
· v0.2.0 — TypeScript 重构 + P0/P1 功能完整吸收
概览:v0.2.0 是 v0.1.0 之后的最大版本——源码从手写 JS(793 行,无类型)全面重构到 TypeScript strict + esbuild,同时吸收四家竞品的 P0/P1 短板(UTC 时间口径、缓存命中率 KPI、覆盖度诊断、会话级下钻、zh/en i18n、落盘投影、provider 维度、CSV/JSON 导出、客户端持久化缓存、ErrorBoundary、测试基建)。所有 v0.1.0 既有特性(fork 去重、双源模型归因、图表全家桶、亿/万单位、缓存策略、安全边界、只读承诺、双主题)作为回归底线被完整保留。
重要不变量:lib/index.js / lib/client.js 的产物契约(导出与加载形态)对宿主与 profile 完全透明。cordis.patch.yml、package.json 的 dsh 字段、RPC 通道 /usage-stats、settings.section id usage-stats、样式注入的 data-plugin-css 生命周期——全部保持。
---
· 🛠 地基:TypeScript 全面重构
| 维度 | v0.1.0 | v0.2.0 |
|---|---|---|
| 源码 | 手写 JS lib/,793 行,无类型 | src/ TypeScript strict,分文件分层 |
| 构建 | 无(产物随仓库提交) | esbuild 构建 + tsc --noEmit 类型检查 + 声明产物 |
| 测试 | 0 | Node 内置 node --test + fixture 锁口径 |
| 类型出口 | 无 | exports 增加 types(host 侧 .d.ts,供宿主/集成方引用) |
| 发布 | 手推 npm | GitHub Actions + OIDC Trusted Publishing + check-pack 门禁 |
新目录结构:
src/
├── shared/ # host/client 双端共享的纯模块(无 IO)
│ ├── contract.ts # wire 契约:Overview 载荷、错误码枚举、RPC 端点常量
│ ├── usage.ts # 四桶聚合、UTC dayKey、fork seedLength 去重、模型归因
│ └── format.ts # 亿/万(zh)与 K/M/B(en)、niceCeil、四分位、日期解析
├── host/
│ ├── index.ts # 入口:inject/apply、RPC、预热、keep-warm、dispose
│ ├── scan.ts # sessionQuery 只读重扫 + 覆盖度计数
│ ├── projection.ts # sessionProjections.register 落盘四桶投影
│ └── export.ts # CSV/JSON 导出构建器
└── client/
├── index.tsx # ModuleLoader 入口
├── StatsSection.tsx # 页面编排(拆组件,单文件 ≤ ~300 行)
├── components/ # KpiCards / Heatmap / BarChart / ModelDonut / SessionsCard / ProvidersCard / CoverageCard / ExportMenu / Tooltip / ErrorBoundary
├── api.ts / cache.ts # rpc 调用 + 错误码归一 + 版本化 SWR
└── locales/ # zh-CN / en-US
---
· ✨ 新增能力(P0)
1. 日期口径统一为 UTC 并显式声明 —— 修复 v0.1.0 的本地时区"今天"边界漂移与跨时区日界错位
2. 缓存命中率 KPI —— cache read ÷ (uncached input + cache read + cache write),数据已全有,纯 UI + 纯函数
3. 覆盖度诊断(诚实性) —— 披露扫描成功/失败/跳过会话数 + 时间范围 + 口径声明,替换静默吞错
4. 会话级下钻 —— Top 10 会话列表 + 折叠标题,回答"哪个会话最烧 token"
5. zh/en i18n —— client.inject 追加 locale + 词典按语言切换;zh 保持"亿/万",en 用 K/M/B
· 🧩 架构级改进(P1)
6. 落盘投影(sessionProjection
v0.1.02026-08-15
· dsh-usage-panel v0.1.0
DeepSeek Harness 消耗统计插件:设置页展示 Token 用量 KPI、半年活跃热力图、按模型堆叠柱状图与模型环形图,只读重算会话日志。
· 安装
· 从 npm 安装(推荐)
dsh plugin --profile web add dsh-usage-panel
· 或从本发行版压缩包安装
dsh plugin --profile web add ./dsh-usage-panel-0.1.0.tgz
· 本版内容
· 累计 Token KPI(输入 / 输出分开统计)、会话数、最常用模型
· 半年活跃热力图,按四分位分色阶
· 按模型堆叠的每日柱状图(7 / 14 / 30 天)
· 模型环形图,含前 5 名列表与悬停提示
· 通过 --dsw-* token 支持浅色 / 深色主题
· 预热扫描 + 过期先返回再刷新的缓存——页面秒开
· 只读:重扫会话日志,不写入任何内容
详见 README.md。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-usage-panel
DeepSeek Harness 的 Token 用量统计插件,在 Web GUI 的「设置 → 消耗统计」下展示。插件通过会话投影机制增量聚合持久化会话日志,永不写回任何数据。
English · npm npm downloads CI dsh-plugin Mentioned in Awesome DeepSeek Harness
页面内容
- 汇总数据(全部历史) —— 计费输入 / 输出 Token、主会话数量(delegationDepth === 0,与可见会话列表口径严格一致:零用量会话计入、已归档会话不计;次级标注总会话数与主/子代理用量拆分)、最常用模型及其占比。
- 缓存命中率 —— 缓存读 ÷(未缓存输入 + 缓存读 + 缓存写),附读写绝对量。
- 活跃热力图 —— 最近半年,GitHub 贡献图式布局(列为周、行为星期)。按非零日用量的四分位分 4 级色阶。
- 每日柱状图 —— 按模型堆叠的每日用量,可切换最近 7 / 14 / 30 天。
- 会话用量排行 —— 最耗 Token 的 10 个会话(含折叠标题),每行按委派深度标注主会话或子代理。
- 服务商用量 —— 多 Provider 时以横向条形按路由展示各自 Token 消耗。
展开完整文档(README 剩余 1 节)
dsh-usage-panel
DeepSeek Harness 的 Token 用量统计插件,在 Web GUI 的「设置 → 消耗统计」下展示。插件通过会话投影机制增量聚合持久化会话日志,永不写回任何数据。
English · npm npm downloads CI dsh-plugin Mentioned in Awesome DeepSeek Harness
页面内容
- 汇总数据(全部历史) —— 计费输入 / 输出 Token、主会话数量(delegationDepth === 0,与可见会话列表口径严格一致:零用量会话计入、已归档会话不计;次级标注总会话数与主/子代理用量拆分)、最常用模型及其占比。
- 缓存命中率 —— 缓存读 ÷(未缓存输入 + 缓存读 + 缓存写),附读写绝对量。
- 活跃热力图 —— 最近半年,GitHub 贡献图式布局(列为周、行为星期)。按非零日用量的四分位分 4 级色阶。
- 每日柱状图 —— 按模型堆叠的每日用量,可切换最近 7 / 14 / 30 天。
- 会话用量排行 —— 最耗 Token 的 10 个会话(含折叠标题),每行按委派深度标注主会话或子代理。
- 服务商用量 —— 多 Provider 时以横向条形按路由展示各自 Token 消耗。
- 模型环形图 —— 各模型全历史占比,旁边列出前 5 名;每行带缓存命中率列,颜色与对应分段一致。
- 导出 —— 完整 JSON、每日 CSV、模型 CSV(防公式注入、RFC 4180、UTF-8 BOM)。
悬停柱子、热力图格子或环形图分段可以看到具体明细:
| 柱状图悬停 | 概览(KPI + 热力图) | 会话排行与服务商 |
安装
插件以 bundle 形式发布:dsh plugin add 会把它追加到 profile 的 bundle 列表,patch 行负责挂载 Host 半。
从 npm 安装(推荐)
dsh plugin --profile web add dsh-usage-panel
或从 GitHub 安装
dsh plugin --profile web add github:AlfredChaos/dsh-usage-panel
或从本地目录安装
dsh plugin --profile web add ./dsh-usage-panel
重启 dsh --profile web,打开「设置 → 消耗统计」。npm 包内 lib/ 下是预构建的纯 JavaScript 产物,无安装脚本;GitHub 安装同样不需要 pnpm 的构建放行,因为仓库里提交了相同的文件。卸载:
dsh plugin --profile web remove dsh-usage-panel
数据来源
Host 半聚合持久化会话日志:
- 主路径(增量):注册一个会话投影(ctx.sessionProjections,带 stateVersion 校验),把每个已提交事件折叠进四个互斥桶 —— 未缓存输入 / 输出 / 缓存读 / 缓存写 —— 以及按模型、按 Provider、按天(UTC)的映射。checkpoint 落盘,重启与保鲜扫描几乎零回放。
- 回退路径(全量重扫):投影服务不可用时,同一套 reducer 通过只读 sessionQuery 服务重放每个会话日志。
记账规则:request/header 与 request/context 记录模型(context 打底、header 覆盖);该步骤的 assistant/message 用量替换流式暂记用量(同一步重试的消息不会重复累计);llm/retry 事件只计重试次数、不计 Token;compaction/summary 用量归属其自身模型并单独披露;reasoning token 已含于 output,绝不重复相加。
子会话(fork)去重:继承前缀(inheritedEventCount)之内的事件一律不计数,fork 出的会话不会重复计算父会话的用量。session/end-seed 标记只用于切分 resume/fork 记账窗口(epoch)——被 resume 的会话,自己所有窗口的用量都会保留。
日期口径声明:日桶与导出均按 UTC 自然日(YYYY-MM-DD)。热力图副标题明确标注口径("最近半年 · UTC")。
因为不写回任何数据,统计在重启后依然存在,也能覆盖插件安装之前的历史会话。
加载策略
插件加载时立即开始首次扫描,打开页面时通常直接命中缓存。缓存 10 分钟内视为新鲜;更旧的缓存会立即返回并标记 stale(页面显示「后台更新中…」),同时后台重扫刷新。每 10 分钟定时轻量重扫保鲜,刷新按钮始终强制同步重扫。浏览器还会把最近一次成功载荷存入 localStorage(带版本号与结构校验),刷新页面即刻渲染;刷新失败时保留旧数据并如实标注,绝不伪装最新。
单位
中文界面:≥ 1 亿 用「亿」,≥ 1 万 用「万」,否则原值;英文界面:K / M / B。
实现
源码为 TypeScript(strict)位于 src/,esbuild 构建;lib/ 产物提交进仓库,安装无需构建步骤。
| 文件 | 说明 |
| src/host/index.ts → lib/index.js | Host 半(Cordis 插件):投影注册、聚合、带预热的 RPC 缓存、fail-soft 回退 |
| src/host/projection.ts | 纯函数会话投影 reducer(四桶、fork 去重、重试/压缩语义、UTC 日桶) |
| src/host/aggregate.ts | 跨会话合并 → overview 载荷 |
| src/client/ → lib/client.js | Client 半(./client 导出,__ModuleLoader__ bundle):TSX 设置页 UI,--dsw- 变量,中英双语 |
| src/shared/contract.ts | host↔client wire 契约(单一来源) |
| cordis.patch.yml | Bundle patch:向 profile 组合插入 usage-stats 行 |
Host 通过共享 /api 传输上的精确路径路由提供 overview 端点(ctx.connection.fetch.register('/api/usage-stats/overview', …)——由 connection 插件的路由统一做 Host/Origin 检查与浏览器鉴权);浏览器经 rpc.call('/api', 'usage-stats/overview', …) 调用。overview 载荷包含 coverage(总会话数与主/子代理用量拆分,展示于会话数量 KPI 次级文字)、topSessions、providers,并保留 v0.1.0 形态的 days / totals / byModel / allTime。基于 DeepSeek Harness 0.1.5-rc.1 开发验证。测试使用 Node 内置 test runner(npm test);CI 执行 typecheck + build + test + 打包门禁。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
AlfredChaos/dsh-usage-panel
在设置页查看 Token 消耗趋势与模型占比
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个插件,给…
★ 850已汉化DSH
68.9
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 387已汉化DSH
67.8
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 415已汉化DSH
67.7
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。