dsh-quota-panel:给 DSH web 表面加一个 Provider 额度/余额状态组件

前言

DSH 的理念是「一切皆插件」,web 表面可以围绕现有宿主能力做扩展。使用 DSH 的开发者经常会同时配置多个 AI provider,需要频繁查看某个 key 还剩多少余额或额度;coding plan 还可能涉及 5 小时窗口、weekly pool 和 MCP monthly lane。

dsh-quota-panel 解决的是这个具体场景:在 dsh web 的产品 UI 右下角提供一个状态组件,把已配置 provider 的余额/额度集中显示出来。

这是什么

wenzetan/dsh-quota-panel 是一个面向 DeepSeek Harness(DSH)web surface 的 provider quota / balance widget。

它位于产品 UI 右下角,支持收起的 capsule 视图、展开的 card 视图和 settings panel。作者为 wenzetan,许可证为 MIT,版本号为 0.9.1-rc.1

它自 v0.5 起是 dual-face 插件:宿主侧负责处理 provider 请求与凭证,浏览器侧通过 loopback-only RPC 通道渲染状态;组件运行在 shell.overlay 槽位,也就是右下角。

核心功能

自动发现 provider

该插件内置 provider catalog,包含 15 个 built-in providers。当某个 provider 的 key 在以下位置可解析时,对应行会自动出现:

$DSH_HOME/.credentials.yaml
.env
environment variables

也就是说,安装并重启 dsh web 后,已配置 key 的 provider 可以零配置出现在面板中。

移除 key 后,对应行会消失。

支持的 provider 类型

已核实的支持范围包括:

  • DeepSeek
  • OpenRouter
  • SiliconFlow
  • Moonshot
  • StepFun
  • xAI
  • Zhipu GLM
  • OpenCode Go
  • ChatGPT subscription,Plus / Pro 通过 Codex login
  • Volcengine Ark
  • one-api / new-api style aggregators
  • coding plans,包括 5-hour window、weekly pool 和 MCP monthly lane

状态显示

组件提供两种形态:

  • 收起状态:minimal capsule,用独立的状态点和数值表示账户状态。
  • 展开状态:完整 card,每个 provider 一行,包含状态点、名称、主数值、辅助信息,以及 usage 类 provider 的进度信息。

对 balance 行和 usage 行会做 per-account status grading。也就是说,不同账户或不同额度行可以分别显示状态,而不是整张卡片统一变色。

自动刷新

默认刷新间隔为 60 秒。

页面隐藏时会暂停刷新;刷新请求进行中时,重复点击不会触发并发请求。

设置面板

settings panel 支持以下本地设置:

  • per-provider visibility
  • refresh interval
  • per-provider warn thresholds
  • per-provider HTTP(S) proxy URL
  • capsule display mode
  • restore defaults

这些设置会立即生效,并持久化到浏览器 localStorage;已核实说明指出,它们不会被写入 profile,也不会上传。

代理支持

组件支持 per-row HTTP(S) proxy。对于无法从当前网络直连的 provider,可以为对应行配置代理地址。

已核实限制是:只接受 HTTP/HTTPS proxy,socks5 proxy 会被拒绝。

主题

组件主题由 Harness design tokens 驱动,跟随产品主题。它不单独携带一套固定配色。

安全边界

API keys 不会到达浏览器。浏览器侧只通过 loopback-only RPC 通道与宿主侧通信,接收的是 normalized views。

另外,该插件没有 npm dependencies,并且不需要 allowBuilds authorization。

安装与启用

已核实材料中没有给出官方安装命令,因此这里不补写安装命令。

可核实的包信息如下:

name: dsh-quota-panel
version: 0.9.1-rc.1
license: MIT
peerDependencies:
  @deepseek-ai/cordis: ^4.0.1
  react: *

文档中给出的启用流程是:

  1. 安装该插件。
  2. 重启 dsh web
  3. 当 provider 的 key 在 $DSH_HOME/.credentials.yaml.env 或 environment variables 中可解析时,对应行自动出现。

典型用法

  1. 安装后重启 dsh web。已配置 key 的 provider 会自动出现在面板中,无需逐项手动添加。
  2. 删除某个 provider 的 key 后,对应行会消失。
  3. 在 settings panel 中调整 per-provider visibility、refresh interval、warn thresholds、capsule display mode 等本地设置。这些设置立即生效,并保存在浏览器 localStorage
  4. 如果某个 provider 无法从当前网络直连,可以为其配置 HTTP(S) proxy URL。
  5. 如果缺少某个 provider,可以按 README 的建议提交 issue,提供 provider id 和 balance API URL。

适用场景与注意

适合:

  • 使用 DSH web surface 的开发者。
  • 已经配置一个或多个 provider API key,并需要频繁查看余额、额度、coding plan 窗口的用户。
  • 需要在右下角快速查看 provider 状态,并希望减少手动打开 provider 控制台的场景。

不适合:

  • 只暴露 usage/cost 查询、不暴露 remaining balance endpoint 的 provider。已核实说明中提到,OpenAI、Anthropic、Together、Groq、Mistral、Cohere、DashScope、Baichuan 目前尚未支持。
  • 只能依赖 cookie 或 CLI 访问 quota 页面的 coding plan。已核实说明中提到,Qwen Token Plan、Xiaomi MiMo Token Plan 和 Qoder 目前不支持。
  • 需要从 profile 插入 custom adapter 的场景。已核实说明指出,custom adapters cannot be plugged in from the profile。
  • 需要把组件放到 sidebar、header 或 status bar 的场景。该组件限制在 shell.overlay 槽位,即右下角。
  • 需要 socks5 proxy 的场景。该组件只接受 HTTP/HTTPS proxy。

注意:

  • 插件以当前 dsh 进程权限运行。安装前建议检查源码、许可证和 peerDependencies。
  • 已核实许可证为 MIT。
  • API keys 不会到达浏览器,浏览器只接收 normalized views。
  • 本地设置保存在浏览器 localStorage,不会写入 profile 或上传。

结尾

dsh-quota-panel 是一个面向 DSH web surface 的轻量 provider quota / balance widget。它通过 built-in catalog 和 auto discovery 降低配置成本,用 capsule、card 和 settings panel 提供日常查看与调整入口,同时保持 API keys 不进入浏览器。

相关链接:

  • 目录页:https://www.skillhub.cn/plugins/wenzetan/dsh-quota-panel
  • GitHub:https://github.com/wenzetan/dsh-quota-panel
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜