bobcat848/dsh-calculator
Calculate the real-time cost of DeepSeek API calls made by DeepSeek Harness.
Listed
4
Usage
Bundle verified
Preview
What it does
DeepSeek API spend (current session and all sessions) and account balance in the aside panel, with official pricing and peak/off-peak support.
Best for
- DSH users who want current-session and daily DeepSeek API cost visibility alongside account balance.
- Workflows that need official DeepSeek pricing with Beijing peak/off-peak calculations and per-model breakdowns.
Not ideal for
- Cost tracking for third-party providers or models, which are listed as unbilled.
- Accounting that must exactly reconcile with official invoices; displayed costs are estimates and may differ, especially with cached tokens.
- Older DSH layouts without the shell.overlay slot; v1.2.0+ targets compatible newer layouts.
README
dsh-calculator
A DeepSeek Harness (DSH) web plugin that shows your DeepSeek API spend and account balance in a top-right floating card of the DSH web GUI (collapsible to a pill).
- 当前会话费用 — the cost of the session you are looking at (per model)
- 当天全部会话累计 — today’s total spend across all sessions (per model, in your local timezone; resets at local midnight)
- 胶囊实时费用 — the collapsed pill shows today’s total spend live
-
账户余额 — live balance from the DeepSeek API (
GET /user/balance) -
第三方模型不计费 — only
deepseek-officialroutes are billed; any other provider/model is listed as unbilled - 峰谷计价 — prices events by the Beijing peak/off-peak schedule (peak 09:00–12:00 & 14:00–18:00, off-peak = half price); events before 2026-08-17 are still billed at the then-current flat rates
-
中英文界面 — the panel follows your browser language (
zh/en)
安装
DSH is a Cordis application. The plugin has a host half (event accounting +
balance fetching) and a browser half (top-right overlay card). Install it into
the web profile:
一条命令在线安装(推荐,无需克隆仓库)
直接在你的机器上执行(脚本会从 GitHub 下载插件文件并完成安装):
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/bobcat848/dsh-calculator/main/install.sh | bash
# Windows PowerShell
irm https://raw.githubusercontent.com/bobcat848/dsh-calculator/main/install.ps1 | iex
本地克隆安装
或者克隆仓库后运行脚本(安装脚本会自动识别本地模式,从仓库内复制文件):
git clone https://github.com/bobcat848/dsh-calculator.git
cd dsh-calculator
# macOS / Linux
bash install.sh
# Windows PowerShell
.\install.ps1
两种方式等价:都会把插件装进
~/.dsh/profiles/node_modules/dsh-calculator 并在
~/.dsh/profiles/web/cordis.patch.yml 追加 loader 行(幂等:重复执行安全,
已有行不会重复添加)。
手动安装
# 1. copy the package into the profile's hoisted node_modules
mkdir -p ~/.dsh/profiles/node_modules/dsh-calculator
cp -r lib package.json ~/.dsh/profiles/node_modules/dsh-calculator/
# 2. append the loader row to the web profile patch (once)
# edit ~/.dsh/profiles/web/cordis.patch.yml and add:
# - insert:
# - id: dsh-calculator
# name: 'dsh-calculator'
# config: {}
重启生效
Plugins are discovered at boot, so restart DSH web after installing
(cordis.patch.yml 改动也会被 DSH 的用户层 HMR 热更新,通常无需重启):
dsh web --port 3080
Open (or refresh) http://127.0.0.1:3080, and you should see the
DeepSeek API 费用 card in the top-right corner; click × to collapse it
into a pill, click the pill to expand it again.
v1.2.0 适配说明:DSH
0.1.0-rc.6的布局不再提供aside插槽(右侧栏), 浏览器半改为注入框架级shell.overlay插槽(右上角浮层卡片),并移除了 不存在的ctx.layout.closeAside()。host 半(记账 + 余额端点/dsh-calculator)保持不变。
配置
The plugin needs no configuration beyond your DeepSeek API key, which DSH
already stores through its credentials service (the Models page writes it to
~/.dsh/.credentials.yaml as DEEPSEEK_API_KEY, or you can export it in the
launching environment). The balance feature reads that same credential.
If the key is missing, the balance card shows a friendly error and the cost panel keeps working.
计价口径
Rates are the official DeepSeek prices (CNY per 1M tokens). Since 2026-08-17 the peak/off-peak schedule applies (peak 09:00–12:00 & 14:00–18:00 Beijing; off-peak = half the peak price):
| 模型 | 缓存命中输入(高峰/半价) | 缓存未命中输入(高峰/半价) | 输出(高峰/半价) |
|---|---|---|---|
| deepseek-v4-flash | ¥0.10 / ¥0.05 | ¥3.0 / ¥1.5 | ¥9.0 / ¥4.5 |
| deepseek-v4-pro | ¥0.30 / ¥0.15 | ¥9.0 / ¥4.5 | ¥27.0 / ¥13.5 |
- 2026-08-17 之前的会话事件按当时费率计费(flash ¥0.02 / ¥1.0 / ¥2.0,pro ¥0.025 / ¥3.0 / ¥6.0)
- 输出 token 包含推理 token,与普通输出同价
- 费用为估算值,与官方账单可能存在差异(缓存命中 token 量大时尤其明显)
数据来源
- 费用:host 半订阅 DSH 会话事件(
assistant/message的usage+message.source),按(provider, model)记账;fork 子会话的拷贝事件按message.id全局去重,避免重复计费 - 余额:
GET https://api.deepseek.com/user/balance(30 秒缓存)
已知问题与兼容性
层叠上下文(z-index)遮挡 — v1.2.2 修复
现象:费用卡片标题栏的 × 关闭按钮被右侧文件面板的搜索框遮住,不可见、 不可点,卡片无法折叠为胶囊(issue #1)。
根因(层叠上下文问题,非渲染 bug):
- 插件挂载进框架的
shell.overlay挂载层[data-shell-overlay](.pI_x6G_overlayLayer),DSH rc.6 将该层写死为position: absolute; z-index: 20 - 右侧文件面板列(第三方组件,如
aionui-explorer-col)为position: static; z-index: 30—— 作为同级的 flex 子项,z-index 依然参与 层叠比较,且 30 > 20 - 卡片自身的
z-index: 1200只在挂载层内部的层叠上下文生效,无法越过 同为pI_x6G_frame子级的文件面板 —— 于是搜索框压住了卡片的 × 按钮
修复:插件 CSS 注入一条规则,把挂载层提到 60:
html [data-shell-overlay]{z-index:60}
- 用框架的稳定属性选择器
[data-shell-overlay],不依赖哈希类名; 特异性0-1-1高于框架类选择器的0-1-0,无需!important - 为什么是 60:> 30(文件面板)解决遮挡;< 100(DSH 模态/弹层)不抢 模态层级,弹窗、命令面板(z-index: 1000)仍能正常盖住卡片
- 纯 CSS,无需 DOM 轮询 workaround
后续注意:
- 若 DSH 未来调整布局 z-index 层级,或引入 z-index ≥ 60 的常驻面板,需要 重新评估该值(在 30 ~ 100 区间内调整即可,不要超过 100 以免盖住模态层)
- 其他第三方右侧面板若 z-index 高于 60,同样会遮挡卡片;可把 60 调大 (仍建议 < 100)
布局接口版本 — v1.2.0 起
- DSH
0.1.0-rc.6的布局不再提供aside插槽(右侧栏),浏览器半从 v1.2.0 起改为注入框架级shell.overlay插槽(右上角浮层卡片,可折叠), 并移除了已不存在的ctx.layout.closeAside() -
v1.2.0+ 只兼容有
shell.overlay插槽的 DSH 版本;旧版 DSH(含aside插槽)请使用 v1.1.x - 若升级 DSH 大版本后卡片消失,先检查布局是否仍提供
shell.overlay
浏览器实测范围
- 实测:Chrome 151(Chromium)。Edge 同为 Chromium 内核,预计行为一致, 未逐一实测;Safari / Firefox 未验证,如遇样式问题请反馈
卸载
rm -rf ~/.dsh/profiles/node_modules/dsh-calculator
# 并从 ~/.dsh/profiles/web/cordis.patch.yml 删除对应 insert 行
免责声明
本项目与 DeepSeek 官方无任何关联,价格与余额为接口实时数据,费用为估算。
Frequently Asked QuestionsFAQ
Use the verified command dsh plugin --profile default add github:bobcat848/dsh-calculator in a DSH-enabled shell. The command resolves the public package metadata and keeps the plugin attached to the catalog identity shown on this page.
Compatibility follows the bundle and profile status shown above. If a profile is not detected, keep the plugin disabled there and check the repository documentation before enabling it in production.
The GitHub link and activity metadata are the source of truth for releases and maintenance. Revisit this page after a new release to confirm the catalog has observed the latest version.