dsh-magpie-quota:在 DSH 输入框右侧查看 Magpie 网关各账号额度

前言

在 DSH 里同时接多个订阅账号时,最烦的不是没有模型可以用,而是不知道哪一家快要用完。切换到另一个账号、人工去各家面板翻剩下的额度,打断当前的作业;等额度真耗尽了再发现,往往已经跑了一段长任务。这个插件做的是把额度信息前置到输入框旁边:不改配置、不用 API Key,Magpie 网关里新加的账号会自动出现在面板里,一眼能看到剩余量。

下面介绍 hongcheng-li/dsh-magpie-quota,一个运行在 DSH 客户端侧的插件,负责把本机 Magpie 网关上报的额度与用量拉到 DSH 输入框右侧。

这是什么

dsh-magpie-quota 由 Hongcheng-LI 维护,定位是 DSH 客户端插件。它直接读取本机 Magpie 网关(托盘程序,默认监听 127.0.0.1:3425)的 GET /v1/magpie/quotas 与 GET /v1/magpie/usage 接口,因此在 DSH 里呈现的额度来自 Magpie 的统一视图:WorkBuddy、Trae、MiniMax、GLM、OpenCode Zen、Codex 等订阅账号,以及 DeepSeek 这类预充值余额账号。

Magpie 已经把这些账号统一成了 OpenAI 兼容接口,插件只是把它的额度数据搬到 DSH 输入框右边,所以不需要额外配置,也没有独立的鉴权流程。

插件当前版本为 0.4.2,许可证为 MIT,engines.node 要求 >=22。

核心功能

概括成几件事:输入框右侧一个 用量/额度 徽章;点开是一块双栏面板——左栏是用量汇总,右栏是逐账号的额度清单;另有自动刷新、主题跟随与失败账号的显式提示。

1、徽章与双栏面板

输入框右侧固定显示 用量/额度。悬停时给出各账号剩余百分比与当前所选周期的花费。点开是双栏卡片:左栏「当前用量」汇总折算消耗、调用次数、输入/输出 token,下面是按花费排序的模型用量榜,榜单每行第二行开头固定写来源(形如 WorkBuddy · 542 次 · 入 838.7K …),同一个模型名出现在两家账号下也能区分。右栏「额度」按账号列出窗口与剩余百分比。

2、三种结算口径

左栏数字按这三类分别显示:订阅积分(如 84.1 积分)、按量估值(≈¥6.12,用挂牌价估算)、预充值实扣(¥6.12,如 DeepSeek 等余额账号)。插件不换算汇率,也不对金额做红黄绿阈值判断,余额数值由 Magpie 格式化后原样透传。

3、额度清单与窗口翻译

右栏逐账号平铺窗口行,标签左对齐、数值右对齐,例如:

MiniMax (China)
4 小时用量上限                    剩余 95%
每周限额                          剩余 33%

DeepSeek(预充值)
余额                              ¥9.99

Magpie 原样给出的窗口名会翻译成 Codex 的措辞:5 hours → 5 小时用量上限,7 days → 每周限额,Credits → 额度,MCP · Month → 月度限额。同名处理同样适用于任意 N hours / N days,原始名称保留在悬停提示里。窗口顺序固定为短周期在上、长周期在下,与 Magpie 返回的数组顺序无关。

4、用量周期

左栏标题右侧有 当天 / 7 天 / 30 天 / 全部 分段按钮,选择记在 localStorage 键 magpie-quota-usage-period,默认 30 天。

5、预付余额账号与顶部余额条

kind: "balance" 的账号(DeepSeek、AIHubMix、new-api 中转站等)在面板里显示「余额 ¥9.99」加粗大字,而不是一行空着的百分比。所有预付余额账号会汇总成标题下的一行 余额 DeepSeek ¥9.99,不用往下滚。徽章在没有百分比窗口时会退化成 DeepSeek 余额 ¥9.99。

6、读取失败的账号

Magpie 会把探测错误挂在条目上(error 字段,典型如 401 Unauthorized: … api key: ****6b92 is invalid)。插件把这些账号排到最前,右上写红色「读取失败」,下一行给出可执行的原因(如「API key 无效(401),请到 Magpie 里更新这个账号的 Key」),完整原文放在悬停提示里。这类账号不会被显示成「未提供余额」。

7、重置卡与免费账号

Magpie 的 resets.each 里每张卡带窗口和到期时间,面板按「种类 + 到期日」归类成一行,例如 重置卡 5 小时 ×4 · 11-22 到期;5 小时 ×3 · 12-22 到期,完全重置的写成 完全 ×N,悬停给出每类共几张、具体哪天到期。

免费账号(Magpie 数据里的 plan/名字含 Free,或插件内置已知列表中的,如不带 Free 字样的 Trae CN)会在账号名后跟灰色 (免费账号) 后缀。

8、刷新、配色与主题

面板 60 秒自动刷新,打开时若缓存超过 15 秒会强制拉一次,底部有手动「↻ 刷新」。配色按钮在面板右上角,循环切换 跟随 DSH → 浅色 → 深色,选择记在 localStorage 键 magpie-quota-card-theme(该键沿用插件曾用名 magpie-quota,改名后保留以免清掉偏好),刷新后保持。选浅色/深色时卡片在自身的 --dsw-* 变量上做行内覆盖,因此即使 DSH 主题为深色,卡片也能固定成浅色。面板底色、文字、边框、阴影、状态色全部取 DSH 自身的设计令牌(--dsw-alias-*),浅色深色自动一致。面板 860px 宽,窄屏自适应为单栏,最高 84vh,超出内部滚动。

安装与启用

插件要求本机运行 Magpie(默认端口 3425,可用环境变量 MAGPIE_URL 覆盖)。下面两种安装方式取自 README。

# npm(推荐,安装最快)
dsh plugin --profile desktop add dsh-magpie-quota

# 或者直接从 GitHub 装
dsh plugin --profile desktop add github:Hongcheng-LI/dsh-magpie-quota

npm 包名与 GitHub 仓库名一致,都是 dsh-magpie-quota(dsh-magpie 裸名已被他人占用)。

如果要做本地开发,按下面的形态挂载:

dsh plugin --profile desktop add "<本目录的绝对路径>"

然后刷新 DSH 页面(或重启 DSH)即可看到输入框右侧的徽章。

插件分浏览器半边与 host 半边:dsh/index.js 注册在 DSH web server 上,负责读 Magpie 的 quotas 与 usage 接口(quota 缓存 15s、usage 缓存 20s,同一时刻只保留一次 in-flight 请求,Magpie 离线时面板显示错误原因而不是空白);dsh/client.js 是浏览器半边,负责输入框右侧插槽的徽章和弹层面板。改动 dsh/index.js 后必须重启 DSH 才生效,只改 dsh/client.js 刷新页面即可。

浏览器侧通过同源请求 /magpie/quotas 与 /magpie/usage(Magpie 自身的 API 不带 CORS 头,所以由 host 半边代取)。

典型用法

装好并刷新页面后,正常在 DSH 里使用即可。想确认数据是否通了,用当前页面地址栏里的端口自检,host 半边不需要登录 token:

curl.exe --noproxy '*' http://127.0.0.1:<当前端口>/magpie/quotas

不打开 DSH 也能看样式,用真实 Magpie 数据渲染一个自包含的 preview.html:

node scripts/preview.mjs [输出路径]

Magpie 没开时渲染的是「连不上 Magpie」的离线态。想看「当天」周期,改脚本里的 usagePeriod。

如果你用的是 new-api / one-api 这类第三方中转站,插件本身只读 Magpie,能不能显示某家余额取决于 Magpie 有没有给它配余额探测。在 Magpie 侧配好即可,面板会自动显示,不用改插件代码:

# new-api / one-api 中转站(要 access token + 用户 id)
magpie provider set my-relay balance=https://relay.example.com/api/user/self `
  balance.path='$data.quota / 500000' balance.token=<access token> header.New-Api-User=<user id>

Magpie provider 支持的键有 balance=<URL>(余额查询地址)、balance.path=<表达式>(金额在响应里的位置,可用 + - * / 和括号组合,$ 或 .. 前缀取带符号值,末尾 % 表示按 1 的比例显示成百分比)、balance.method=GET|POST、balance.token=<token>、header.X-Foo=<v>。如果厂商根本不提供余额查询接口,那就任何工具都取不到余额,只能退而看 Magpie 的花费统计:GET /v1/magpie/usage(30 天 cost / credits / 调用数)。

适用场景与注意

适合已经在本机用 Magpie 把多个订阅账号和余额账号统一成 OpenAI 兼容接口、并在 DSH 里使用这些账号的开发者。它的价值在于把「哪一家快用完了」这件事从记忆里搬出来,变成输入框旁边常驻的一块信息,长任务前可以先扫一眼再决定用哪家。

需要注意的几点:

  • 插件以当前 DSH 进程的权限运行,host 半边会访问本机 127.0.0.1:3425 等 Magpie 端口。安装前先打开源码和 LICENSE 检查一遍(当前版本 0.4.2,MIT 许可证)。
  • 数据源是 Magpie,不接云端或第三方接口;Magpie 未运行时面板显示错误原因,不会静默展示空数据。
  • 列表页对它的描述是客户端分类。它的 README 也提供了 npm 包名与 GitHub 仓库名,两者一致。
  • 仓库自带测试与语法检查,全离线,不依赖 Magpie 也不需要 DSH:node --check 两个入口文件,node --test tests/client.test.mjs tests/host.test.mjs(15 项断言),CI 见 .github/workflows/ci.yml(Node 22,语法 + 测试 + manifest 校验)。

结尾

这个插件解决的是一个很具体的问题:多账号额度分散、没有地方集中看。它把 Magpie 已经聚合好的 quotas 与 usage 接口接到 DSH 输入框右侧,零配置,新增账号自动出现。

目录页:https://www.skillhub.cn/plugins/Hongcheng-LI/dsh-magpie-quota
GitHub:https://github.com/Hongcheng-LI/dsh-magpie-quota
npm:https://www.npmjs.com/package/dsh-magpie-quota

羽毛球分组比赛记分
小程序二维码

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

小夜