DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Ui Cost Meter — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
U

dsh-ui-cost-meter

Ui Cost Meter

DeepSeek Harness Web GUI 插件:当前会话的实时花费,按每个模型的 token 费率计价,并以标签形式显示在编辑器下方

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

npx -y @deepseek-ai/dsh plugin --profile web add github:yuu1111/dsh-ui-cost-meter#58374cf6804764a49a097032a9a2667596526d70
README兼容性版本

兼容性与来源证明

Ui Cost Meter 以 dsh-ui-cost-meter 发布,当前版本为 1.0.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/17

版本

1.0.1stable
2026/9/17
1.0.0stable
2026/9/13

相关插件

正在加载相关插件…

最新版
1.0.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/17
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Usage@linxin666/dsh-usage用于 dsh Web GUI 的使用统计插件:检测各提供商的余额和编码计划配额,并提供实时令牌使用记录,同时在侧边栏条目中显示当前会话提供商今日的使用量Usage Stats@ychris12138/dsh-usage-statsdsh Web GUI 的令牌使用热力图、提供商余额和订阅配额Codex Connectdsh-codex-connect用于 DeepSeek Harness 的 ChatGPT OAuth 和 Codex 模型。Ui Usage Billing@kenz1117/dsh-ui-usage-billingDeepSeek Harness 的用量计费仪表板:侧边栏成本指标和完整的仪表板模态窗口,依据当前多提供商目录定价,并汇总会话日志中的实际用量。

README

dsh-ui-cost-meter

English | 日本語

Real-time spend for the DeepSeek Harness Web GUI: one pill under the composer, beside the shipped turn/token pills, that says how much the session has cost so far.

⏱ 1 turns 71 steps · 285 tok/s    🗄 7.3M tok · Cache hit 99%    $ 0.42

The amount rides the session projection seam, so it is whole-log (paging and compaction cannot change it), it survives reloads, and it is priced from the durable provider usage the harness already logs. The pill is shaped like the shipped stats pills: clicking it opens a breakdown panel that repeats their dialog's title, rule, and label/value rows, naming each cache bucket, the unpriced tokens, and the route that priced them.

Install

dsh plugin --profile web add dsh-ui-cost-meter

Under a source checkout, add link:<path> works the same way. The plugin declares its own bundle patch, so the row appears in the profile without editing cordis.patch.yml.

Configure

Every field lives on the plugin row, and every price is per one million tokens in whatever currency symbol names. The example below prices DeepSeek V4.1 Flash (deepseek-flash; OpenCode Go's own id is deepseek-v4.1-flash, and Command Code's is deepseek/deepseek-v4.1-flash) and DeepSeek V4 Pro at DeepSeek's published off-peak rates, which the official API, OpenCode Go, and Command Code all charge. Replace them with the rates you actually pay.

- id: cost-meter
  name: dsh-ui-cost-meter
  config:
    symbol: '$'
    rates:
      opencode-go/deepseek-flash:
        input: 0.15
        output: 0.6
        cacheRead: 0.003
        cacheWrite: 0
      opencode-go/deepseek-v4-pro:
        input: 0.66
        output: 1.98
        cacheRead: 0.022
        cacheWrite: 0
      deepseek-official/deepseek-flash:
        input: 0.15
        output: 0.6
        cacheRead: 0.003
        cacheWrite: 0
      deepseek-official/deepseek-v4-pro:
        input: 0.66
        output: 1.98
        cacheRead: 0.022
        cacheWrite: 0
      command-code/deepseek/deepseek-v4.1-flash:
        input: 0.15
        output: 0.6
        cacheRead: 0.003
        cacheWrite: 0

One rate per route can only carry the off-peak number, so that is what the example shows: peak is exactly double in every field and covers 01:00-04:00 and 06:00-10:00 UTC, Monday through Friday. DeepSeek bills no cache writes, so cacheWrite stays 0, and the retired deepseek-v4-flash and deepseek-v4-flash-vision-exp ids now route to V4.1 Flash at the Flash price. OpenCode Go is a $10/month plan, so its rates meter usage against the plan's limits rather than pricing a per-token invoice. Command Code lists the same rates on its Go plan and above.

Sources: DeepSeek Models & Pricing, OpenCode Go, Command Code: DeepSeek V4.1 Flash.

FieldMeaning
symbolPrefixed to every amount. Default $.
ratesUnit prices keyed by "<provider>/<model>", then "<model>". The route key wins.
fallbackUnit prices for every route no key matches. Omit it to price nothing by default.

A route with no matching rate is not guessed at: its tokens are counted as unpriced, contribute nothing to the total, and make the pill mark its amount with a trailing +. The panel then names how many tokens were left unpriced, so a missing rate is visible instead of silently wrong.

Where the numbers come from

The host half registers the costMeter session projection. It folds the durable log: a request/header sets the route, and each settled assistant/message (or assistant/attempt, which preserves a billed attempt that left no surface message) contributes the provider usage embedded in its stream. A re-reported sample for the same turn and step replaces the earlier one; llm/retry-started closes that slot so a retried attempt adds instead. Input, output, cache-read, and cache-write tokens are then priced by the route's rates.

The client half registers one entry on the conversation.composer.dock slot and renders it into the shipped stats row ([data-composer-stats]) with a React portal, so the cost pill shares that row's font, spacing, and vertical rhythm instead of starting a row of its own. Without a stats row to join (a session that has produced no steps or tokens yet) it falls back to drawing its own centered row.

The pill and its panel carry the shell's own declarations — the same --dsw-* tokens, sizes, radius, and two-column row grid as the shipped pills and their dialog — because a third-party bundle can only reach the platform modules the shell seeds, not its CSS modules.

Caveats

  • Not a billing record. The figures are the harness's own token accounting times the rates you configured. The provider's invoice is the authority; a wrong rate in rates is a wrong pill.
  • One rate per route. A provider that changes its price mid-session, or a route whose price depends on the request size, needs a rate that reflects what you actually pay.
  • Currency is yours to name. Nothing here converts between currencies.

Development

bun install
bun run build     # lib/index.js (host half) and lib/client.js (browser half)
bun test          # pricing fold, formatting, and the built bundle
bun run check     # type check

lib/ is generated and ignored by git. build.ts bundles the host half as ESM (with zod and @deepseek-ai/schemastery left external) and the browser half as CJS wrapped in the window.__ModuleLoader__.load({ id, factory }) loader format the client module system serves.

License

MIT