DSH Web 侧栏用量与成本面板:按官方价目逐笔估算花费、北京峰谷自动切价、10 级段位与 9 枚成就徽章,全本地统计零外发。
- 语言
- TypeScript
- License
- MIT
- 分支
- main
安装
$ dsh plugin --profile web add dsh-board在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 dfkai/dsh-board:先查看仓库 https://github.com/dfkai/dsh-board 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
给 DeepSeek Harness(DSH)Web 端在左侧栏底部加一个用量与成本面板:按官方价目逐笔估算花费,2026-08-17 起自动按北京时间峰谷切价,并把总用量、缓存命中、本会话成本、十级「词勋」段位、9 枚成就徽章都装进同一个折叠式侧栏。
核心能力
- 成本估算:按官方价目(v4-pro / v4-flash / 旧模型)对每笔用量发生时刻的峰谷档逐笔计价,推理 token 按输出价计入,与平台逐请求计费同口径
- 峰谷自动切价:2026-08-17 起按北京时间判断高峰(09:00–12:00、14:00–18:00)还是闲时(半价),徽章角标实时显示当前档位与输出单价
- 1M 上下文占用:当前轮上下文占用百分比、剩余预算、系统/工具/消息三段堆叠条、子代理累计耗时
- 走势与累计:每轮输入/输出柱状图、累计输出曲线、12 周每日热力图、分模型用量统计、跨会话总榜
- 十级「词勋」段位:按累计 token 量的会员卡式阶梯(🌱 未醒词芽 → ⚡ 万亿词神),展示进度、解锁 ETA、每级权益
- 成就与打卡:9 枚数据驱动徽章(连续打卡 3/7/30 天、累计活跃天数、单日 token 峰值、累计会话数等),全部由真实使用量触发
技术实现
- 语言: TypeScript + React(host 半为 Node ESM,client 半为浏览器 CJS)
- 关键依赖: 仅运行时依赖
zod(用于会话投影的 schema 校验);客户端依赖的 React、Cordis、dsh-client-* 包由宿主模块表提供,构建期声明为 external - 架构模式: 双端 Cordis 插件。宿主半通过
cordis.patch.yml注册id: board行,源码侧在sessionProjections服务上注册三个只读投影(dominantModel/sessionCost/tokenDays),零写入;浏览器半以window.__ModuleLoader__闭包工厂注入侧边栏底部的sidebar.footer.action槽位 - 入口文件:
src/index.ts(host apply)+src/client/index.ts(client apply)+cordis.patch.yml(bundle patch)+tsdown.config.ts(双产物构建配置)
适用场景
想直观回答「这个月 DeepSeek 用了多少、花了多少钱、今晚高峰前还值不值得再开一局」的人:DSH Web 用户希望看到 DeepSeek 后台那种用量统计,又不希望为这个面板多填配置或多管一把 API key。插件全程本地计算,不向任何第三方接口外发请求。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness (DSH) | 未声明 | 插件本体无版本约束;想让「推理 token 按输出价计入累计成本」需宿主侧打上 token-meter 修复(上游讨论见 deepseek-harness discussions/2338) |
| Node.js | 未声明 | 源码未声明 engines;构建使用 tsdown(依赖 TypeScript 7 与 Node 较新版),宿主 DSH Node 即可 |
| 平台 | 跨平台 | 仅依赖宿主暴露的 web profile 与浏览器会话,无原生模块调用;macOS / Windows / Linux 上 DSH Web 均可加载 |
| 原生模块 | 无 | 纯 JS 实现,运行时只用宿主提供的 React、Cordis、dsh-client-* 等模块表条目 |
安装方式
dsh plugin --profile web add dsh-board
配置项
本插件无需额外配置。
唯一可调开关:在 profile 的 cordis.patch.yml 里按插件 id(board)寻址追加 disabled: true,即可关闭本面板;disabled 支持 !!js 表达式按条件开关。价格表是源码级常量(见 src/pricing.ts 的 MODEL_PRICES / PEAK_PRICES / OFF_PEAK_PRICES),想改价需改源码后重新构建;折叠状态走浏览器 localStorage(键名 dsh-board.collapsed),用户也可手动清除。
常见问题
Q: 安装后侧栏底部为什么没出现徽章?
A: 必须重启对应 profile(或新起 dsh --profile <profile>)并硬刷新浏览器;冷启动未重启的 profile 不会自动加载新插件。验证可跑 dsh --profile <profile> --dump-config,应在输出里看到 # == dsh-board 层。
Q: 面板显示的成本是真实账单吗?
A: 不是。它按官方价目对每笔用量发生时刻的峰谷档逐笔估算,推理 token 按输出价计入,与平台逐请求计费同口径,但仍是估算,最终以 DeepSeek 平台账单为准。
Q: 为什么累计 token 显示亿级甚至更高?
A: 与 DeepSeek 后台口径一致:每轮对话都会把上下文前缀按「缓存命中」价计费。1M 窗口下聊几十轮,累计命中 token 就会上亿——它们单价极低(¥0.025/M),面板副行的「缓存命中 N%」帮你区分便宜账与真实消耗。
Q: 数据会发到第三方吗?会写宿主吗?
A: 不会。全部统计在本机完成,数据来自宿主公开 seam(session.list 投影 + session.history RPC),不发起任何外网请求。宿主半只注册只读会话投影(dominantModel、sessionCost、tokenDays),零写入;浏览器侧只在 localStorage 记一次面板折叠状态。
Q: 怎么彻底关闭或卸载这个面板?
A: 关闭:在 profile 的 cordis.patch.yml 里追加 - id: board 行并设 disabled: true(支持 !!js 表达式),重启 profile 生效。卸载:dsh plugin --profile web remove dsh-board 并重启;浏览器侧的折叠状态键仍在 localStorage 里,可手动清除。
Q: 段位和成就是不是消耗更多 token 就能升级?会影响模型调用吗?
A: 段位只是按累计 token 量划的展示层(10 级会员卡),成就是数据驱动的徽章(连续打卡、单日峰值、累计会话数等)。它们都不影响任何模型调用、限额或计费,纯属激励展示。
Q: 是否依赖某个特定 DSH 版本?
A: 插件本体未声明 DSH 最低版本。但「推理 token 按输出价计入累计成本」需要宿主侧的 token-meter 修复(上游讨论见 deepseek-harness discussions/2338),旧宿主上每轮/分模型图表仍计入推理 token,仅累计总量与成本少算这一部分。
Q: 跟 dsh-balance-stats 这类余额插件冲突吗?
A: 不冲突。dsh-board 走宿主本地投影与历史 RPC、零外发零密钥;余额类插件通常需要向 api.deepseek.com 发请求并配 API key,两者职责互补,可同时安装。
上手难度
入门 — 安装重启后立即可用,不需要填任何配置;想关掉面板也只是一行 disabled: true,价格表改不改对绝大多数用户没影响。
已知问题与限制
- 推理 token 计费口径依赖宿主 token-meter 修复:未打补丁的旧 DSH 上,分模型/每轮图表仍把推理 token 当成单独字段计入,但累计总量与成本会少算这一部分(见
README.md:40) - 价格表是源码级常量(
src/pricing.ts):DeepSeek 官方价目变化后需要改源码并重新构建;插件未声明 DSH 最低版本,宿主过旧时部分投影字段可能缺失 - 浏览器侧仅在 web profile 注册:未启用 web profile 或仅用 headless / CLI 的 DSH 实例看不到面板
- 峰谷时段以北京时间计算:
isPeakHour直接用getUTCHours() + 8偏移判断,未考虑跨时区用户切换本地时区的场景,海外用户看到的「高峰」仍按北京时间切档 - 累计成本按「各会话最后一次活跃时刻的峰谷档」定价:插件用 session 投影累加,旧会话可能落在已过时的价表档位上,长期不活跃的会话显示的成本不会回溯重算
- 关闭面板需要在 profile 的
cordis.patch.yml里按插件 id(board)寻址,未暴露在 DSH 设置页内的可视开关
给 DeepSeek Harness(DSH) 的 侧栏用量与成本面板:把 DeepSeek 后台风格的用量统计装进 Web GUI 左下角。
特性
- 💰 计费估算:官方价目 + 2026-08-17 起北京时间峰谷自动切价(高峰 09:00–12:00、14:00–18:00,闲时半价);推理 token 按输出价计入;口径详见下文
- 🧠 1M 上下文:占用 %、剩余预算、系统/工具/消息构成堆叠条、子代理耗时
- 📈 可视化:每轮输入/输出走势、累计输出曲线、12 周日热力图、分模型统计、全局会话榜
- 🏆 「词勋」段位:十级谐音梗阶梯(🌱 未醒词芽 → 🧲 万词王 → ⚡ 万亿词神),会员卡式展示:进度条、解锁 ETA、每级权益
- 🔥 成就:连续打卡天数 + 9 枚数据驱动徽章
- 🎨 视觉:Geist 克制风、明暗主题适配、中英双语、零装饰动画
- 🖼 横版徽章:收起为菜单宽瓷砖(段位标签 + ¥ 花费 + 总 token + 今日本周);点击后徽章升到面板顶部展开,再点收起
安装
# npm(推荐)
dsh plugin --profile <profile> add [email protected]
# 或从 GitHub 直装
dsh plugin --profile <profile> add github:dfkai/[email protected]
装完重启该 profile(或新起 dsh --profile <profile>),左侧栏底部即可看到徽章。验证:
dsh --profile <profile> --dump-config # 应出现 # == dsh-board 层
harness 版本要求:推理 token 按输出价计入用量需要 harness 的 token-meter 修复。补丁已提交官方社区(discussions/2338,可合并分支
dfkai/deepseek-harness@fix/token-meter-reasoning-output)。旧 harness 上分模型/每轮图表仍会计入推理 token,但累计总量与成本会少算推理部分。
禁用与配置
插件层按 id: board 寻址,可用 patch 关闭或改配置。在你的 profile 的 cordis.patch.yml 里追加:
- id: board
disabled: true # 关闭本面板
disabled 支持 !!js 表达式,也可以按条件开关。价格表等常量为源码级配置(见下方计费口径),改价后重新构建。
计费口径
面板显示的是估算值,不是计费凭证,以 DeepSeek 平台账单为准。
标准价(¥ / 1M tokens,2026-08-15 抓取自官方价目):
| 模型 | 缓存命中 | 缓存未命中 | 输出 |
|---|---|---|---|
| deepseek-v4-pro | 0.025 | 3 | 6 |
| deepseek-v4-flash | 0.02 | 1 | 2 |
| deepseek-chat(旧) | 0.5 | 2 | 8 |
| deepseek-reasoner(旧) | 1 | 4 | 16 |
峰谷价(2026-08-17 00:00 北京时间生效,高峰 09:00–12:00、14:00–18:00,闲时为高峰一半):
| 模型 | 时段 | 缓存命中 | 缓存未命中 | 输出 |
|---|---|---|---|---|
| deepseek-v4-pro | 高峰 | 0.30 | 9.0 | 27 |
| 闲时 | 0.15 | 4.5 | 13.5 | |
| deepseek-v4-flash | 高峰 | 0.10 | 3.0 | 9 |
| 闲时 | 0.05 | 1.5 | 4.5 |
口径说明:
- 推理 token 按输出价计入(DeepSeek 官方计费口径),
reasoningTokens已并入输出 - 成本由宿主侧投影按每笔用量发生时刻的价目逐笔累加(与平台逐请求计费同口径);未取得投影的历史会话回落为按主导模型估算
- 未知模型回落当前时刻价表中默认模型的费率
数据与隐私
全部数据来自本机 DSH 的公开接口(session.list 投影 + session.history RPC)。插件不发起任何第三方网络请求,唯一持久化是浏览器 localStorage 里的面板折叠状态;宿主半仅注册一个只读会话投影(dominantModel),不写入任何数据。
FAQ
为什么总 token 是亿级?
账单口径与 DeepSeek 后台一致:每轮对话都会对上下文前缀按「缓存命中」价计费。1M 窗口的会话聊几十轮就会累计到亿级命中 token——它们单价极低(¥0.025/M),面板副行显示「缓存命中 N%」帮你区分便宜账与真实消耗。
成本准吗?
按官方价目逐笔估算(每笔用量按发生时刻的峰谷档计价、推理 token 已计入),与平台逐请求计费同口径,但仍非计费凭证,以 DeepSeek 平台账单为准。宿主半仅注册只读投影(dominantModel、sessionCost),无任何写入。
数据会外发吗?
不会。全部统计在本机完成,无任何网络外发请求。
开发
pnpm install
pnpm build # 构建 lib/
pnpm sync -- <profile 目录> # 同步到已安装副本,HMR 自动热刷
- 改
src/→ build → sync → 浏览器热更;只有改 manifest(package.json / cordis.patch.yml)才需要重装重启 - 无头验证(可选):
python3 -m playwright install chromium
python3 test/e2e.py # 徽章/面板挂载 + 控制台错误检查
python3 test/drive-turn.py '...' # 驱动真实对话读面板数值
架构
只依赖 DSH 公开 seam:
| 面 | 内容 |
|---|---|
宿主半 src/index.ts | 注册一个只读的 dominantModel 会话投影(让累计成本按真实模型计价);零写入、零外发 |
浏览器半 src/client/* | ctx.slots.inject('sidebar.footer.action', …) 注册横版徽章;数据 = session-list store 的 projectionValues + session.history RPC 折叠 |
构建 tsdown.config.ts | CJS 闭包工厂(window.__ModuleLoader__.load)+ 平台白名单 externals |
License
查看使用指南 →
该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。
收录徽章
[](https://deepseek-plugin.org/plugins/dfkai/dsh-board)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。