前言¶
DeepSeek Harness(DSH)的 Web 界面本身不提供 GitHub Copilot 用量面板。若已安装 dsh-oauth-copilot,授权与账号可用模型会保存在凭证里;Harness 往往要等到请求触发 QUOTA 或 RATE_LIMIT 类失败提示时,你才会意识到配额用尽。日常对话前想一眼看到 chat、补全、AI credit 还剩多少,就需要额外的前端展示。下面介绍社区插件 dsh-copilot-quota(维护者 vowa-antilamer),它在 composer 发送按钮一侧挂载实时徽章,用同一账号的 Copilot 内部接口拉取剩余额度。
这是什么¶
dsh-copilot-quota 是 DSH 的 Web 客户端插件(platform: web),当前 npm 包版本 0.1.0,许可证 MIT。一句话定位:在已登录 Copilot 授权的前提下,把当前账号的 metered 配额(含 chat、completion、AI credit 等桶)汇总成 composer 行内的小徽章;无 Copilot grant 时不渲染,避免显示不存在的计量项。
与 Harness 自带行为的关系:dsh-oauth-copilot 负责 OAuth 与 grant 存储;本插件只读凭证、代调 GitHub Copilot 内部用户接口,并把衍生数字通过同源 API 交给浏览器端展示,token 不会下发到浏览器。
核心功能¶
界面示例如 README 所示:Copilot 200/200,左侧圆点表示「各 metered 桶中剩余百分比的最差值」——绿色正常,≤40% 琥珀色,≤15% 红色。数字默认取 chat 桶的 remaining/total;若无 chat 则回退到第一个 metered 桶。
| 交互 | 行为 |
|---|---|
| 悬停 | 登录信息、计划与 SKU、各桶明细、配额重置日、上次刷新时间 |
| 单击 | 强制刷新,绕过服务端缓存 |
| 隐藏 | 无 Copilot grant,或某桶为 0 of 0(例如免费计划无 AI credit 池)时不展示 |
服务端默认缓存 GitHub 响应 5 分钟(可通过配置修改);刷新失败时界面保留上一次成功读数。客户端在 conversation.input.right 插槽挂载,约 每 2 分钟 轮询,并在窗口重新获得焦点时更新。
环境与依赖¶
- DeepSeek Harness:
>= 0.1.0-rc.6且< 0.3.0,使用 web profile(README 注明在0.2.0-rc.2上验证过)。 - Node:
>= 18(见package.jsonengines)。 - Copilot 登录(人工在终端完成,设计如此):
npx -y dsh-oauth-copilot login
- GitHub 范围:仅 github.com;GitHub Enterprise 不支持,与
dsh-oauth-copilot一致。
安装与启用¶
从 GitHub 安装(无需 clone 或构建):
dsh plugin --profile web add github:vowa-antilamer/dsh-copilot-quota
本地目录安装:
dsh plugin --profile web add /path/to/dsh-copilot-quota
Live profile 会自行重组(服务端路由与客户端 bundle 随即可用);请刷新浏览器页面 以加载客户端模块。若刷新后仍无徽章,再考虑重启 dsh web。
卸载:
dsh plugin --profile web remove dsh-copilot-quota
可选配置¶
在 profile patch 或 GUI 插件行的 config 中可设置:
- id: copilot-quota
config:
cacheMs: 300000 # GitHub 响应缓存时长(毫秒);0 表示禁用缓存
典型用法与自检¶
- 完成
dsh-oauth-copilot login,启动或保持dsh web运行。 - 按上文命令为 web profile 添加本插件,刷新页面。
- 在对话输入框右侧查看徽章;需要最新数据时单击徽章强制刷新。
不打开 GUI 时,可在本机 Harness 默认端口上探测 API(README 示例端口 3080):
curl http://127.0.0.1:3080/copilot-quota/api
实现要点(便于排查)¶
| 半部 | 文件 | 职责 |
|---|---|---|
| Server | index.js |
经 ctx.credentials 读取 llm-pi-ai/github-copilot,请求 GitHub,提供 GET /copilot-quota/api |
| Client | client.js |
插槽 conversation.input.right;轮询与 focus 时拉取同源 /copilot-quota/api |
服务端请求与 VS Code 使用的端点相同:
GET https://api.github.com/copilot_internal/user
Authorization: Bearer <token>
兼容 quota_snapshots(较新账号)以及 monthly_quotas + limited_user_quotas(较旧形态)。
适用场景与注意¶
适合:已在 DSH Web 中用 Copilot 模型、希望对话前可见剩余 chat / 补全 / AI credit,并愿意配合 dsh-oauth-copilot 维护 grant 的开发者。
局限与风险(均来自上游 README):
copilot_internal/user非公开 GitHub API;响应结构变更时,错误会出现在 tooltip,而不拖垮整页 UI。- 徽章反映当前登录账号的配额,与 composer 里选中的模型无关。
- 定时拉取 + 服务端缓存会导致数字相对真实用量滞后,滞后上限约为缓存窗口。
- 插件在 当前 dsh 进程权限 下运行;安装前请自行审阅 源码与 LICENSE,社区目录 skillhub.cn 为独立生态索引,与 DeepSeek / 幻方无官方从属关系。
结尾¶
经过上面的步骤,你可以在 Harness Web 输入区旁持续看到 Copilot 配额,而不必等到限流错误才被动得知。更多信息见目录页 dsh-copilot-quota @ skillhub.cn 与仓库 github.com/vowa-antilamer/dsh-copilot-quota。