xiaochuan7
dsh-opencode-quota
DeepSeek harness的圆圈图标里面增加open code的额度显示
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
OpenCode Go 额度显示(DeepSeek Harness)
面向 DeepSeek Harness 的社区插件,按官方
dsh-plugin话题收录,可配合任何编码 Agent 自动安装适配。
在 DeepSeek Harness 聊天界面中,为内置的「上下文占比」圆环面板(ContextMeter)添加 OpenCode Go 套餐额度 显示:
- 面板顶部显示 月限额 / 周限额 / 五小时(滚动窗口)三项
- 每项显示:名称、使用进度条、剩余百分比(
剩 X%)、重置时间 - 进度条颜色按剩余量分级:≥50% 绿 / ≥20% 橙 / <20% 红
- 只在当前 LLM 网关是 OpenCode Go 时显示;切到 DeepSeek 官网等其他网关时自动隐藏,保持官方原样
- 前端与后端解耦:路由缺失或不可用时不影响原有上下文占比功能
效果展示
点输入框上方的上下文占比圆环,面板顶部即显示额度:
面板细节:
以上为真实截图,数值来自当前 OpenCode Go 账户的真实配额。
方式一:让 AI Agent 自动适配(推荐)
把下面这段提示词发给你的编码 Agent(DSH、Claude Code、Cursor、Gemini CLI 等),它会根据你本地的实际版本自动完成改动,不需要手动替换文件:
为 DeepSeek Harness 项目添加「OpenCode Go 套餐额度」显示:在聊天输入框的上下文占比圆环(ContextMeter 面板)顶部显示额度区块。
参考实现见仓库 Dsh-OpenCode-Go-(如可用):
packages/client/ui-conversation/src/client/skeleton/ContextMeter.tsx— 前端组件改动packages/client/ui-conversation/src/client/skeleton/ContextMeter.module.css— 样式server/opencode-quota-route.mjs— 服务端路由GET /api/opencode-quota参考实现server/cordis.patch.yml— 挂载配置示例要求(参考实现已覆盖,请按你的实际版本适配):
- 前端:ContextMeter 面板顶部渲染「OpenCode Go 额度」区块,共三项:月限额、周限额、五小时。每项显示:名称、使用进度条、剩余百分比(
剩 X%)、重置时间。进度条颜色按剩余量分级:≥50% 用绿色、≥20% 用橙色、<20% 用红色。- 数据源:组件挂载后请求
/api/opencode-quota,之后每 60 秒刷新一次。响应格式:{ ok: true, usage: { rolling: { percent, status, resetsAt }, weekly: {...}, monthly: {...} } },其中percent是已用百分比(剩余 = 100 − percent)。请求失败或ok不为true时隐藏额度区块,面板保持官方原样。- 服务端路由:提供
GET /api/opencode-quota:
- 从部署配置读取 LLM 网关
baseURL(settings 的llm-deepseek.baseURL,未设置时回退web-search-deepseek.baseURL/ 默认值)与 API key(apiKeyEnv环境变量,按需回退OPENCODE_GO_API_KEY→DEEPSEEK_API_KEY)- 仅当
baseURL匹配opencode.ai时返回额度;否则返回{ ok: false, notApplicable: true }(面板自动隐藏)- 请求
{baseURL}/usage(Authorization: Bearer <key>)获取usage.rolling / weekly / monthly- 成功结果缓存约 60 秒;失败不缓存(配置切换立即生效)
- 通过部署的 cordis 用户 patch(如
~/.dsh/profiles/web/cordis.patch.yml)挂载该插件,用webServer.register注册路由- 解耦:路由缺失、不可用或网关不是 OpenCode Go 时,前端自动隐藏额度区块,不影响原有上下文占比功能。
完成标准:构建后打开 GUI 的上下文占比圆环,面板顶部可见额度区块且三项数据正确(数值来自当前账户的真实配额);把网关切到非 OpenCode Go 后额度区块消失、面板恢复官方原样。
方式二:手动安装(版本差异大,不推荐)
- 把两个前端文件按原路径覆盖到你的 deepseek-harness 源码:
packages/client/ui-conversation/src/client/skeleton/ - 重新构建前端产物(
pnpm build或项目对应的打包命令) - 把
server/opencode-quota-route.mjs放到你的用户 patch 目录(默认~/.dsh/profiles/web/),并参照server/cordis.patch.yml在cordis.patch.yml里挂载 - 确认
settings.yaml中 LLM 网关baseURL指向 OpenCode Go(如https://opencode.ai/zen/go/v1),并配置 API key 环境变量(OPENCODE_GO_API_KEY或DEEPSEEK_API_KEY)
目录结构
| 文件 | 说明 |
|---|---|
packages/client/ui-conversation/src/client/skeleton/ContextMeter.tsx | 前端组件改动(额度区块渲染 + 轮询) |
packages/client/ui-conversation/src/client/skeleton/ContextMeter.module.css | 额度区块样式 |
server/opencode-quota-route.mjs | 服务端路由参考实现(GET /api/opencode-quota) |
server/cordis.patch.yml | 路由插件的挂载配置示例 |
本插件为 DeepSeek Harness 社区插件,已按官方规范标记 dsh-plugin 话题(GitHub 仓库 Topics 中可查),并附官方 "powered by dsh" 徽章: