前言¶
在 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