前言¶
在 DSH 里用 OpenCode GO 做模型路由时,除了能正常聊天,往往还需要随时看清三窗口额度还剩多少、官方目录里有哪些模型、以及网关和密钥是否配置一致。社区里已有在侧栏底部常驻 widget 的用法插件;若你更习惯把账户类信息收进 设置,且不想为额度单独再配一把 key,就需要一个入口与 Command Code、Codex 账户页同级、又不占用左侧栏的客户端插件。下面介绍维护者 zztdandan 发布的 dsh-opencode-go-quota-settings(当前 package 版本 0.7.2,MIT 许可证)。
这是什么¶
dsh-opencode-go-quota-settings 是 DSH 的 web 客户端插件:在 设置 → OpenCode GO 一页内展示 OpenCode GO 的三窗口额度、模型目录、密钥与连接参数;浏览器通过 同源代理 访问用量与模型接口,密钥由 host 端调用,不进前端。对话里还提供斜杠命令 /opencode-go-quota。
本仓库是 @astervolans/dsh-opencode-go-usage 的改造分支(上游又来自 yumusb/dsh-opencode-go-usage)。与上游 1.5.0 相比,入口从侧栏 widget 改为 settings.section;展示改为三张额度卡;密钥 复用 DSH opencode-go 模型路由 的解析顺序,并可在设置页内填写;额外读取 模型目录、密钥指纹与诊断快照;不注册任何侧栏槽位。
数据来源为官方接口:GET https://opencode.ai/zen/go/v1/usage 与 GET https://opencode.ai/zen/go/v1/models(网关地址可在页内配置,默认 https://opencode.ai/zen/go)。
核心功能¶
设置页:额度、模型、密钥、连接¶
- 额度:5 小时 / 每周 / 每月三窗口,每张卡含剩余百分比、进度条、已用比例、重置倒计时、绝对时间与窗口占比;支持手动刷新与按间隔自动刷新。
- 模型目录:来自 host 拉取的
/v1/models,展示上下文与输出上限、视觉/工具/推理能力、每 1M token 价格、峰时倍率等;可搜索、按能力筛选,逐个开关后保存到llm-pi-ai的providers.<route>.models(模型选择器只显示已启用项);「恢复目录默认」可撤销限制。 - API 密钥:与 设置 → 模型 → OpenCode Go 同源,不必为额度单独复制 key;页面可显示当前引用与来源、密钥指纹(不暴露明文);未绑定时可用 同步到模型设置 补配置。
- 连接与刷新:网关地址、自动刷新间隔、额度缓存 TTL、是否注入
x-opencode-session、是否显示模型目录/诊断等,写入本插件 profile 后 热生效。
密钥解析顺序(与模型设置同源)¶
插件按下列顺序解析 key(资料原文顺序):
llm-pi-ai的providers.opencode-go.apiKeyEnv(无opencode-go时也会参考providers.opencode);llm-pi-ai登录凭据llm-pi-ai/opencode-go;- 环境引用
OPENCODE_API_KEY; - 兜底:本插件配置
apiKeyEnv(默认OPENCODE_GO_API_KEY)。
在设置页保存密钥时,会写入模型路由使用的同一凭据引用;必要时补上 providers.opencode-go.apiKeyEnv,与模型页保存等效。
仍可用文件方式(与模型页同一凭据域):
# ~/.dsh/.credentials.yaml
OPENCODE_API_KEY: sk-...
路由与命令¶
与上游路径并存、不冲突,例如:
/dsh-opencode-go-quota-settings/usage/dsh-opencode-go-quota-settings/models/opencode-go-quota
DSH Go(手机 App)¶
插件通过 ctx.settings.configure({ auto: false }) 关闭自动生成表单,App 直接打开插件自带的 settings.section 整页(与 Command Code、Prime Memory 同一路径):额度、模型目录、密钥与连接参数同屏,窄屏单列布局。资料说明不在输入框上方占用状态条。
可配置项(插件 profile)¶
| 键 | 默认 | 说明 |
|---|---|---|
apiKeyEnv |
OPENCODE_GO_API_KEY |
兜底凭据引用 |
baseUrl |
https://opencode.ai/zen/go |
GO 网关 |
cacheMs |
30000 |
host 端额度缓存 TTL |
refreshMs |
60000 |
设置页自动刷新间隔(最小 15 秒) |
modelsCacheMs |
300000 |
模型目录缓存 TTL(最小 60 秒) |
requestTimeoutMs |
20000 |
/v1/usage、/v1/models 超时 |
injectSessionHeader |
true |
是否为 GO 网关聊天注入 x-opencode-session |
showModels |
true |
是否显示模型目录卡片 |
showDiagnostics |
false |
是否显示诊断卡片 |
开启诊断后,「复制诊断」输出不含密钥明文的 JSON,便于贴到 issue。
版本门禁:peerDependencies 为 @deepseek-ai/dsh >=0.1.7-rc.1 <0.3.0;README 记载在 DSH 0.2.1-rc.2 隔离 profile 中用真实 key 做过只读接口验证(2026-10-31)。
安装与启用¶
若曾安装侧栏版 OpenCode GO 用量插件,先移除,避免设置里出现两份 OpenCode GO:
dsh plugin --profile web remove @astervolans/dsh-opencode-go-usage
dsh plugin --profile web add dsh-opencode-go-quota-settings
未走 npm 分发时,也可从 GitHub 安装:
dsh plugin --profile web add github:zztdandan/dsh-opencode-go-quota-settings
经过上面的步骤,重启 dsh web,并在浏览器 硬刷新。入口:设置 → OpenCode GO;对话中可用 /opencode-go-quota。
回滚:
dsh plugin --profile web remove dsh-opencode-go-quota-settings
典型用法¶
- 确认 设置 → 模型 → OpenCode Go 已能聊天,或在本插件 API 密钥 卡片粘贴 key 并保存。
- 打开 设置 → OpenCode GO,查看三窗口额度;需要时用页内「刷新」或调整 自动刷新 / 额度缓存。
- 在 模型目录 中搜索、筛选,启用/禁用模型后保存;用「测试连接」确认
/v1/models可达。 - 排查问题时打开 显示诊断信息,用「复制诊断」导出 JSON(不含 key 明文)。
页内 连接与刷新 与 设置 → 插件 里该插件的配置表单是同一份数据。
适用场景与注意¶
适合:已在 DSH web(及资料所述的 dsh-go App 路径)使用 OpenCode GO,希望额度与模型管理集中在设置页、且密钥与模型路由一致的用户;不想侧栏再占一个 widget 时,本插件与上游侧栏版可二选一。
注意:
- 插件在 当前 dsh 进程权限 下运行,安装前请自行查看 GitHub 仓库 源码与 MIT 许可证及 NOTICE 中的 fork 说明。
- 关闭 注入
x-opencode-session后,资料提示聊天可能被网关拒绝。 - 社区插件目录 SkillHub 上的条目 为独立站点信息,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」的扩展方式。
结尾¶
dsh-opencode-go-quota-settings 把 OpenCode GO 的额度、模型目录、密钥与连接参数收进 设置 → OpenCode GO,同源代理保护 key,并与模型路由共用凭据;侧栏无入口,对话可用 /opencode-go-quota。
- 目录页:https://www.skillhub.cn/plugins/zztdandan/dsh-opencode-go-quota-settings
- GitHub:https://github.com/zztdandan/dsh-opencode-go-quota-settings