enoughpower/dsh-desktop-mac--plugins-dsh-cost-meter ↗★ 1
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.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:enoughpower/dsh-desktop-mac#f957acef9a0861cef94ae074c75d6bfab0c04379&path:plugins/dsh-cost-meter说明文档
阅读完整 README ↗自定义 Provider 余额配置示例(NewApi 模板)
千问 / 阿里云资金账户余额可直接点击「添加千问 / 阿里云余额」,使用 RAM AccessKey 签名查询,显示接口返回的可用金与币种;配置步骤、所需权限及口径见千问余额说明。
千问 Token Plan 的本地 Credits 仅统计 qwen、qwen-tokenplan、qianwen-tokenplan、qwen-token-plan、qianwen-token-plan 订阅 provider(大小写不敏感,可带 llm- 前缀);显式归类为 API 的调用不计。qianwen 按量 provider 即使使用相同模型名也不会计入订阅额度。自定义渠道名需使用上述订阅名称之一,模型不在抵扣表中时需补充三项费率。
自定义 Provider 余额的 extract 规则支持四种形式:数字常量、点路径字符串、add/subtract 多路径加减、divide 按 by 除数缩放。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.json的config.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}}保留。