前言¶
DeepSeek Harness(下文简称 DSH)的核心理念是「一切皆插件」:模型、工具、会话、UI 都由插件组合而成,开发者不必改框架源码就能扩展能力。官方仓库见 deepseek-ai/deepseek-harness。社区里也有独立的插件目录站点,用来检索、安装第三方插件;该目录与 DeepSeek / 幻方没有官方从属关系,不是官方应用商店。
日常用 DSH 跑长对话时,一个很具体的问题会反复出现:当前会话已经占了多少上下文、这一轮大概花了多少钱、今天和这个月一共用了多少 token。DSH 本身提供了 token 计量与会话投影等底层服务,但默认界面并不把这些数字常驻在眼前。社区插件 dsh-token-panel 做的事情很直接:在 Web UI 右下角挂一块可拖拽的 Token 仪表盘,把会话压力、分模型花费和按日/按月用量摊开。
本文依据插件目录页与 GitHub 仓库 README、package.json、cordis.patch.yml、CHANGELOG 交叉核对后整理,版本以仓库当前发布的 0.4.7 为准。
这是什么¶
dsh-token-panel 是一款面向 DSH 的会话与消息类插件,由 juhe291 维护,许可证为 MIT,主要语言是 TypeScript,客户端平台声明为 web。GitHub 仓库当前为 7 星(以仓库页面为准;目录页收录时显示为 6 星)。
一句话定位:右下角常驻一块 Token HUD。它读取 DSH 的 tokenMeter、sessionProjections、会话标题等服务,把「此刻占了多少上下文」和「历史上累计用了多少」分开展示,并按 DeepSeek 官方价表做花费估算;预算和余额可以在面板上直接改,用量按天落到本地文件里。
仓库创建于 2026-08-14,最近一次推送约在 2026-08-17。插件目录页的收录说明与仓库 README 对核心能力的描述一致:实时会话压力、会话花费、历史曲线、按日/按月统计,面板跟随当前对话,可拖拽并自定义默认位置。
核心功能¶
右下角先出现一枚迷你胶囊,显示总 Token 压力;点击后展开为 实时 / 统计 双视图。配色跟随 DSH 浅色 / 深色主题。面板默认只跟当前打开的对话走,空会话(0 token)不显示,历史会话收在「展开全部」后面。
实时视图¶
- 每个会话一行:标题、当前上下文压力(k 单位)、累计消耗(灰色
≈小字,M 单位,含缓存读)、该会话估算花费(绿色¥)。标题来自 DSH 的会话标题服务。 - 点开会话行可以看到输入 / 输出 / 缓存读 / 缓存写、压力 / 预计 / 容量、估算成本和上下文占用进度条;占用超过 85% 时进度条变红。
- 每会话有独立的 SVG 面积曲线,支持 2 分钟 / 5 分钟 / 15 分钟窗口;曲线带自动 Y 轴刻度、时间刻度和悬停气泡。曲线下方有时间拖动条,可以回看缓冲区里更早的一段。
- 窗口内峰值消耗速率(t/s)显示在曲线区顶部;胶囊和底部栏还会显示生成速度 TPS。
- 实时曲线是滚动内存窗口(约 600 个点,对应大约 15 分钟),重启后清零。长期趋势要看统计视图。
这里有一个容易看错的口径,仓库 README 写得很明确:实时主数字是当前上下文压力(此刻占用,通常是几十万级,k 单位);统计视图的按日 / 按月是历史累计消耗(输入 + 输出 + 缓存读全部累加,缓存读往往最大,单日可能到上亿,M 单位)。看到「实时 400k / 统计 100M」并不表示面板算错了,两个量本来就不是一回事。会话行上的 ≈ 小字才和统计口径一致。
统计视图¶
- 顶部一行汇总累计 token 与估算成本。
- 「按日 / 按月」切换粒度,趋势曲线加明细列表;明细默认收起,点「展开全部」再展开。
- 本月预算和账户余额可以点击后行内编辑(回车保存,Esc 取消)。预算会显示本月已用 / 总额进度条,超支变红。余额随 token 消耗在本地按估算递减;未手动设置时,回退到通过 API 拉取的官网余额(5 分钟缓存)。
- 数据按天写成 JSONL,默认目录是
~/.dsh/cache/dsh-token-panel/,重启后续接,不丢不重。
成本估算¶
花费不是拍脑袋算的,而是按模型分桶:内置 deepseek-v4-flash 与 deepseek-v4-pro 两套价表,缓存命中、未命中输入、输出分开计费。混用过模型的会话不会整段套同一个价。
默认 priceMode 为 auto:2026-08-17 零时(北京时间)之前用原来的 flat 价,之后自动切到 DeepSeek 官方峰谷价(高峰 9–12、14–18 点)。面板底部徽章会显示「标准价 / 高峰价 / 空闲价」。仓库明确写了:这些数字只作展示参考,账单以 DeepSeek 开放平台 为准。
面板交互¶
三种手势互不抢:
- 单击胶囊打开面板。
- 按住胶囊或面板头部拖动;允许拖出屏幕边缘,但会留一条头部栏,方便抓回来。位置会记住,刷新不丢。
- 长按约 0.6 秒弹出位置菜单:四角预设、自定义默认位置,以及隐藏整个 HUD。隐藏后可在 DSH 设置里把
hidden关掉再显示,不必卸载插件。
安装与启用¶
插件目录页给出的安装命令如下,在 DSH 终端里运行即可:
dsh plugin add github:juhe291/dsh-token-panel
目录页同时提示:如需可复现安装,应固定 commit 哈希:
dsh plugin add github:juhe291/dsh-token-panel#<commit>
仓库 README 写得更细。它建议装到 web profile,并推荐从 npm 安装精确版本(当前文档写的是 0.4.7),这样直接用打包好的 lib/,本机不用构建:
dsh plugin --profile web add dsh-token-panel@0.4.7
从 GitHub 安装则是:
dsh plugin --profile web add github:juhe291/dsh-token-panel
本地路径安装(把路径换成自己的检出目录):
dsh plugin --profile web add /path/to/dsh-token-panel
装完后需要重启 profile,再刷新浏览器,右下角应出现 TOKEN 胶囊。
卸载:
dsh plugin --profile web remove dsh-token-panel
几点安装侧的限制,都来自仓库说明,不要略过:
- 若终端提示找不到
dsh,需要先安装 CLI:npm install -g @deepseek-ai/dsh,然后重开终端。 - 从 GitHub / 本地安装时,pnpm ≥ 10 可能拦截 Git 依赖的
prepare脚本,报ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED。按报错把allowBuilds条目写进该 profile 的pnpm-workspace.yaml后再跑一次安装。这是 pnpm 的安全机制,等于允许这段代码在安装阶段、在 agent 沙箱之外执行。 - 源码安装会跑构建,仓库写明需要 Node ≥ 22.5;Node 20 会失败。npm 安装不走这条路径。
- 新发布的 npm 包大约 24 小时内可能被 DSH 的供应链年龄校验拦住,
@latest有可能解析到旧版,所以 README 要求写精确版本号。同一原因下,刚发布时dsh plugin remove也可能失败,仓库附带了scripts/uninstall.mjs作为备用卸载方式。
典型用法¶
安装并刷新页面后,按仓库给出的操作顺序即可:
- 单击右下角胶囊展开面板。
- 用头部的「实时 | 统计」切换视图,点「✕」收起(收起后位置保持不变)。
- 实时视图里点会话行看详情和曲线;用 2m / 5m / 15m 切换窗口,用下方拖动条回看缓冲区。
- 统计视图里切换「按日 / 按月」,点预算或余额数值直接改;不设余额时显示 API 拉到的官网余额。
- 需要看历史会话时点「展开全部」。不想看见这块 HUD 时,长按菜单选「隐藏 HUD」,或在 DSH 设置里打开隐藏开关。
需要改计价或轮询间隔时,编辑 profile 里的 cordis.patch.yml(或 settings.yaml 的插件分节)。仓库给出的默认配置如下,字段含义以 README 为准:
- id: token-panel
name: dsh-token-panel
config:
pollInterval: 1500 # 浏览器实时轮询间隔 (ms)
priceMode: auto # auto / flat / peak-offpeak
pricePerMInput: 1 # 未命中输入,CNY / 百万 token
pricePerMCacheRead: 0.02 # 缓存命中
pricePerMOutput: 2 # 输出
budgetMonthly: 0 # 月预算 (CNY),0 表示关闭
hidden: false
# dataDir: ~/.dsh/cache/dsh-token-panel
priceMode: auto 会在 2026-08-17 零时自动从 flat 切到峰谷价,一般不用改。其他模型或供应商需要自己补 modelPrices。budgetMonthly 也可以不改配置,直接在统计视图里点数值设置。
用量日志默认长这样:
~/.dsh/cache/dsh-token-panel/
├── usage-2026-08-14.jsonl # 每日增量:输入/输出/缓存读/缓存写/模型
├── state.json # 上次用量基线,重启续接
└── known-sessions.json # 会话注册表,历史会话「展开全部」不丢
实现上分成两面:Host 侧聚合 ctx.tokenMeter.measure()、ctx.sessionProjections.snapshot()、ctx.sessionTitle.get(),并注册 /plugins/dsh-token-panel/snapshot、/stats、/balance 三条路由;Client 侧把面板挂到页面右下角,约 1.5 秒轮询实时数据、10 秒轮询统计、60 秒轮询余额。界面语言跟随 DSH 的中英文设置。
适用场景与注意事项¶
比较适合这几类用法:长时间挂着 DSH Web UI 写代码或跑 agent、需要同时盯上下文是否接近上限、以及想按天/按月看用量和估算花费。peer 依赖声明对准的是 DSH 0.1.0-rc.6 一带的客户端与 session / token-meter 服务,平台是 web,不要指望它出现在纯终端 profile 里。
使用时注意这几件事:
- 数字口径:压力(实时)和累计消耗(统计)不要横着比。缓存读会计入累计,所以统计数字会大很多。
- 花费是估算:按内置官方价表分级计算,不含折扣、赠送等账单项。余额若是你点进去手填的,之后按本地估算递减,和官网对不上时重新输入一次即可校准。
- 实时曲线不持久:只有大约 15 分钟的内存窗口;要留历史,看统计视图和磁盘上的 JSONL。
- 权限与供应链:插件以当前 dsh 进程的权限运行,安装时可能执行代码。目录页和官方插件文档都要求:安装前检查源码仓库和许可证;只对信任的包打开
allowBuilds;生产环境尽量固定 commit,避免后续 push 悄悄改掉实际运行的内容。
小结¶
dsh-token-panel 把 DSH 已有的 token 计量摊到右下角:当前压力、分模型花费、按日按月用量、可编辑预算,一块可拖拽的 HUD 就能看完。它是 juhe291 维护的 MIT 开源插件,不是 DeepSeek 官方组件;社区目录只负责收录和给出安装入口。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-token-panel/
GitHub:https://github.com/juhe291/dsh-token-panel