前言¶
在 DeepSeek Harness(DSH)里长时间对话时,官方状态药丸会告诉你本轮的 token 与缓存命中,但不会直接回答三件事:钱包还剩多少、订阅套餐(例如 5 小时 / 周 / 月窗口)用到哪了、当前会话大概花了多少钱。很多人只能切到网页控制台或另开终端查 API,打断编写流程。
插件 dsh-quota-meter(维护者 atlasmarkz,分类:客户端)把这三类信息收成 composer 下方的一行环境条,挂在 conversation.composer.dock 插槽里,随会话切换而切换,不打断输入。下文介绍它的能力、安装方式与配置要点。
这是什么¶
dsh-quota-meter 面向 DSH web 配置:DeepSeek 钱包余额、OpenCode Go 等订阅配额、以及基于会话 tokenUsage 与单价表算出的 本次会话花费估算,显示在 composer 原生 pills(例如 1 turns · 15.9K tok)正下方。
示例一行(README 示意):
余额 ¥42.50 · OpenCode Go 5h 32% · 周 62% · 月 100% 已达上限 · 本次 ≈¥0.46
实现为纯 JavaScript,无构建步骤、无运行时依赖;包名 @mark_future_ai/dsh-quota-meter,当前版本 0.1.0,许可证 MIT。源码与说明见 GitHub 仓库,社区目录页为 SkillHub 条目。SkillHub 为独立插件目录站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
界面位置与行为¶
- 占用 composer dock 一行,切换会话时该行随会话变化。
- 某个数据源未配置(无密钥)时,对应 pill 不渲染;请求失败时 保留上一次成功值,整行不会变空,也不会挡住输入框。
内置数据来源¶
| 显示内容 | 来源类型 | 说明 |
|---|---|---|
余额 ¥… |
deepseek-balance |
GET https://api.deepseek.com/user/balance,按币种展示 |
5h / 周 / 月 等 |
opencode-go |
GET https://opencode.ai/zen/go/v1/usage;rate-limited 窗口显示「已达上限」 |
本次 ≈¥… |
会话 token 用量 × pricing 单价表 |
估算值,不是账单 |
默认已内置 DeepSeek 余额、OpenCode Go 套餐与 DeepSeek 列表价,裸装即可尝试显示(有对应密钥时)。
扩展与其它套餐¶
任意返回 JSON 的配额接口可通过通用源 http-json 接入,用点路径映射 meter / balance,无需改插件代码。未配置的 provider 不显示;失败不整块清空。
密钥与浏览器侧安全¶
密钥只在 宿主进程 中解析与使用,浏览器端通过同源路由轮询,只看到余额、百分比与重置时间等聚合结果,不接触 secret。解析顺序为:
- 源配置里的
apiKey(不推荐,会进 patch 文件) apiKeyEnv指向的环境变量(如DEEPSEEK_API_KEY、OPENCODE_GO_API_KEY)~/.local/share/opencode/auth.json(OpenCode Desktop 已有存储,供OPENCODE_*引用)- DSH 设置中的凭据服务
同源 API:GET /usage-meter/api/state[?force=1],由 harness 会话 cookie 保护,不对公网暴露。
安装与启用¶
在 DSH 中执行官方 README 给出的命令(也可在 DSH 内置插件市场安装):
dsh plugin --profile web add @mark_future_ai/dsh-quota-meter
首次安装后 重启一次 DSH:加载器在启动时组装插件树,新开一行不会热插入。
环境要求(package.json):Node >= 20;peer 依赖含 @deepseek-ai/cordis ^4、react ^18.2.0(均为 optional meta)。
典型配置¶
默认无需改配置即可工作。若要调整刷新间隔、单价或数据源,在 profile 的 cordis.patch.yml 中按插件 id 覆盖(README 示例 id 为 usage-meter):
- id: usage-meter
config:
refreshMs: 30000
pricing: { currency: CNY, input: 2, output: 3, cacheRead: 0.2, cacheWrite: 2 }
sources:
- { id: deepseek, kind: deepseek-balance, label: DeepSeek, apiKeyEnv: DEEPSEEK_API_KEY }
- { id: opencode-go, kind: opencode-go, label: OpenCode Go, apiKeyEnv: OPENCODE_GO_API_KEY }
常用配置项:
| 键 | 默认 | 含义 |
|---|---|---|
refreshMs |
60000 |
客户端轮询间隔;宿主按源缓存并合并进行中的请求 |
timeoutMs |
8000 |
单次请求超时 |
pricing.currency |
CNY |
CNY 显示 ¥,USD 显示 $ |
pricing.input / output |
2 / 3 |
每 百万 token 单价 |
pricing.cacheRead / cacheWrite |
0.2 / 2 |
每百万 token |
默认单价跟随 DeepSeek API 列表价;若实际用的模型价不同,应在 pricing 中改表,否则「本次 ≈」仅作参考。
自定义 HTTP 源示例(密钥用环境变量引用,避免写入 patch):
- id: my-plan
kind: http-json
label: My Plan
url: https://example.com/api/usage
headers:
authorization: "$ENV:MY_PLAN_TOKEN"
meters:
rolling: { percent: quota.fiveHour.used_pct, limited: quota.fiveHour.blocked, resetsAt: quota.fiveHour.reset, label: 5h }
weekly: quota.week.used_pct
balances:
USD: credits.usd
link: account.billingUrl
未显式配置 limited 路径的 meter,在 percent >= 100 时视为已达上限。
适用场景与注意¶
适合谁:日常在 DSH web 里写 agent、多会话并行,且同时使用 DeepSeek 付费余额和/或 OpenCode Go 等订阅窗口的用户;希望在 composer 内一眼看到配额与会话成本趋势,减少切屏查账。
使用前注意:
- 插件以当前 DSH 宿主进程权限 运行,会代你调用配置的 HTTP API;安装前建议阅读源码与 MIT 许可证,确认数据源 URL 与密钥策略可接受。
- 「本次 ≈」由 token 投影 × 你配置的
pricing计算,不是 官方账单;多模型混用时务必校准单价表。 - 仅需 DeepSeek 余额时可只配置
DEEPSEEK_API_KEY;OpenCode 相关 pill 在无密钥时不显示,不影响其它项。
结尾¶
经过上面的步骤,你可以在输入框下方得到一条跟会话走的用量环境条:官方余额、订阅窗口百分比,以及可配置的会话花费估算。需要细节配置、http-json 字段说明或本地冒烟测试命令时,以仓库 README 为准。
- 目录页:https://www.skillhub.cn/plugins/atlasmarkz/dsh-quota-meter
- GitHub:https://github.com/atlasmarkz/dsh-quota-meter