前言¶
用 DeepSeek Harness(DSH)做长会话时,模型调用会不断追加到本机会话日志里,但界面上通常只有上下文占用比例,看不到把这些 token 折成人民币大概是多少、钱主要花在缓存命中还是输出上。要去对账单或心里估数,往往得事后翻日志或靠经验猜。
dsh-cost-chip 是社区插件,在 DSH Web GUI 输入框下方、上下文百分比圆环旁挂一颗「花费药丸」,用本会机上的会话记录做汇总,并同步官方定价与法定节假日口径。下面按安装、界面能看什么、数字怎么来、可调项与注意事项说明。
这是什么¶
- 名称:dsh-cost-chip(npm 包名与仓库同名)
- 维护者:chenqianes
- 分类:admin-security(目录归类)
- 许可:MIT(
package.json与 README 一致) - 定位:A cost chip for DeepSeek Harness — 展示当前会话实际花费、按计费桶拆分、今日合计与 DeepSeek 余额;单价从官方定价页同步,每次调用按发生时生效的价表计价。
DSH 生态里能力多以插件形式挂载;插件目录站(如 SkillHub)与 DeepSeek / 幻方无官方从属关系,装插件前建议自行查看源码与许可证。
核心功能¶
界面上的药丸与弹层¶
药丸默认显示本会话今日花费(可配置,见下文)。点开弹层可见:
| 区域 | 内容 |
|---|---|
| 药丸 | 本会话今日花费(可切换显示模式) |
| 弹层「本会话」 | 该会话累计,并拆成「今日」与「之前」两行(按本地零点切分) |
| 弹层「成本构成」 | 对应药丸口径下的金额花在何处:缓存未命中 / 缓存命中 / 输出(金额 + 占比,悬停可看 token 数);同一口径下若用过多个模型会再列模型行 |
| 弹层「今日全部」 | 当天所有会话、所有工作区的花费与调用次数,并按工作区分列(最多 4 行,其余合并);当前工作区行前带 · |
| 弹层「余额」 | DeepSeek 账户余额:已登录走 DSH 账户服务;未登录则请求 GET https://api.deepseek.com/user/balance,60 秒缓存 |
README 说明:三个计费桶单价可差到约 50 倍,只显示总价难以判断优化方向,故单独列出成本构成。
药丸显示模式¶
环境变量 DSH_COST_CHIP_CHIP 控制药丸上的数字:
| 值 | 药丸显示 |
|---|---|
today(默认) |
本会话今日 |
total |
本会话累计 |
all |
今日全部(所有会话、所有工作区) |
弹层第一行「本会话」始终是累计;默认用「今日」是为跨天会话仍能看出当天花了多少。
数字从哪里来¶
本机会话日志(host 侧)¶
插件在 host 侧读取 DSH 持久化数据:$DSH_HOME/sessions/<workspace>/<session>/session.*.jsonl.zstd。
要点(来自 README):
- 日志为追加式多帧 zstd,需逐帧解压(
zlib.zstdDecompressSync);续读只解新增段,减轻轮询时对主线程的压力。 - 同一会话目录可能有多份日志(格式升级遗留);按「版本号 > mtime > 大小」取最新一份,避免读到空壳旧文件导致显示为 0。
- 每条
assistant/message带data.usage(inputTokens/cacheReadTokens/cacheWriteTokens/outputTokens)与data.message.source(provider,model),按每次调用当时的模型计价;inputTokens仅表示缓存未命中部分,不会把命中 token 再按全价计一遍。 - 累计 / 今日 / 之前与按工作区拆分在同一遍遍历中完成;仅当天有写入的文件会进入读缓存失效逻辑。
工作区展示名取自会话头里的 cwd,而非 $DSH_HOME/sessions 下有损编码的目录键。
单价与峰谷、法定节假日¶
- 启动及之后每 12 小时抓取官方定价页
https://api-docs.deepseek.com/zh-cn/quick_start/pricing/,解析逐模型峰谷两套价、高峰时段文案、旧模型别名等。 - 法定节假日:内置
lib/holidays-data.js(2025–2026)快照;可从默认镜像timor.tech按年刷新(7 天缓存);DSH_COST_CHIP_HOLIDAYS可手工叠加,优先级最高。 - 价表变更写入
$DSH_HOME/dsh-cost-chip.pricing.json时间线(最多 24 条);每条调用按发生时刻对应的价表计价,官方调价不会重写历史金额。可用DSH_COST_CHIP_PRICING_EFFECTIVE_FROM校准最新调价生效时刻。 - 同步失败时不换价表,沿用上次成功结果;从未同步成功时才用内置兜底表并标注「内置价表」。
安装与启用¶
插件按 profile 安装,该 profile 下所有会话生效。桌面端常用 desktop;命令行 dsh web 使用 web profile。
从 npm 安装(README 推荐):
dsh plugin --profile desktop add dsh-cost-chip
装完后重启 DSH(bundle 列表在启动时读取)。卸载:
dsh plugin --profile desktop remove dsh-cost-chip
dsh plugin 透传 profile 内的 pnpm add dsh-cost-chip 并写入 dsh.profile.bundles。包无第三方 npm 依赖。
环境要求¶
- DSH 需具备
webServer/slots/locale服务(桌面端与dsh web均满足)。 - Node ≥ 22.15:会话 zstd 解压依赖
zlib.zstdDecompressSync(README 写明;桌面端自带运行时通常无需自管,CLI 跑dsh web且系统 Node 过旧可能失败)。
典型用法与配置¶
安装并重启后,在 Web GUI 输入框下方即可看到花费药丸,点击查看弹层,无需额外命令。
常用环境变量(节选,完整表见 README):
| 环境变量 | 默认 | 作用 |
|---|---|---|
DSH_COST_CHIP_CHIP |
today |
药丸显示:today / total / all |
DSH_COST_CHIP_PRICING_URL |
官方定价页 | 更换价格来源 |
DSH_COST_CHIP_PRICING_EFFECTIVE_FROM |
空 | 校准最新调价生效时刻 |
DSH_COST_CHIP_HOLIDAYS |
空 | 逗号分隔 YYYY-MM-DD,叠加法定假日 |
DSH_COST_CHIP_HOLIDAYS_URL |
https://timor.tech/api/holiday/year/{year} |
放假日历镜像 |
DSH_COST_CHIP_BASE_URL |
https://api.deepseek.com |
余额接口基址 |
DSH_COST_CHIP_SESSIONS_ROOT |
$DSH_HOME/sessions |
会话日志根目录 |
缓存文件:$DSH_HOME/dsh-cost-chip.pricing.json、$DSH_HOME/dsh-cost-chip.holidays.json;删除后可强制重新拉取。
调价生效时刻示例(README,PowerShell 语法;Linux/macOS 可设同名环境变量):
$env:DSH_COST_CHIP_PRICING_EFFECTIVE_FROM = '2026-10-01T00:00:00+08:00'
适用场景与注意¶
适合:长期在 DSH 里做 Agent / 对话开发、希望实时对照本会话与今日花费、区分缓存与输出成本、并顺带查看余额的用户。
注意:
- 插件以当前 DSH 进程权限读本机
$DSH_HOME下会话与缓存;对话正文不读取、不上传,汇总不出本机(除定价页、放假日历镜像、余额接口等 README 列明的对外请求)。 - 未登录查余额时可能使用
$DSH_HOME/.credentials.yaml中的DEEPSEEK_API_KEY请求api.deepseek.com。 - 安装前请阅读仓库源码与 MIT 许可证;admin-security 分类表示涉及账户与本地敏感路径,请自行评估是否纳入工作流。
- 修改
lib/index.js(host)需重启;lib/client.js支持热更。
结尾¶
dsh-cost-chip 把「花了多少钱、花在哪、今天一共多少、账户还剩多少」收到上下文环旁的一颗药丸里,计价跟官方页与节假日规则走,历史调用不被事后改价表重写。需要插件详情或 issue 可走目录页与 GitHub:
- 目录页:https://www.skillhub.cn/plugins/chenqianes/dsh-cost-chip
- 仓库:https://github.com/chenqianes/dsh-cost-chip