enoughpower/dsh-desktop-mac--plugins-dsh-cost-meter1

dsh-cost-meter

DeepSeek Harness 会话费用统计插件:本会话成本、当日费用、历史记录与官方价格同步,支持多厂商多模型价格计费(内置 90+ 模型价格目录与自动匹配)、主流 Coding Plan 订阅额度查询与显示(9 家,含 SCNet Token Plan 本地 Credits 计量与火山方舟 Volcano Ark Coding Plan AK/SK 签名查询)、自定义 Provider 余额查询(可配任意 HTTP 端点)与余额进度条、峰谷计价时段显示与切换前弹窗/系统通知提醒(位置/提前量/类型可配),界面中英双语。Session cost tracking plugin for DeepSeek Harness: per-conversation cost, daily totals, history and official price sync, with multi-vendor model pricing (built-in 90+ model catalog with auto-matching), Coding Plan quota queries & display for 9 vendors (incl. local credits metering for the SCNet Token Plan and Volcano Ark Coding Plan via AK/SK signature), plan/API dual-track billing with per-1% & full-window Token Plan usage estimates, custom provider balance lookup (configurable HTTP endpoint) and balance progress bar, plus peak/off-peak pricing display with pre-switch popup & system-notification alerts (position / lead time / type configurable), in a bilingual (Chinese/English) UI.

包名
dsh-cost-meter
版本
1.7.20
许可证
MIT
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:enoughpower/dsh-desktop-mac#f957acef9a0861cef94ae074c75d6bfab0c04379&path:plugins/dsh-cost-meter

自定义 Provider 余额配置示例(NewApi 模板)

千问 / 阿里云资金账户余额可直接点击「添加千问 / 阿里云余额」,使用 RAM AccessKey 签名查询,显示接口返回的可用金与币种;配置步骤、所需权限及口径见千问余额说明

千问 Token Plan 的本地 Credits 仅统计 qwenqwen-tokenplanqianwen-tokenplanqwen-token-planqianwen-token-plan 订阅 provider(大小写不敏感,可带 llm- 前缀);显式归类为 API 的调用不计。qianwen 按量 provider 即使使用相同模型名也不会计入订阅额度。自定义渠道名需使用上述订阅名称之一,模型不在抵扣表中时需补充三项费率。

自定义 Provider 余额的 extract 规则支持四种形式:数字常量、点路径字符串、add/subtract 多路径加减、divideby 除数缩放。divide 适用于 NewApi 等以 quota 整数计量的端点(1 USD = 500000 quota,与 cc-switch 同款换算)。

以 NewApi 的 GET /api/usage/token 为例(响应 { "code": 200, "data": { "total_granted": ..., "total_used": ..., "total_available": ..., "unlimited_quota": false } }):

{
  "enabled": true,
  "display": "both",
  "refreshMinutes": 15,
  "label": "NewApi",
  "labelEn": "NewApi",
  "unit": "USD",
  "request": {
    "url": "https://你的NewApi域名/api/usage/token",
    "method": "GET",
    "headers": { "Authorization": "Bearer {{NEWAPI_API_KEY}}" }
  },
  "extract": {
    "remaining": { "op": "divide", "path": "data.total_available", "by": 500000 },
    "maxBudget": { "op": "divide", "path": "data.total_granted", "by": 500000 },
    "spend": { "op": "divide", "path": "data.total_used", "by": 500000 },
    "unit": "USD"
  }
}
  • {{NEWAPI_API_KEY}} 从 DSH 凭据库或环境变量解析(仅请求头支持占位符,URL 需写死完整地址);
  • 无限额度 token(unlimited_quota: true)没有 total_available,无法提取 remaining,查询会报「remaining is missing or not numeric」——请改用有限额度 token,或在中间层端点换算;
  • 配置入口:设置 → 费用(额度标签)→「自定义 Provider 余额」展开配置;或直接改 storages/cost-meter/ledger.jsonconfig.customBalance

凭据与安全

  • 变量名命名规则:{{VAR_NAME}} 的参考格式为 _API_KEY——`` 对应 DSH 模型配置页(设置 → 模型)里的 Provider ID,把 ID 大写、非字母数字字符替换为下划线,例如 openai{{OPENAI_API_KEY}}anthropic{{ANTHROPIC_API_KEY}}abc23-d{{ABC23_D_API_KEY}}。与模型页共用同一变量名,自定义余额查询与模型调用即共用同一把密钥(都从 DSH 凭据库解析)。该说明也展示在设置页「请求头 (JSON)」输入框上方。
  • 凭据输入框:展开条目配置后,「凭据输入」区会为请求头里出现的每个 {{VAR}} 占位符显示一行 write-only 输入框,密钥直接存入 DSH 凭据库(不落盘、不回显、不经 ledger.json),无需再手改环境变量或凭据文件。
  • 明文密钥自动迁移:旧版本把 Bearer sk-… 明文写在请求头里时会明文落盘;插件在启动时自动把这类明文导入 DSH 凭据库,并把头值替换为 {{CUSTOM_BALANCE_KEY_…}} 占位符(名称由条目 host + 头名派生,跨重启稳定),功能不受影响。此后 ledger.json 与下发给浏览器的配置永不包含明文密钥——疑似密钥头(Authorization / X-Api-Key / Bearer / sk- 前缀 / 长不透明串)一律置空,占位符与普通头照常保留。
  • 凭据白名单 allowedHosts:请求头携带密钥(占位符或明文)时,出站主机必须命中该白名单,否则直接拒绝——用于防止「导入他人配置」导致密钥外带。未配置白名单时放行并在日志警告一次。设置页条目面板内有「凭据白名单主机」输入框(逗号分隔)。
  • 混合凭据模板:同一头值同时含静态密钥与动态占位符时,不能自动整体迁移为嵌套凭据。插件提示待处理并阻止该值落盘、下发;请将静态部分另存为凭据,改用纯引用组合。正常的 Bearer {{VAR}}{{USER}}:{{PASS}} 保留。