🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

用量成本看板 zhm20001/dsh-usage-board

DeepSeek Harness
zhm2000153 天前有提交已提供中文文档扫描:含敏感能力

实时追踪 Token 消耗与成本,按调用树归集明细

29.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zhm20001/dsh-usage-board
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · model
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 53 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-usage-board(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.5.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 15:34:58

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 7 处,展示前 7 条)
  • 发起网络请求
    src/client/ui.ts:18
    return globalThis.fetch(url, request)
  • 读取本地文件
    src/services/backfill.ts:74
    entries = readdirSync(sessionsRoot, { recursive: true }) as string[]
  • 读取本地文件
    src/services/backfill.ts:84
    st = statSync(full)
  • 发起网络请求
    src/services/balance.ts:128
    this.fetcher = deps.fetch ?? ((url, init) => globalThis.fetch(url, init))
  • 读取本地文件
    src/services/session-log.ts:44
    const raw = readFileSync(path)
  • 写入本地文件
    src/services/storage.ts:257
    mkdirSync(dirname(this.dbPath), { recursive: true, mode: 0o700 })
  • 写入本地文件
    src/services/storage.ts:281
    chmodSync(this.dbPath, 0o600)
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 实时追踪Token消耗
  • 按调用树归集明细
  • 增量回溯历史会话
展开完整介绍(145 字)↓

dsh-usage-board 是专为 DSH (DeepSeek Harness) 设计的用量与成本可视化看板插件。 插件能实时捕获会话内的 Token 消耗、Step 耗时和异常指标,支持冷启动增量回溯历史全量会话,并按 Sub-agent DAG 调用关系进行树状归集与反向明细穿透。

README

由 DeepSeek 最新模型翻译生成
dsh-usage-board DeepSeek Harness (DSH / Cordis) 的全功能用量监控、成本核算与诊断大盘插件。 Node Version License [Zero Dependency]() 📖 简介 dsh-usage-board 是专为 DSH (DeepSeek Harness) 设计的用量与成本可视化看板插件。 插件能实时捕获会话内的 Token 消耗、Step 耗时和异常指标,支持冷启动增量回溯历史全量会话,并按 Sub-agent DAG 调用关系进行树状归集与反向明细穿透。 📸 界面预览 插件通过宿主 Slot 系统在三处无缝挂载 UI(前端为轻量无状态设计 lib/client.js):侧边栏底部的 Usage Board 按钮一键唤出全屏大盘,会话详情页自带 Usage Tab 查看单会话账单。 会话页 "Usage" Tab —— 单会话账单与诊断 Session Usage Tab 树级聚合 KPI(输入 / 输出 = 思考 + 正文 / 缓存命中 / 成本)、Token 五桶构成 × 峰谷金额(零桶自动隐藏)、模型占比、请求效率与逐步明细。悬停行内 ?
展开完整文档(README 剩余 1 节)
dsh-usage-board

DeepSeek Harness (DSH / Cordis) 的全功能用量监控、成本核算与诊断大盘插件。

Node Version
License
[Zero Dependency]()

📖 简介

dsh-usage-board 是专为 DSH (DeepSeek Harness) 设计的用量与成本可视化看板插件。

插件能实时捕获会话内的 Token 消耗、Step 耗时和异常指标,支持冷启动增量回溯历史全量会话,并按 Sub-agent DAG 调用关系进行树状归集与反向明细穿透。

📸 界面预览

插件通过宿主 Slot 系统在三处无缝挂载 UI(前端为轻量无状态设计 lib/client.js):侧边栏底部的 Usage Board 按钮一键唤出全屏大盘,会话详情页自带 Usage Tab 查看单会话账单。

会话页 "Usage" Tab —— 单会话账单与诊断

Session Usage Tab

树级聚合 KPI(输入 / 输出 = 思考 + 正文 / 缓存命中 / 成本)、Token 五桶构成 × 峰谷金额(零桶自动隐藏)、模型占比、请求效率与逐步明细。悬停行内 ? 可查看该桶峰 / 谷两档实付单价与金额对照(谷价 = 峰价 × ½):

Peak/off-peak rate tooltip

全屏大盘 (Overlay) —— 总览

Dashboard overview

总量 / 成本 / 缓存命中率 KPI,DeepSeek 官方余额与烧钱速率预测(含夜间/阶梯价反事实节约),84 天用量热力图与 24 小时峰谷剖面。

全屏大盘 (Overlay) —— 会话归集与 Turns 明细

Dashboard turns table

最近会话树状归集、Turn × Step 级明细(TTFT / 耗时 / 五桶 Token / 峰谷金额),一键 CSV 导出。

挂载点一览

| 挂载 Slot | 位置 | 展示内容 |
| conversation.view | 会话详情页 "Usage" Tab | 当前会话树级聚合指标、Token 五桶构成 × 峰谷成本、模型占比、Step 级耗时瀑布 |
| sidebar.footer.action | 侧边栏底部操作区 | 大盘常驻快捷开闭图标 |
| shell.overlay | 全屏监控大盘 (Overlay) | 余额与可用天数、异常与反事实节约 KPI、84 天热力图、24 小时峰谷剖面、最近会话归集、Turns 明细表及 CSV 导出 |

✨ 核心特性

- ⚡ 零运行时依赖:基于 Node.js 22.5+ 原生 node:sqlite 构建,无任何 C++ 原生编译依赖及 Worker 进程负担。
- 🏛️ CQRS 架构:DSH 会话原文件作为只读真相源 (Write Model),插件 SQLite 数据库作为可重建只读视图 (Read Model),保障会话数据安全。
- 🚀 暖/热双层读模型:
- 暖层 (SQLite):按脏分区增量汇总 daily_rollups / session_rollups,动态按最新价目表现算成本。
- 热层 (内存快照):进程内不可变快照,单次请求下发渲染就绪的主帧;支持 rev 版本号协商,无变更秒回 unchanged。
- 🌲 Sub-agent DAG 聚合分析:支持多层子代理深度调用链聚合、Step 耗时瀑布图、Token 五桶构成分析。
- 💰 成本与余额洞察:支持 DeepSeek 官方余额透传、实时额度可用天数预测、夜间/阶梯价反事实节约计算。
- 🖥️ 三处无缝 UI 挂载:原生融入 DSH Web 控制台(会话页 Tab、侧边栏入口、全屏仪表盘)。

🚀 快速上手

1. 环境准备

- Node.js >= 22.5.0
- DSH (DeepSeek Harness)

2. 作为 DSH 插件启用

1. 克隆并构建(仓库不含 lib/ 产物,必须先构建)
git clone https://github.com/zhm20001/dsh-usage-board.git
cd dsh-usage-board
npm install
npm run build

2. 将插件注册至 DSH Web Profile
dsh plugin --profile web add "$(pwd)"

3. 启动 DSH Web 宿主
dsh --profile web --port 3099

启动后访问 http://127.0.0.1:3099 即可在界面中看到用量看板。首次启动会冷启动回溯扫描全部历史会话,之后增量跟进。

⚙️ 配置说明

余额查询配置

大盘的「账户余额」组件读取 DeepSeek 官方 GET /user/balance 接口:

1. 方式一:在 DSH 的「设置 → 模型」中填入 DEEPSEEK_API_KEY。
2. 方式二:写入 ~/.dsh/.credentials.yaml(权限需设置为 0600): DEEPSEEK_API_KEY: sk-xxxxxxxxxxxxxxxxxxxxxxxx

注:未配置 Key 时余额卡片展示占位符,不影响其余本地统计功能。余额查询是本插件唯一的外网请求,其余处理均在纯本地执行。

数据与存储路径

| 类别 | 存储位置 | 说明 |
| 真相源 (Write Model) | ~/.dsh/sessions///session.jsonl.zstd | DSH 原始会话,只读 |
| 投影库 (Read Model) | ~/.dsh/data/usage.sqlite | 插件维护的 SQLite 索引与聚合库 |

💡 可安全重建:投影库可随时删除重建(建议先停用插件,再 rm ~/.dsh/data/usage.sqlite*)。下次启动 Backfill 会重扫全部历史会话重建投影;Write Model 永远不要删。

🔌 API & 嵌入式开发 (SDK)

HTTP API 端点

| 端点 | 方法 | 说明 |
| /api/usage-dashboard/snapshot?rev=N | GET | 获取大盘全量主帧。rev 命中当前版本时返回 {unchanged: true, revision} |
| /api/usage-dashboard/snapshot?refresh=1 | GET | 强制出网刷新一次 DeepSeek 实时余额 |
| /api/usage-dashboard/turns | GET | 检索 Turns 明细列表。参数:limit(默认 500、上限 500)、session_id、root_session_id(二者可同给取交集)、format=csv |

端点仅在注入 ctx.webServer 时注册(回环 same-origin 限定);未注入时引擎作为库完整可用。

作为独立库调用

先 npm run build 产出 lib/,再以依赖方式引入本包(或直接指向 lib/index.js):

import { createEngine } from 'dsh-usage-board'

// ctx 为结构化 HostContext,无需真实 Cordis 运行时 const engine = createEngine(ctx, { dbPath, sessionsRoot })

// 等待冷启动/增量 Backfill 就绪 await engine.ready

// 查询接口调用示例 const rollup = engine.query.getRollupBySession(rootSessionId) const heat = engine.query.getHeatmapData(12) const fails = engine.query.getTimelineAnomalies(100) const text = engine.query.loadTurnDetails({ sessionFilePath, turnIndex })

// 逆序平滑释放 await engine.dispose()

🛠️ 本地开发

构建 Node 端与 Client 端产物
npm run build

启动监听构建(配合 DSH 宿主的 Client HMR 热替换)
npm run dev

运行全量测试套件(基于 node --test,无外部依赖)
npm test

类型检查
npm run typecheck

📄 License

本项目基于 MIT License 开源。
预览分享卡片长什么样 ↓zhm20001/dsh-usage-board
分享 · DeepSeek Harness Hub
zhm20001/dsh-usage-board

实时追踪 Token 消耗与成本,按调用树归集明细

这是你的仓库?认领条目

回到顶部