DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-xixi-cost

x

dsh-xixi-cost

Manifest valid

在 DSH Web GUI 里显示每轮 / 整个会话消耗的人民币(按 DeepSeek 官方价目表估算)

UI (client)hasBundlePatch

dsh-xixi-cost

CI License: MIT

给 DeepSeek Harness(DSH)Web UI 加两处人民币花费估算:

  1. 每轮回复底部:紧贴「用量 X tok」右边显示本轮花费,例如 ≈¥0.042。
  2. 输入框下方统计行:紧跟「用量 X tok · 缓存命中」显示整个会话的花费,例如 ≈¥0.42。

两处都可以点一下弹出和官方「用量」胶囊同样式的小面板,点外面或按 Esc 关闭。

这是非官方插件,所有金额都是按公开价目表 + token 用量估算出来的参考值, 实际扣费以 DeepSeek 官方账单为准。

效果

DeepSeek 回复……
[复制] [反馈] [分支]  用量 443.7k tok  ≈¥0.042  10:34

┌ 输入框 ──────────────────────────────────┐
│ …                                        │
└──────────────────────────────────────────┘
        12 轮 · 45 步 · 18.2 tok/s   443.7k tok · 缓存命中 91%   ≈¥0.42   ◔82%

弹层内容(会话那颗按每轮实际结束时刻的价目逐轮累计,进行中的本轮按当前时段补差):

整个会话花费                                ¥0.42
──────────────────────────────────────────────────
模型              deepseek-flash / deepseek-v4-pro
时段              高峰 ¥0.30 + 空闲 ¥0.10
缓存命中输入      9,812,005 tok = ¥0.3925
未命中输入        62,881 tok = ¥0.1258
输出(含思考)    37,073 tok = ¥0.2966
其中进行中本轮    ¥0.0032
合计              ¥0.42
按每轮结束时刻的价目逐轮累计;进行中的本轮按当前时段估算……

安装

需要较新的 DSH 桌面版(Web GUI)。插件是纯前端 bundle,没有第三方依赖、不需要构建。

# 从 GitHub 安装(仓库根目录就是包根目录,可以直接装)
dsh plugin --profile desktop add github:xixi0v0/dsh-xixi-cost

# 建议锁定 commit,避免上游变动:
dsh plugin --profile desktop add github:xixi0v0/dsh-xixi-cost#<完整 commit 哈希>

# 本地开发:直接链到源码目录
dsh plugin --profile desktop add D:\Project\dsh-xixi-cost

也可以直接把仓库地址发给别人:https://github.com/xixi0v0/dsh-xixi-cost, 对方执行 dsh plugin --profile desktop add github:xixi0v0/dsh-xixi-cost 即可。 前提:能访问 GitHub,并且本机装了 Git(pnpm 会用 git ls-remote 解析仓库; 没有 Git 会报 ERR_PNPM_GIT_RESOLVE_FAILED)。把 desktop 换成对方实际使用的 profile 名即可。

装完 / 改完代码后,必须重启一次桌面版 DSH 才会生效(DSH 启动时读一次组合清单)。

如果你之前装过旧名字 dsh-turn-cost,请先移除再装,否则两个插件会同时渲染、出现两份标签:

dsh plugin --profile desktop remove dsh-turn-cost

卸载 / 升级

# 卸载
dsh plugin --profile desktop remove dsh-xixi-cost

# 升级:重新 add 一次(或换成新的 commit 哈希/分支)后重启 DSH
dsh plugin --profile desktop add github:xixi0v0/dsh-xixi-cost

本包在 package.json 里标了 "private": true,只从 GitHub 分发、不发布到 npm; 如果以后要发 npm,删掉这个字段即可。

价目表

取自 DeepSeek 官方页 https://api-docs.deepseek.com/zh-cn/quick_start/pricing (2026-11-03 读取),单位:人民币 / 百万 tokens。

模型缓存命中输入缓存未命中输入输出
deepseek-flash(高峰)0.042.008.00
deepseek-flash(空闲)0.021.004.00
deepseek-v4-pro(高峰)0.309.0027.00
deepseek-v4-pro(空闲)0.154.5013.50
  • 高峰时段 = 北京时间周一至周五 09:00–12:00、14:00–18:00(不含法定节假日); 其余时间、周末为空闲时段,价格恰为高峰的一半。
  • 思考(reasoning)token 计入输出,按输出价计费。
  • 单轮如果有多个模型尝试(重试),按第一个能识别出价目的路由计价。

价目变了就改 lib/client.js 里的 PRICES_CNY_PER_M(模型别名在 MODEL_ALIASES), 然后跑一遍自检再提 PR。

实现方式

  • 两个客户端插槽:
    • conversation.chat.assistant-actions(每轮结束那条操作按钮行)→ 本轮花费;
    • conversation.composer.dock(输入框下方统计行,官方 activity / usage 两颗就在这) → 会话花费,注册 order: 2,所以紧跟在 usage(order 1)右边。
  • 每轮的数据用聊天快照里这一轮已经算好的 turn-tail.tokenUsage 分桶,按本轮结束时刻的 价目与路由计价; 会话花费也是逐轮累计:遍历快照里的所有 turn-tail,每轮用它自己的用量、结束时刻和 路由算一遍再求和,所以会话跨高峰/空闲、中途换过模型都按实际分布算;然后把 Host 的 tokenUsage 投影(整份会话日志的 token 总量)比已完成轮次多出来的 token 当作「进行中的 本轮」,按当前模型、当前时段补一笔。两者都不额外扫日志、不改会话事件、不影响模型请求。 逐轮花费按 turn-tail 对象缓存(一轮关闭后用量不再变化),长会话也不会重复算。
  • 每轮标签的位置:那一行原本是 [复制][反馈][分支][用量][时间],「用量」和时间戳装在一个 span 里。插件用两条结构性 CSS 规则(以 [data-turn-tail] / [data-clock="end"] 定位), 当「用量 + 时间」两段都在时把那个 span 摊平,并给时间戳 order:2, 于是顺序变成 [用量][本轮花费][时间]。结构一变规则就匹配不上,标签退回行末,不会弄坏界面。
  • 明细面板用 react-dom portal 挂到 document.body,避免被滚动容器裁掉。
  • 颜色、圆角、阴影全部走 --dsw-* 主题变量,浅色 / 深色主题与字号设置都自动跟随。

已知限制

  • 法定节假日没有单独区分:本机判断节假日不可靠,工作日一律按高峰规则算, 节假日当天的高峰时段会略高估(最多高估一倍)。
  • 每轮跨高峰/空闲边界时,以本轮结束时刻的计价;属于近似。
  • 会话合计 = 已完成轮次的逐轮花费之和 + 进行中本轮的估算,因此和输入框上方官方 token 总量不完全同步(进行中部分仍会随使用量实时增长)。
  • 认不出价目(非 DeepSeek 路由 / 未知模型)的轮次不计入会话金额;它们的 token 仍计入 分桶展示,只是不折算成钱。
  • 非 DeepSeek 路由或认不出价目的模型,标签直接不显示,避免给出错误数字。
  • 官方单独计费的 Search / Fetch 请求费(5 元 / 1000 次)不计入。
  • 每轮只覆盖「完成一轮」之后:本轮进行中还没有最终用量;会话胶囊则随 token 实时增长。
  • 简洁(compact)模式下官方不显示 token 用量,本插件仍会显示;需要的话可以改成跟随隐藏。
  • 依赖 DSH 客户端插槽与聊天快照的内部结构;DSH 大版本升级后如果界面结构变了, 最坏情况是标签不显示,不会让聊天界面报错。

目录结构

dsh-xixi-cost/
├─ package.json                 # 包身份 + dsh.bundle / dsh.client 声明
├─ cordis.patch.yml             # 往 profile 里插入 xixi-cost 这一行
├─ lib/
│  ├─ index.js                  # 宿主半侧:只占位
│  └─ client.js                 # 浏览器半侧:价目折算 + 插槽注册 + 弹层
├─ locale/
│  ├─ zh.json                   # 插件管理器显示名/说明(中文)
│  └─ en.json                   # 同上(英文)
├─ test/verify.cjs              # 无依赖离线自检
├─ icon.svg                     # 插件图标
├─ CHANGELOG.md
├─ LICENSE                      # MIT
└─ .github/workflows/ci.yml     # 跑 test/verify.cjs

命名约定(改包名必读)

这个插件里有 5 个名字,规则不同;其中 3 处是硬绑定,改包名时千万别漏:

名字位置规则
① 包名package.json 的 name守 npm 命名规则(全小写、URL 安全字符、≤214 字符)。同时是浏览器模块身份
② 插件标识cordis.patch.yml 的 id + lib/index.js 的 @module无格式要求,但必须唯一(patch 按 id 定位,撞了会覆盖别人的行)
③ 本地化命名空间lib/client.js 的 NS + 槽位注册的 locale必须等于包名,否则插件管理器里的翻译对不上
④ 样式 / 属性前缀lib/client.js 的 xixicost_* 类名与 data-xixi-cost*带前缀防撞,可以自由改,但要和自检脚本一起改
⑤ 显示名locale/*.json 的 meta.title / description随喜好,中文/空格/符号都行

三条硬绑定:

  1. lib/client.js 第一段 window.__ModuleLoader__.load({ id: ... }) 必须逐字等于 package.json 的 name。不一致浏览器就找不到这个插件。
  2. cordis.patch.yml 里的 name: 必须等于包名;id: 要唯一。
  3. lib/client.js 的 NS(本地化命名空间)必须等于包名,槽位注册的 locale: NS 才会生效。

test/verify.cjs 会静态检查这三条,改完名字跑一遍就能发现问题。

开发与自检

没有构建步骤,也没有第三方依赖。自检脚本会在 Node 里用最小 React/ReactDOM 桩 加载真实的 lib/client.js,校验:

  • 包名 / 插件 id / 模块 id / locale 命名空间的静态一致性,以及旧名字残留;
  • 逐轮价目折算(高峰、空闲、模型别名、重试路由、非 DeepSeek 路由);
  • 会话花费的逐轮累计(跨高峰/空闲、跨模型)、进行中补差、投影滞后与未知模型边界;
  • 会话明细行与逐轮明细行;
  • 按 messageId 找 turn-tail、最近路由兜底;
  • apply 注册的两个插槽(slot 名、id、order、locale);
  • 两个组件渲染出的按钮文案与 aria-* / data-* 属性。
node test/verify.cjs
# 或者
npm test

GitHub Actions 会在 push / PR 时用 Node 20 与 22 各跑一遍。

改名历史

  • 2026-11-03:开源时从内部名 dsh-turn-cost 改为 dsh-xixi-cost。 同步更新了包名、插件标识(xixi-cost)、浏览器模块 id、locale 命名空间、 CSS 类前缀(xixicost_)与 data 属性(data-xixi-cost)。 旧安装与新包同时存在会出现两份标签,迁移时先移除旧的。

许可证

MIT © 2026 xixi0v0

这是一个个人开源项目,与 DeepSeek 官方无关。金额仅为估算,请以官方账单为准; 价目表若变动,欢迎提 issue / PR。

Comments

Loading…

Similar plugins

dsh-deepseek-billing

by Jolly-J

DSH WebUI 插件:DeepSeek 余额显示与按会话费用估算

Tools & CapabilitiesModels & ProvidersManifest valid

★ 4

MIT

TypeScript

Sep 22, 2026

dsh plugin --profile web add dsh-deepseek-billing

by PennChong95

DeepSeek Harness 插件:在上下文用量右侧显示本会话 token 用量与人民币费用(按 DeepSeek 官方价目折算)

Manifest valid

★ 0

MIT

JavaScript

Oct 20, 2026

dsh plugin --profile web add @max/dsh-cost-meter

by WFMinerva

DeepSeek Harness (dsh) Web 插件:每条 AI 回复下显示该轮真实花费(人民币,官方峰谷价)

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Sep 10, 2026

dsh plugin --profile web add dsh-turn-cost

by xiaml666

DSH 花费显示:每轮对话花了多少钱、整个会话累计多少钱,按官方价格表精确计价(自动刷新、高峰/低谷自动同步、多供应商多币种),并附带账户余额与可视化设置面板;余额与会话累计始终同币种。

Development & InfrastructureTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Sep 11, 2026

dsh plugin --profile web add dsh-plugin-cost

by ygnstudio

DeepSeek Harness 会话费用估算、账号余额与额度监控插件

Manifest valid

★ 0

AGPL-3.0

JavaScript

Oct 15, 2026

dsh plugin --profile web add dsh-plugin-session-cost

极简匹配DSH官方风格的计费卡片. 会话与轮次费用估算插件,支持多价格源、模型独立币种和 DeepSeek 峰谷计费。

Tools & CapabilitiesManifest valid

★ 1

MIT

JavaScript

dsh plugin --profile web add @guojinpeng/dsh-cost-meter