dsh-cost-meter

133Star8Fork0Issue1Watching

为 DSH 提供 DeepSeek 会话费用、官方余额、预算与峰谷计价可视化,支持 OpenCode Go 与多厂 Coding Plan 额度查询及官方价格一键同步。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
master
cost-trackingdeepseekdeepseek-apideepseek-harnessdshdsh-plugindsh-pluginsharness

安装

$ dsh plugin --profile web add github:Han-1413141/dsh-cost-meter

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Han-1413141/dsh-cost-meter:先查看仓库 https://github.com/Han-1413141/dsh-cost-meter.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DeepSeek Harness 实时统计本会话与历史模型调用费用、官方账户余额、预算进度与峰谷计价档位,可选接入 OpenCode Go 订阅与多厂 Coding Plan 额度,并支持官方定价页一键同步。

核心能力

  • 实时累计本会话费用:插件捕获每次模型调用的输入、缓存读 / 缓存写、输出与推理 token,按价格表逐次计费;徽章位置可在输入区下方与会话标题栏之间切换
  • 全局账本与历史:按天聚合费用、调用次数与会话明细,保留最近 N 天(默认 180),今日 / 本月 / 累计卡片与类 Codex 的 26 周每日用量方格热图
  • 预算图框与超支提醒:侧边栏底部圆角图框显示预算、已用百分比、今日费用与占预算百分比;≥80% 进度条变黄、≥100% 变红,仅提醒不阻断调用
  • 官方账户余额:调用官方开放平台余额接口,复用模型请求同一把 API Key;侧边栏顶部或设置页可显示总余额 / 赠送 / 充值拆分,进程内缓存按刷新间隔过期
  • 多档额度查询:OpenCode Go 滚动 5 小时 / 本周 / 本月三档用量百分比,叠加 Anthropic Claude、Z.ai / 智谱、MiniMax、Kimi / Moonshot、OpenRouter、SiliconFlow 六家 Coding Plan 额度
  • 官方价格一键同步:抓取官方定价页解析基础价与峰谷两档,自动写入价表并保留历史价;提供 AI 提示词文档用于第三方厂商价格的人工核对流程

技术实现

  • 语言: JavaScript(ESM,未启用 TypeScript;lib/ 下 5 个 .js 源文件 + 单文件浏览器 bundle)
  • 关键依赖: zod(配置 / 状态 schema 校验)、@deepseek-ai/dsh-credentials(OpenCode Go / Coding Plan / 余额 Key 解析)、@deepseek-ai/dsh-home-paths(账本根目录解析)
  • 架构模式: dual-half 宿主插件。Host half 通过 ctx.on('llm/stream', ...) 包裹模型流拦截 usage 块,按价格表写入账本;ctx.inject(['sessionProjections']) 注册 costUsage 会话投影(客户端按当前价表计价);ctx.provide('costMeter', service) 暴露账本快照 / 配置 / 刷新 / 同步 / 重置 RPC,手写 typertRemote 绑定以匹配 Typert 网关校验。Client half 为单文件 bundle,注入 conversation.composer.dockconversation.session.header.actionssidebar.footer.actionsettings.section 四个插槽;样式全部基于 --dsw-* 主题变量跟随亮 / 暗主题
  • 入口文件: host 入口 lib/index.jsapply / name = 'cost-meter');客户端入口 lib/client.js;挂载声明 cordis.patch.yml(在 web profile 插入 1 行 Loader)+ package.json#dsh.bundle.patch

适用场景

当 DSH 用户希望对模型开销有可见的"账本感"——实时看到本会话与历史的费用走势、设置月度预算并被进度条预警、在设置页核对官方价格表、一次性查看 OpenCode Go 与多家 Coding Plan 的剩余额度。本插件把所有可计量面统一收口在一个"费用"设置分节内,免去在多个官方控制台之间反复切换。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness (DSH)0.1.0-rc.5package.json#dshhub.compatibility.dsh 声明 >=0.1.0-rc.5
Node.js>=20package.json#dshhub.compatibility.node 声明 >=20
平台跨平台不引入原生模块;账本走 node:fs 原子写,Key 解析读取 ~/.local/share/opencode/auth.json~/.claude/.credentials.json 等纯文本文件
原生模块第三方依赖全部为纯 JS(zod / dsh-credentials / dsh-home-paths)
网络api.deepseek.com(余额)、api-docs.deepseek.com(官方定价)、opencode.ai(Go 额度)、六家 Coding Plan 官方端点余额强制白名单官方域名,Key 不发往其它端点

安装方式

dsh plugin --profile web add github:Han-1413141/dsh-cost-meter

配置项

默认在 设置 → 费用 全部分节内可视化编辑;下方为可调字段一览(节选自 lib/store.js:27-95,所有字段均在 updateConfig RPC 中按 zod schema 校验后即时自动保存,600ms 防抖)。

配置类型说明默认值
localeenum界面语言:auto(跟随浏览器)/ zh(简体中文)/ en(English)auto
positionenum会话费用徽章位置:dock(输入区下方)/ header(会话标题栏)/ off(关闭)dock
sidebarboolean侧边栏底部显示当日费用true
currency / symbol / decimals / exchangeRatestring / string / number(0-10) / number显示币种与汇率(默认 CNY / ¥ / 4 位 / 7.2),账本金额恒以美元存储CNY / ¥ / 4 / 7.2
peakEnabledboolean启用峰谷两档计价(UTC 01:00–04:00 与 06:00–10:00 为峰时段,谷时价 = 峰时价一半)true
peakNotice / peakStyleboolean / enum峰时高价时段显著提示与时段条样式(compact 单行 / classic 分段胶囊)true / compact
priceMatch / priceOverrides / priceTableDisplayenum / map / map未知模型自动匹配策略(auto 去后缀 / 前缀 / 家族相似,或仅精确)、手动匹配覆盖、按模型决定是否在"价格表"区直接显示auto / {} / {}
prices.models / prices.default / prices.providersmap / entry / mapDeepSeek 与第三方厂商价表,三桶(cacheHit/cacheMiss/output)或两档简写(input/output)皆可;峰谷子档按 DeepSeek 模型结构补齐内置 DeepSeek 价表 + 第三方 catalog
budget.enabled / amount / period / customStart / customEnd / detailboolean / number / enum / date / date / boolean预算图框总开关与额度、周期(day/month/all/custom)、详细行false / 100 / month / null / null / true
balance.display / refreshMinutesenum / number(1-1440)余额显示位置(sidebar / settings / both / off)与自动刷新间隔both / 5
goQuota.enabled / display / refreshMinutes / apiKey / main / detailboolean / enum / number / string / enum / booleanOpenCode Go 订阅额度总开关、显示位置、刷新间隔、Key(图框主档位 rolling 5h / weekly / monthly)true / both / 15 / "" / rolling / true
corner.enabled / goRolling / goWeekly / goMonthly / budgetboolean × 5右下角(composer dock)四项独立 chips:滚动 5h / 本周 / 本月 / 预算已用%false / true / true / true / true
codingPlans.<provider>.enabled / display / refreshMinutes / apiKeyboolean / enum / number / string六家 Coding Plan(anthropic / zai / minimax / kimi / openrouter / siliconflow)独立启用、显示位置、刷新间隔、Keyfalse / settings / 15 / ""
usage.positionenumToken 用量统计显示位置:cost(费用设置分节内)/ general(通用设置)/ section(独立分节)cost
historyDaysnumber(7-3650)账本保留天数180

常见问题

Q: 界面是中文还是英文?可以切换吗?

A: 简体中文 / English / 跟随浏览器(自动)三种。默认跟随浏览器(zh* → 中文、其余 → 英文),探测结果不持久化。在 设置 → 费用 → 显示设置 → 界面语言 中切换,整套界面即时生效并自动保存;服务端返回的余额、价格同步提示同样按当前语言展示。

Q: 安装后侧边栏没看到余额 / 显示异常怎么办?

A: 余额依赖 DSH 模型设置里的 DeepSeek API Key;首次启动请在 设置 → 模型 配好 Key 或导出 DEEPSEEK_API_KEY。余额端点强制只发往官方域名 api.deepseek.com,baseURL 指向非官方域名时余额查询会被拒绝(不影响模型调用)。余额默认 5 分钟自动刷新,可在 设置 → 费用 → 余额 显示位置关闭。

Q: OpenCode Go 或 Coding Plan 额度自动消失 / 显示"未启用"?

A: Go 额度需 DSH 凭据库或环境变量 OPENCODE_GO_API_KEY,未配置会在设置页以中性提示告知,不会变红。打开 设置 → 费用 → OpenCode Go 面板后即可启用;未订阅可关闭"启用"开关。各家 Coding Plan 类似:在对应面板填 Key 或配置环境变量,关闭"启用"即停用。

Q: 如何把官方最新价同步进来?同步会覆盖我的自定义价格吗?

A: 在 设置 → 费用 → 数据与同步 区域点 "从官方文档同步",插件会抓取官方定价页解析后写入。只覆盖官方页面列出的同名模型条目,自定义模型条目不受影响;解析失败时同步会报错并保留原价格表,可手动编辑兜底。

Q: 预算到 100% 会停止模型调用吗?

A: 不会。预算与超支提示仅提醒,不阻止调用;≥80% 进度条变黄、≥100% 变红并在侧边栏底部预算图框显示超支徽章。需要硬性限制请自行在模型层处理。

Q: 数据存哪里?怎么清除全部历史?

A: 账本文件在 $DSH_HOME/storages/cost-meter/ledger.json,按 historyDays(默认 180 天)保留,每日最多 200 个会话明细;写入采用临时文件 + 原子重命名 + 2 秒防抖。清除:在 设置 → 费用 → 数据与同步 点 "清除全部历史";也可手动删除 ledger.json

Q: 如何卸载?

A: dsh plugin --profile web remove dsh-cost-meter,重启 dsh web 即可。插件不引入额外后台进程、不改 host 文件;账本文件留在 $DSH_HOME/storages/cost-meter/ledger.json,需要时手动删除。

Q: 安装 / 更新后页面没变化?

A: 安装或更新插件后必须重启 dsh web,插件行、Typert 清单与客户端 bundle 均在启动时扫描;只刷新浏览器不会重新装载服务端插件。

上手难度

入门 — 一条 dsh plugin add + 重启 dsh web 即在侧边栏与设置页看到费用面板;想体验官方价格同步需可访问 api-docs.deepseek.com。进阶处在于阅读 价格表 / 拓展价格表 / 多 provider 模型适配(参考 docs/model-and-plan-adaptation.md)并按厂商手动核对非 DeepSeek 模型价格。

已知问题与限制

  • 官方定价页解析依赖当前页面结构:官方改版后"从官方文档同步价格"会报错并保留原价格表,可手动编辑价格表兜底
  • 会话徽章按当前价格档位估算:精确费用以账本为准;历史调用的费用在 ledger 中已按调用时刻的价档精确记录
  • 价格同步只覆盖官方页面列出的同名模型价格:自定义模型条目不受影响
  • 余额查询强制官方域名白名单:仅 api.deepseek.com 接受,baseURL 指向非官方域名时余额查询被拒绝,模型请求不受影响
  • OpenCode Go 额度接口为 opencode.ai/zen/go/v1/usage(社区文档):接口结构变化时设置页会显示错误,可在 显示设置 中关闭该显示
  • 安装 / 更新插件后必须重启 dsh web 生效:插件行、Typert 清单与客户端 bundle 均在启动时扫描
  • 第三方 Coding Plan 部分仅余额可用:Anthropic OAuth、Z.ai / 智谱、MiniMax Token Plan 已实测有 usage 端点;Kimi Code 订阅周窗 / 5 小时窗暂无 API-Key 化公开端点,目前以 PAYG 余额窗口显示;百炼 Coding Plan / OpenAI Codex / Gemini Code Assist / GitHub Copilot 个人版暂无 API-Key 化用量端点,未接入

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Han-1413141/dsh-cost-meter)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录