編集者注

dshworks/dsh-meter

The DeepSeek time-of-use meter for dsh: what this session cost, which tariff is running, when it flips, and the balance behind it — one line under the composer

これは DeepSeek Harness(DSH)プラグインです。当サイトは GitHub README、インストール情報、メンテナンス状況、公開セキュリティシグナルをまとめています。

dsh-meter

English | 中文

DeepSeek 开始按时段计价了,这是配套的电表。

每天两段高峰,空闲时段半价。花费不再是事后翻账本才看的数字,而是你此刻正站在里面的费率

输入框下面一行:这个会话花了多少、当前是哪一档、还有多久换档。悬停展开卡片,里面是时段表、缓存的经济账,以及账户余额。

ci powered by dsh license: MIT

输入框下方的计价行与展开的卡片:会话总价、时段表、缓存与输入拆解、账户余额

安装

dsh plugin --profile web add @dshworks/dsh-meter
dsh --profile web

dsh plugin 转发给 pnpm,因此 PATH 里要有 pnpm。除此之外无需配置:会话产生第一次计费请求后,计价行就会出现在输入框下方。

那一行

2 turns · 2 steps | LLM 3.1s | TTFT avg 1.3s · 41 tok/s | Cache hit 50% | Input 44.3K tok
                    ¥0.0672  |  peak  |  off-peak in 48m

上面是 dsh 自带的统计行,原样保留;下面才是本插件。它新增一行,而不是抢占官方那一格——想在官方统计行里追加内容,只能用同 id 更低 priority 把它顶掉,那样每次上游改动都会跟着坏。

悬停或聚焦展开卡片。处在高峰时段时,档位用琥珀色标出,倒计时指向下一个空闲时段:

暗色主题下处于高峰时段的同一张卡片
卡片里有什么为什么值得占这个位置
会话总价、请求数、模型这个数字只出现一次,用最大的字号
24 小时时段条,按你所在时区绘制,带实时游标官方按 UTC 公布高峰窗口。深夜心算时区不如直接看一条
缓存命中 / 未命中输入 / 输出,各自的 token 与金额命中价只有未命中的 1/50。这一行能看出前缀是否稳定
账户余额,以及其中多少是赠送额度赠送额度会过期,充值余额不会
同样的 token 换到另一档要多少钱调价前:看新价会让这个会话变成什么样;调价后:看等到空闲时段能省多少
缓存省下了多少把每一次命中都按未命中重算出来的对照值

验证

2026-08-15 对 dsh 0.1.0-rc.6 做过真实验证,DeepSeek-V4-Pro 真实会话,不是 mock:

结论怎么验的
能在标准 web profile 里加载dsh --profile web --dump-config 能列出;/plugins/dsh-meter/client.js 返回 200
读数正确v4-pro 统一价下 22.2K 未命中输入 = ¥0.0665;那一行与卡片同 dsh 自己的 token 统计一致
重启后仍在重启服务、冷启动重开会话,投影从持久日志重放出同一个数
两种主题、两种档位亮色/暗色、统一价/高峰,见上图
币种自动识别真实账号返回 {"currency":"cny", ...},整个界面无需配置直接切到 ¥
47 个测试,CI 绿pnpm test — 折叠逻辑、时段时钟、价目表、余额读取,外加生成产物的同步校验

两种货币,不做换算

DeepSeek 公布的是两张互相独立的价目表——国际站按美元,中国站按人民币。一个账号只按其中一张计费,两张表也不是彼此的汇率换算,所以用汇率去折算的插件会错两次。

dsh-meter 两张表都算,然后让账号自己决定用哪张。GET /user/balance 会返回该账号的计价币种(真实账号会同时列出两行,只有一行有余额),插件读有余额的那一行并按它显示。不需要配置,也不靠界面语言去猜。

余额请求跑在宿主侧,用的是 LLM adapter 同一套凭据接口;浏览器通过 GET /dsh-meter/balance 只拿到解析好的数字,拿不到 key。它只在计价行挂载和你展开卡片时发出,不做轮询——设 balance: false 可以整个关掉,计价功能不受影响。

价目表

原样写在 lib/core.js 里,单位为每百万 tokens。

缓存命中缓存未命中输出
v4-flash 统一价 (至 UTC 8/16 16:00)$0.0028 / ¥0.02$0.14 / ¥1$0.28 / ¥2
v4-flash 空闲$0.007 / ¥0.05$0.22 / ¥1.5$0.66 / ¥4.5
v4-flash 高峰$0.014 / ¥0.10$0.44 / ¥3$1.32 / ¥9
v4-pro 统一价 (至 UTC 8/16 16:00)$0.003625 / ¥0.025$0.435 / ¥3$0.87 / ¥6
v4-pro 空闲$0.022 / ¥0.15$0.66 / ¥4.5$1.98 / ¥13.5
v4-pro 高峰$0.044 / ¥0.30$1.32 / ¥9$3.96 / ¥27

高峰为 UTC 01:00–04:00 与 06:00–10:00(北京时间 09:00–12:00、14:00–18:00)。其余时间都是空闲时段,包括两个窗口之间那两小时。空闲价正好是高峰价的一半——但仍高于它取代的统一价,输出约为 2.4 倍。

来源:https://api-docs.deepseek.com/quick_start/pricing,抓取于 2026-08-13。

钱是怎么算出来的

行为细节
数据来源持久会话日志里由供应商上报的 token 数。不采样,不推测
每次请求的档位发出时刻(step/start)判定,而不是按回答结束的时刻。UTC 00:59 发出的请求即使流式输出跨进高峰窗口,仍按空闲价计;跨档会话的两侧各按各的档位算
计费桶inputTokens 按未命中价,cacheReadTokens 按命中价,outputTokens 按输出价。dsh 上报的是互不重叠的三个数(DeepSeek adapter 会从 prompt_tokens 里减掉命中部分),推理 token 已包含在输出里
缓存写入并入未命中桶。DeepSeek 没有单独的写入价,首次进入缓存的 prompt 按未命中计;DeepSeek adapter 也从不上报这一项
失败的请求某一步的 usage chunk 即使请求随后失败也会计入;最终 message 会替换这个样本而不是叠加,模型名与请求头不一致时同样如此
未知模型只计数、只列名,绝不定价。没有公开价格的模型贡献 token 与请求数、金额为零,卡片会明说
持久性一个会话投影(costMeter),从日志折叠而来。翻页、压缩、刷新、重启服务都不影响,走标准投影缓存

对模型的影响

没有。dsh-meter 不加工具、不加系统提示、不加消息、不发模型请求,完全不碰请求本身。花费是付钱的人该看的东西,不该占 agent 的上下文。

KV 缓存影响

无——本插件从不参与请求。

配置

以下都是校验过的配置项,写在 profile 的 cordis.patch.yml 里:

- id: dsh-meter
  config:
    currency: cny        # 固定价目表,不再自动识别
    balance: false       # 完全不调用 /user/balance
默认值含义
currencyauto显示哪张价目表:auto(先看账号余额币种,再退到界面语言)、usdcny
balancetrue是否把账户余额提供给 Web UI
apiKeyEnvDEEPSEEK_API_KEY存放 API key 的凭据引用
baseUrlhttps://api.deepseek.com读取余额的接口来源
balanceTtlMs300000展开卡片时重新拉取余额的最小间隔
balanceTimeoutMs4000单次余额请求的超时

开发

pnpm install
pnpm test                        # 先校验产物同步,再跑 vitest
node scripts/build-client.mjs    # 改完 core/ui 后重新生成 lib/client.js

lib/core.js 是价目表、时段时钟和折叠逻辑,lib/balance.js 是账户读取,src/ui.js 是浏览器界面。scripts/build-client.mjs 把 core 与 ui 内联成 dsh 实际分发的 lib/client.js——价目表因此只存在于一个文件里,产物一旦与源码不同步 pnpm test 就会失败。

已知限制

  • 这是估算,不是账单。 官方价目乘以上报 token。优惠价格、以及任何挡在 API 前面的中转都看不到。
  • 档位按发出时间戳判定,用的是 dsh 这台机器的时钟。若 DeepSeek 实际在档位边界另一侧收到请求,可能差出一两秒。
  • 非 DeepSeek 线路不定价。 它们的 token 会被计数、模型会被列名,但卡片会标为未定价,而不是把 DeepSeek 的价格悄悄套到别人家的 API 上。
  • 价目表是编译进去的。 DeepSeek 会调价;本插件带的是 2026-08-13 的快照,跟进需要发新版本。
  • 只有 Web。 投影本身任何界面都能读,但读数是为 Web UI 做的,没有 TUI 版本。

参考与致谢

dsh 插件登记处已经收录了约 50 个花费/用量插件,其中不少就出现在 DeepSeek 公布调价日期的那一周,读它们的实现影响了这一版的取舍。缓存节省的表述来自 deepseek-cli 的本地用量账本。

许可

MIT

REPOSITORY SIGNALS

セキュリティとインストールエビデンス

このスコアは公開リポジトリメタデータと当サイトに登録されたインストールエビデンスのみに基づくもので、コードセキュリティ監査とは異なります。

出所の追跡可能性

公開プラグインカタログから取得し、公開 GitHub リポジトリにリンクしています。

ライセンス

リポジトリは MIT ライセンスを宣言しています。

メンテナンス活動

過去180日以内にコードの更新があります。

インストールエビデンス

再現可能な正確なインストールメタデータはまだ登録されていません。リポジトリの説明に従って手動で確認してください。

インストールライフサイクルスクリプト

確認したパッケージメタデータにインストールライフサイクルスクリプトは宣言されていません。