前言¶
在 DSH 里跑智能体或接多条上游线路时,sub2api 侧往往挂着多个账号,各自有 5 小时、7 天等额度窗口和当日请求统计。若只能登录 sub2api 管理后台逐页查看,和本地对话、插件配置是割裂的。下面介绍社区插件 dsh-sub2api-monitor:在 DSH 桌面端对话标题栏提供只读用量入口,通过管理 API 拉取账号列表与用量,不改动 DSH 核心,也不额外起 HTTP 服务或子进程。
这是什么¶
dsh-sub2api-monitor(npm 包名同名)是 fegnze 维护的 DeepSeek Harness 桌面插件,分类为 admin-security。当前包版本为 0.2.1,许可证 MIT。插件声明兼容 DSH 0.2.0-rc.2 与 0.2.1-rc.2,运行环境要求 Node >=22。
界面形态很克制:仅在对话标题栏增加用量入口,没有侧栏项、全屏页或居中对话框。弹出层最大宽度 700px,随视口自适应;点击外部、按 Esc 或点关闭可收起,点内部不会误关。插件不修改 DSH 核心。
核心功能¶
列表与刷新¶
Host 通过管理 API 分页读取账号列表,并为每个账号请求 /usage 与 /today-stats。默认每 60 秒刷新一次,最多 3 个账号并发处理。Client 每 10 秒读本地缓存;手动刷新最短间隔 10 秒。插件卸载时会清理定时器与请求。所有操作均为只读,不会调用账号启停、凭证刷新或额度重置接口。
额度展示覆盖 5 小时、7 天窗口,以及上游 Sonnet/Opus 窗口,显示使用百分比与相对重置时间,悬停可看完整时间戳。Anthropic 侧显式使用 source=passive,与站点被动采样一致。卡片紧凑响应式,保留今日统计并对大数做缩写;同步状态以标题栏圆点表示。订阅类型仅从 credentials.plan_type 白名单标量提取,与 OAuth 等认证方式分开展示;promax 显示为站点对应的 Pro 500,缺失时显示 “Unknown subscription”,凭证对象不会透传到前端。
今日请求、Token、费用按上海时区;费用按 sub2api 记账口径,不等同于上游账单。用量在 80%/95% 会高亮;对话摘要会统计需要关注的账号数(当前不发送系统通知)。未知字段保持未知;部分失败单独标记,列表失败时保留旧数据并标为过期;上游快照若早于采集,会在 API 提供时展示来源时间戳。
账号详情¶
在列表中点击卡片(或 Enter/Space)可在同一弹出层内打开详情,Back 返回列表。详情按需请求 /admin/accounts/:id/stats?days=30&timezone=Asia%2FShanghai,缓存 60 秒,并发请求会合并。仅接受已采集账号 ID,拒绝重定向;Host 只投影白名单字段。无历史库、无后台轮询历史。
详情页展示周期合计、报告窗口长度与记录日期范围、按日的请求/Token/账号成本柱图、按 Token 的模型排行(可展开 input/output/cache 构成)、活跃日均值、峰值日与平均请求时长等。缺失日期不填零。范围仅覆盖经 sub2api 的调用;日记录成本用 actual_cost,模型维度用 account_cost。出错可重试;离开详情会中止 UI 请求。
安全与数据边界¶
仅 Host 解析管理员 API Key,每次请求解析一次,轮换后下次刷新即生效,不会注入 Client、用量接口或 profile。本地 /sub2api-monitor/api 仅接受回环请求、有效本地 Host、同源 Origin(若存在)及头 X-Sub2api-Monitor: 1,不启用 CORS。上游重定向会被拒绝以防密钥泄露;前端只收到白名单展示字段。
安装与配置¶
在 DSH 的 Plugins 页面安装 npm 包 dsh-sub2api-monitor,在插件详情中打开配置表单填写并保存。配置写在插件信息页,不单独注册 Host 设置页;用量弹出层顶部的 Configuration 按钮也可打开同一表单。DSH 设置服务将配置写入 profile,无需改插件源码。
启用新包前,请停用旧的 sub2api-monitor 与更早的 myspace-sub2api-monitor,避免重复采集;参数迁到插件配置后卸载旧包。组件 ID 与配置命名空间均为 dsh-sub2api-monitor。从 0.1.0 升级时,需在 profile 里把旧组件 ID 换成新 ID 并保留配置字段,不要只换包丢配置。
主要配置项:
| 字段 | 说明 |
|---|---|
baseUrl |
站点 API 地址,需包含 /api/v1 |
adminApiKeyEnv |
管理员 API Key 的凭证引用名,默认 SUB2API_ADMIN_API_KEY;表单填写的 Key 写入 DSH 凭证服务($DSH_HOME/.credentials.yaml),不写在插件配置里 |
allowInsecureHttp |
默认关闭,仅在明确接受明文风险后开启 |
intervalSeconds |
30–3600 秒,默认 60 |
primaryAccounts |
多选主账号(从未过滤的 Host 缓存加载);Refresh Accounts 用已保存连接拉上游(10 秒冷却) |
primaryFirst |
默认 true,主账号排在前面 |
displayFilter |
all、primary、available、attention(含不可用、请求失败、用量 ≥80%) |
sortBy |
available(默认)、name、usage-desc、usage-asc |
示例连接配置(Key 需通过表单或凭证服务单独设置):
{
"baseUrl": "https://your-sub2api.example/api/v1",
"adminApiKeyEnv": "SUB2API_ADMIN_API_KEY",
"allowInsecureHttp": false,
"intervalSeconds": 60
}
从 0.1.x 升级:明文字段 adminApiKey 已移除,请将值迁入凭证服务下的 SUB2API_ADMIN_API_KEY(或在表单重填),并从 profile 的 cordis.patch.yml 删除 adminApiKey。旧的独立 JSON 配置与环境变量 SUB2API_MONITOR_CONFIG 不再读取,迁移后删除旧配置文件。
典型用法¶
- 在 DSH Plugins 页安装
dsh-sub2api-monitor,保存baseUrl并在首次保存时填写管理员 API Key(或通过进程环境、.env提供SUB2API_ADMIN_API_KEY;若环境已继承该变量,表单 Key 输入为只读)。 - 打开任意对话,点标题栏用量入口,查看各账号额度窗口与今日统计;标题栏圆点反映同步状态,摘要数字反映当前
displayFilter下的账号数。 - 在配置里勾选
primaryAccounts并设displayFilter为attention,优先盯主账号与需关注项。 - 点击账号卡片进入 30 日统计详情,查看模型排行与日成本柱图;不需要时 Back 返回列表。
适用场景与注意¶
适合在 DSH 本地桌面流程中运维 sub2api 多账号、需要快速看额度重置与当日消耗、又不想离开对话界面的开发者。插件以当前 DSH 进程权限运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,并确认 baseUrl 与凭证来源可信。allowInsecureHttp 仅在内网或测试环境且接受风险时使用。社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,属「一切皆插件」生态中的第三方条目。
结尾¶
dsh-sub2api-monitor 把 sub2api 账号额度、重置时间与今日统计收进 DSH 对话标题栏,只读、轻量、与 profile 凭证分离。需要安装说明与变更细节时,以仓库 README 与 docs/zh.md 为准。
- 目录页:https://www.skillhub.cn/plugins/fegnze/dsh-sub2api-monitor
- GitHub:https://github.com/fegnze/dsh-sub2api-monitor