前言¶
DSH 把每一次模型调用的 usage 都写进了会话日志,日志是 session.v4.jsonl.zstd,落在
~/Library/Application Support/DeepWhale Desktop/dsh-home/sessions 下,按工作区与会话分目录。
想算清这段时间花了多少钱,传统做法是自己拼一条管道:zstd -dc 解压、再用 jq 把 usage
捞出来、按时间窗聚合、再套定价表换算。日志一多,这一步基本没人会去做。
下面介绍的 feely0208/dsh-token-cost 把这件事做完了:插件读本机日志,把 token 用量和花费
做成侧栏面板,当期花费、缓存节省、模型与会话排行、预算进度都能直接看到,还能导出 CSV / JSON。
先说清楚一点:金额是本机估算,不是官方账单——按本机日志里逐次调用的 usage 与 DeepSeek
官方定价页快照计算,不含平台赠送额度、优惠和汇率波动。
这是什么¶
插件名是 @deepwhale-cn/dsh-token-cost,仓库 feely0208/dsh-token-cost,维护者 feely0208,
作者署名是温州深鲸智能科技有限公司,许可证 MIT。当前版本 0.1.1,包声明满足的宿主范围是
dsh >=0.1.0-rc.6 <0.3.0、node >=18。
定位一句话:把 DSH 会话日志里的 token usage 变成侧栏里的花费视图,只读本机数据,不联网、
不上传。它同时给出按模型和按会话的排行,让「钱花在哪」这个问题有可回溯的答案,而不是
只能看账单总数。
面板里有什么¶
| 区块 | 内容 |
|---|---|
| 四个窗口 | 今日 / 近 7 天 / 近 30 天 / 本月(按本地自然日,本月按本地 1 日起) |
| 概览 | 花费(美元 + 人民币)、缓存命中节省、缓存命中率、调用次数 / token 总量 |
| 预算进度 | 本月花费对比预算,进度条 + 剩余;预算只存在本机浏览器 localStorage |
| 日趋势 | 近 30 天每日花费柱状图(悬停看当天金额 / 次数 / token) |
| 按模型 | 按金额排序,含服务商;第三方模型标「未知价」不计入金额 |
| 按会话 | 前 20 个最贵会话,带工作目录、token 量、是否子代理 |
| 导出 | CSV(按日 / 会话 / 模型)与 JSON(含汇总与明细),只含本机统计 |
预算这一项值得单独说一句:预算数字只存在浏览器 localStorage 里,不改任何配置文件,也不会
同步到别处。想设默认预算,用环境变量 DSH_TOKEN_COST_BUDGET。
安装与启用¶
安装命令来自 README 原文:
dsh plugin --profile web add @deepwhale-cn/dsh-token-cost
装好后侧栏会多一个「Token 花费」图标,点开就是上面的面板。
前置条件只有一个:系统里有 zstd 可执行文件。没有它读不了 .zstd 日志。macOS 可以
brew install zstd;插件默认会找 /opt/homebrew/bin/zstd、/usr/local/bin/zstd,也走 PATH,
不新增任何 npm 依赖。
数据从哪来¶
下面是默认路径与目录结构,只读,不修改、不删除、不移动任何日志:
~/Library/Application Support/DeepWhale Desktop/dsh-home/sessions/--<workspace>--/<sessionId>/session.v4.jsonl.zstd
日志是 zstd 多帧、追加写入。插件从中读取两类事件(README 注明 2026-10-29 用真实日志核过):
assistant/message:取data.usage { inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens, totalTokens },模型与服务商在data.message.source。compaction/summary:取data.usage,服务商和模型在data.provider/data.model。
解析全部在本机进程内完成,不联网、不上传;导出文件也不会离开本机。可用环境变量:
| 变量 | 作用 |
|---|---|
DSH_SESSIONS_DIR |
覆盖会话日志根目录 |
DSH_ZSTD_BIN |
指定 zstd 可执行文件路径 |
DSH_TOKEN_COST_USD_CNY |
美元→人民币汇率(默认 7.2) |
DSH_TOKEN_COST_BUDGET |
默认月度预算;≤1000 视为美元,否则视为人民币 |
价格口径¶
价格快照取自 2026-10-29 的 DeepSeek 官方定价页,单位是美元 / 百万 tokens:
| 模型 | 输入(缓存命中) | 输入(缓存未命中) | 输出 |
|---|---|---|---|
deepseek-flash(V4.1-Flash-1017)峰时 |
$0.006 | $0.30 | $1.20 |
deepseek-flash 闲时 |
$0.003 | $0.15 | $0.60 |
deepseek-v4-pro 峰时 |
$0.044 | $1.32 | $3.96 |
deepseek-v4-pro 闲时 |
$0.022 | $0.66 | $1.98 |
计算规则:
- 闲时价是峰时的一半;峰时 = 周一至周五
01:00–04:00、06:00–10:00UTC,其余(含周末)为闲时。 - 每条调用按发生时刻逐条判断峰 / 闲,再按三档累加。
- 缓存节省 = 命中 token ×(未命中价 − 命中价)。
- 旧名
deepseek-v4-flash/deepseek-v4-flash-vision-exp按官方注释归到 Flash 价格。 - 只有
deepseek-official/deepseek-account两个服务商按官方价计;其它网关(例如agnes)标「未知价」,只统计 token、不计金额,并单独提示。 - 未扣除中国法定节假日(官方节假日全天按闲时),所以法定节假日会按峰时多算,属于偏保守估算。
- 官方保留调价权利,插件只是某一时刻的快照,不构成账单。
验证与发布前检查¶
README 给出的验证命令:
node --check lib/index.js # 以及 lib/*.js、tests/*.mjs
node scripts/preflight-client.mjs . # 客户端 bundle 预检(模拟宿主加载/激活/渲染)
node tests/smoke.mjs # 定价 + zstd 多帧假日志端到端
node tests/http.mjs # HTTP 出口
node tests/client-render.mjs # 用真实形状的报告渲染面板,抓渲染期异常
其中 preflight-client.mjs 是白屏事故后的强制关卡:任一客户端插件 entry 激活失败,宿主整页
会显示「Failed to load plugins」。package.json 里 prepublishOnly 也指向同一个脚本,所以
发布前必须跑。
适用场景与注意¶
适合这几类人:想知道「这两天到底花了多少、花在哪个模型和哪个会话上」的 DSH 使用者;想盯
本月预算的;想验证缓存命中到底省了多少的人。对只想看官方账单的人来说,面板里的金额不够
精确,直接用 DeepSeek 后台账单更合适。
注意事项:
- 插件以当前 dsh 进程的权限运行,会读本机会话日志目录。安装前应当先检查源码与许可证(MIT)。
- 日志格式是 DSH 的内部格式,未来版本若改结构,插件会显示「没有数据」而不是猜测。
- 已知盲区:会话标题生成、Search & Fetch 等不在会话日志 usage 里的调用不会计入;平台赠送余额、
限时折扣、汇率波动也不在口径里。
结尾¶
这个插件的价值不在于让计费更精确,而在于让本机已有的日志产出一个能日常看一眼的视图:
当期花了多少、缓存省了多少、钱花在哪个会话上。数据全程留在本机,导出与否由使用者自己点。
目录页:https://www.skillhub.cn/plugins/feely0208/dsh-token-cost
GitHub:https://github.com/feely0208/dsh-token-cost