DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-bill

Bill

DSH 费用统计插件:会话费用明细 + 成本归因报告,使用 llm-pricing 动态定价。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-bill@0.23.1
README兼容性版本

说明

DSH 成本归因和使用情况仪表板,使用 llm-pricing 定价。

兼容性与来源证明

Bill 以 dsh-bill 发布,当前版本为 0.23.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/11/4

版本

0.23.1stable
2026/10/23
0.23.0stable
2026/10/18
0.22.0stable
2026/10/11
查看其余 22 个版本收起版本
0.21.0stable
2026/10/9
0.20.1stable
2026/10/1
0.20.0stable
2026/10/1
0.19.0stable
2026/10/1
0.18.3stable
2026/10/1
0.18.2stable
2026/9/30
0.18.1stable
2026/9/25
0.18.0stable
2026/9/25
0.17.2stable
2026/9/24
0.17.1stable
2026/9/22
0.17.0stable
2026/9/17
0.16.0stable
2026/9/13
0.15.0stable
2026/9/12
0.14.1stable
2026/9/11
0.14.0stable
2026/8/25
0.13.1stable
2026/8/21
0.13.0stable
2026/8/17
0.12.0stable
2026/8/16
0.11.1stable
2026/8/16

相关插件

正在加载相关插件…

最新版
0.23.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
1.1 MB
文件数
22
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 7
周下载
905
安全扫描
✓ v0.23.1 扫描通过
最近提交
2026/10/23
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
0.11.0stable
2026/8/16
0.10.2stable
2026/8/16
0.5.0stable
2026/8/16

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Connect Workbuddydsh-connect-workbuddy把本机登录的 WorkBuddy 模型(国内版与国际版)接入 DeepSeek Harness:每次刷新按上游目录自动读取每个模型的积分倍率,支持逐模型图片输入开关、多账号切换与账号池自动换号,并提供每日签到、卡片与输入框里的胶囊积分读数等只读积分概览。Cost Meterdsh-cost-meterDeepSeek Harness 会话费用统计插件:本会话成本、当日费用、历史记录与官方价格同步,支持多厂商多模型价格计费(内置 170+ 模型 ID 价格目录与自动匹配)、主流 Coding Plan 订阅额度查询与显示(16 家,含 WorkBuddy 官方积分、OpenDesign 工作区查询、含小米 MiMo Token Plan 控制台 Cookie 查询、SCNet Token Plan 本地 Credits 计量与火山方舟 Volcano Ark Coding Plan AK/SK 签名查询Codex Subscriptiondsh-codex-subscription在 DeepSeek Harness 中通过 OAuth 使用 ChatGPT 和 Codex 订阅,支持配额、安全重置、网络搜索、图像和快速模式,并可通过 ChatGPT 移动应用(Beta)控制 DSHXdpooldsh-xdpool将你拥有的所有免费额度汇聚为一个 DSH 模型池:合并所有本地登录的 WorkBuddy 账户并自动故障转移,通过二维码/网页登录 13 个供应商,汇总 76 个供应商的免费层额度,此外还提供用量仪表盘、模型路由和本地 OpenAI 兼容网关

README

dsh-bill

English | 中文

Cost tracking for DSH (DeepSeek Harness). A line under each turn tells you what that turn cost; the conversation's Cost tab tells you what that session's money went on, and the global Cost panel beside Plugins does the same for the whole account.

This turn's cost under the reply, and the session's cost in the composer dock

The Cost panel: total, tokens, cache hit, balance and monthly forecast

Spend over time, stacked by model, with each bar's split on hover; below it, the weekday × hour heatmap

Cost attribution: what the money went on, by kind of content

Install

dsh plugin --profile web add dsh-bill

Restart dsh web to pick it up.

Features

  • Cost attribution — the bill split by kind of content: tool output, model output, system prompt, terminal commands (grouped by git / pnpm / rg), tool input, attachments, system reminders, user input. The sunburst drills in.
  • Per-turn cost — one line under every finished turn: what it cost, how many steps, the cache-hit rate. It reads the session log itself, so turns from before you installed the plugin are covered too. A call a plugin makes on its own, outside any session (such as an auto-review before a tool call), belongs to no turn: it is in the account total and shows as a separate No session row in the per-session split, so the turn lines can add up to less than the account total.
  • Always on screen — this session's cost as a pill beside the shipped stats in the composer dock, today's spend against the budget in the sidebar, and each session's cost in its sidebar hover card (DSH 0.1.7+). The dock's figure moves while a turn is still running, from the output that has streamed so far, and becomes the billed figure the moment the provider reports it. Each of the five surfaces — and the report's icon in the sidebar panel row — can be turned off individually in settings.
  • Report — a Cost tab in each conversation (beside Chat and Trajectory) scoped to that session, and an account-wide Cost panel opened from the sidebar icon beside Plugins (DSH 0.1.7+): total, tokens, cache hit, peak share; account-wide also monthly forecast, account balance, budget and a per-session split; broken down by model and by purpose (including loop overhead such as context compaction); spend over time stacked by model, with each bar's split on hover; a weekday × hour heatmap. The window is either rolling (the last 24 hours, 7, 30, 90 or 365 days) or a calendar day (today, yesterday) on the host's clock, plus all time; bars are hours for a day or less, then days, weeks or months as the window grows.
  • Budget — a daily / monthly / all-time limit that turns amber past 80% and red when you go over.
  • Multi-currency — live rates for ~166 currencies; each model's base rate is shown in the currency its vendor prices it in.
  • Agent tool — bill_stats, so the model can answer questions about spend directly, over a number of days back or one calendar day (today, yesterday, YYYY-MM-DD). agentTool: false in the plugin config leaves it unregistered, for anyone who never asks the model about spend and would rather not pay its schema on every request.
  • English and Chinese follow the DSH language setting; history from before the install is backfilled from the session log.

How it differs from similar plugins

Three substantive differences:

No hand-maintained price table. Every other plugin ships a built-in table of 2–4 DeepSeek models, which means no prices at all once you switch provider — and which is why they all need a "edit the price table by hand" entry point. dsh-bill pulls models.dev and OpenRouter through llm-pricing, covering 8000+ entries, so a new model is priced the day it ships.

Price is a timeline, not a number. The others compute a cost and store it (or recompute at today's price), so history goes wrong the moment a vendor changes its rates or a call crosses a peak/off-peak boundary. dsh-bill prices each call at that call's own instant, and never recomputes history.

It answers "on what". The others answer only "how much" — they consume the provider's aggregate token counts and never look at the request content. dsh-bill splits the request into classified segments at capture time and apportions cost by position in the cache prefix.

They do some things better: usage-stats reads balances and subscription quotas from 11 providers (dsh-bill only does DeepSeek), cost-meter can read OpenCode Go's subscription quota, and both surface more always-on entry points than dsh-bill does.

Point-by-point comparison (read from source, sampled 2026-08-16)

The sample is the cost-related plugins under the GitHub dsh-plugin topic with ★ ≥ 40, plus the four published to npm. Lower-starred plugins such as deepseek-harness-wallet were not checked individually.

dsh-billcost-meterusage-statsdsh-costcost-logdsh-usageusage-billing
stars / version—★42 / 1.3.1★40 / 0.2.0★3 / 0.2.1★2 / 1.0.0★2 / 0.1.10.2.2
price sourceonline cataloguebuilt-in table + hand-scraped docsnonebuilt-in tablebuilt-in tableuser-enteredbuilt-in table
models covered8000+ entries4 DeepSeek—4 DeepSeek2 DeepSeekone at a time, by handDeepSeek
unlisted modelflagged, excluded from totalsbilled at flash rateflagged unknownbilled as v4-proflagged ≈flagged --counted as 0
history never recomputed✓✗—✗✓✓manual backfill
content attribution✓✗✗✗✗✗✗
forecast✓✗✗✗✗✗✗
budget✓✓✗✗✗✗✗
account balance✓✓✓✓✗✗✗
pre-install history✓✗✓✗✓✓✓
agent tool✓

Pricing

  • two catalogues, models.dev and OpenRouter, cached for 24h and written to disk, falling back to a built-in historical snapshot on failure;
  • DeepSeek's own direct rates override the catalogue, and the peak / off-peak rate is chosen from the call's timestamp;
  • a prompt-cache write is priced at the lifetime the provider reports it bought: when the usage report carries cacheWrite1hTokens (the one-hour share of cacheWriteTokens, which Anthropic returns for a route that asks for the long cache), that share is billed as a one-hour write and the rest as a five-minute write; without it every write is a five-minute write;
  • model names are normalised, and anything that still fails to match is flagged ? and excluded from totals — nothing is estimated;
  • priceOverrides can override or add any price (rarely needed).

Attribution method

Every request pays for the full context again, so one tool output read into the conversation keeps being billed on every subsequent request until it slides out of the window. Attribution is computed per request and summed.

Two things matter:

  • Price by position. Under prefix caching the first N tokens of the prompt bill at the cache rate and the rest at full rate — on DeepSeek the two differ by up to 156×. Segments are ordered exactly as the provider received them, the cached prefix is charged at the cache rate, and only the tail pays full price. Apportioning by an average unit price files the money under the wrong category.
  • Counts only. Attribution happens at capture time on the live request; only the per-category amounts are written to disk. No prompt text is stored.

Per-segment token counts are estimated from character share (providers return only a total), and the total is the real billed figure, so the parts sum exactly to what you paid.

The session log holds token counts and model routes but not the request bodies — which is why pre-install history can be backfilled as spend, but cannot be attributed retroactively. The report states what fraction is covered.

Configuration

The budget, its currency, the display currency shared by every figure, and which surfaces are shown are all set on the Cost page in settings, and stored in $DSH_HOME/dsh-bill/prefs.json. The two currencies are separate settings: the budget's is the promise ("¥100 a month") and does not follow the display. (Not in the harness's own settings document: its API proxy serves a fixed allowlist of namespaces to the browser, so a plugin's namespace is never readable or writable from there.)

maxRecords (the in-memory ring buffer size, default 20000), agentTool (register bill_stats, default true), backfillTimeoutMs (the total budget for the boot-time history import, default 60000), rateCurrency (one ISO currency code, such as USD, to show every model's base rate in instead of its vendor's own list currency — useful when you buy DeepSeek on its international platform, which bills in USD), dshHome (the harness home to keep the store under instead of $DSH_HOME — the same option the harness's own stores take, for a process that hosts several harness instances, each with its own spend) and priceOverrides are plugin config and are validated at startup — a mistyped field is reported by name rather than leaving the report quietly empty. ~/.dsh/profiles/web/cordis.patch.yml is only needed when you want to override a price:

- insert:
    - id: bill
      name: 'dsh-bill'
      config:
        priceOverrides:
          'anthropic/claude-sonnet-4-6':
            inputPerM: 3.0        # USD per million input tokens (uncached)
            outputPerM: 15.0
            cacheReadPerM: 0.3
            cacheWritePerM: 3.75

Data and privacy

  • each call's provider / model / token usage and attributed amounts are written to $DSH_HOME/dsh-bill/records.jsonl (a 20 000-entry ring buffer; older entries are folded into a rollup);
  • the API key used for the account balance is read and used host-side and never reaches the browser;
  • nothing is sent anywhere except the price catalogues, the exchange-rate endpoint, and the balance query; no conversation content is stored.

Implementation

LayerHow
Capturehooks the llm/stream waterfall, wraps the stream to observe usage chunks, passes everything through untouched
Pricingllm-pricing resolves catalogue / peak rate / override at the call's own instant
Attributionthe request is split into classified segments at capture time and apportioned by position in the cache prefix
Backfilllists the session log once, imports sessions it never recorded with a cancellable budget, deduplicating on turn:step
Per turnthe billTurns session projection folds the session log host-side and pushes to the client — no polling; billLive pushes the open step's estimated output as its own small value
Account-widetoday / month / all time belong to no session, so they are long-polled: one request per window carries the rev it holds, and the host answers when spend moves, the day turns, or after 25 s
Storagein-memory ring buffer plus append-only JSONL, folded into a rollup before eviction; preferences in their own small JSON document; atomic replace and file locking borrowed from dsh-atomic-write
TransportPOST /dsh-bill/api (the harness cannot mount a plugin ctx.connection.rpc channel yet)
UIconversation.view / main + sidebar.panellist / conversation.chat.turnTail / conversation.composer.dock / sidebar.footer.action / sidebar.session.row.hover / settings.section, built on the host's --dsw-* design tokens

License

MIT

✗
✗
✗
✗
✗
✓
currencies166, live rates3, fixed rates—follows UI language¥/$single¥ only