前言¶
在 DeepSeek Harness(DSH)裏用 OpenCode Go 時,你往往想一眼看清「還剩多少額度、訂閱什麼時候到期、會不會自動續費」。OpenCode 公開的用量接口 GET https://opencode.ai/zen/go/v1/usage 用 API key 鑑權即可調用,但響應裏只有 rolling 等窗口的百分比和重置時刻,沒有金額,也沒有訂閱到期日。社區裏常見的 OpenCode 用量類插件(例如 vinyumao、LTctfer、dsh-go-balance 等)因此通常只能展示百分比,無法給出到期時間。
dsh-opencode-go-status 是維護者 0x-0cd 發佈的 DSH Web 插件(分類:聯網工具),改讀控制台狀態接口,在側邊欄提供「用量」入口,並在主區展示套餐用量、剩餘額度、到期時間與續費狀態。下文介紹它的定位、能力與安裝配置方式。
這是什麼¶
DSH Web 插件 OpenCode Go 訂閱狀態面板:側邊欄儀表盤圖標進入主區面板,彙總 OpenCode Go 的額度與訂閱信息。倉庫:0x-0cd/dsh-opencode-go-status;社區目錄頁:skillhub 條目。許可爲 MIT;package 版本爲 0.1.1。
與公開 /zen/go/v1/usage 不同,宿主端請求:
GET https://opencode.ai/console/api/go/status
Authorization: Bearer <OPENCODE_GO_API_KEY>
仍使用你已有的 OpenCode Go API key,無需瀏覽器 cookie。響應中的 access.meters(fiveHour、week、month)含 usedMicroCents / limitMicroCents(1e8 microCents = US$1),以及 access.startsAt / access.endsAt、cancelAtPeriodEnd、renewalPending、paymentMethodKind、useBalance、upgradePrice 等字段,供界面展示金額用量與續費相關信息。
核心功能¶
額度與進度¶
- 三個計費窗口各一張額度卡:已用 / 上限金額(如 $9.96 / $60.00)、剩餘金額、百分比、進度條與分級配色。
- 主區面板約 60 秒自動刷新,支持手動立即刷新;界面會標明數據來源與更新時間。
訂閱與續費¶
- 到期時間:基於
access.endsAt,含實時倒計時與本期開始時間(access.startsAt)。 - 續費狀態:自動續費或到期後取消、是否續費處理中、續費幣種與支付方式、Zen 餘額兜底開關(
useBalance)等可讀字段。
界面掛載¶
- 側邊欄:
sidebar.panellist槽,order 40,儀表盤圖標;點擊切換到主區面板,圖標狀態由 shell 維護。 - 主區:
main鍵控槽,key 與入口 id 一致;三張額度卡 + 到期/續費卡。
宿主與瀏覽器分工¶
瀏覽器只訪問同源路由 /api/dsh-opencode-go-status/status;API key 僅在 DSH 宿主進程內解析並用於出站 GET,不進入瀏覽器。出站請求僅指向配置中的 statusURL(默認 https://opencode.ai/console/api/go/status),無遙測與第三方端點。配額快照在宿主內存中緩存(默認 cacheSeconds 30 秒),不落盤。
安裝與啓用¶
README 給出的安裝方式如下(二選一,重複掛載會起兩個實例):
dsh plugin --profile web add file:/Users/qianneng/Code/dsh_optimize/dsh-opencode-go-status
或將 cordis.patch.yml 裏的 insert 行抄進 $DSH_HOME/profiles/web/cordis.patch.yml,再用 file: 指向本插件目錄安裝。
裝完後刷新瀏覽器即可;若宿主已在運行,有時需要重啓 dsh web 纔會加載新的插件行。改動宿主端代碼後需重新 file: 安裝(拷貝而非軟鏈),否則 profile 仍用舊副本。
配置¶
在 cordis.patch.yml 的 insert 行下增加 config::
| 字段 | 默認值 | 說明 |
|---|---|---|
apiKey |
無 | 直接寫死 API key(不推薦,優先用憑證) |
apiKeyRef |
OPENCODE_GO_API_KEY |
DSH 憑證引用名,與 opencode-go provider 的 apiKeyEnv 一致 |
statusURL |
https://opencode.ai/console/api/go/status |
上游狀態接口 |
timeoutMs |
15000 |
請求超時 |
cacheSeconds |
30 |
宿主端緩存窗口 |
enabled |
true |
總開關 |
密鑰解析順序:apiKey → DSH 憑證服務(apiKeyRef,覆蓋 $DSH_HOME/.credentials.yaml、啓動環境、.env)→ 進程環境變量。非迴環的 statusURL 強制 HTTPS,避免明文 HTTP 泄露密鑰。
典型用法¶
- 確保 OpenCode Go API key 已通過
apiKeyRef(默認OPENCODE_GO_API_KEY)或 DSH 憑證配置好,與 opencode-go provider 環境變量名一致即可。 - 按上一節完成 Web profile 安裝並刷新或重啓
dsh web。 - 在 DSH Web 側邊欄點擊儀表盤「用量」入口,在主區查看三窗口額度、到期倒計時與續費狀態;需要時可點立即刷新。
開發與本地驗證(來自 README):
git config core.hooksPath .githooks
node --check index.js && node --check client.js
node --test test/*.test.mjs
適用場景與注意¶
適合誰:已在 DSH Web 中使用 OpenCode Go,且希望在同一界面看到美元額度、剩餘量、訂閱到期與續費狀態,而不滿足於公開 usage 接口的百分比。
運行權限:插件以當前 dsh 進程權限運行,安裝前請自行閱讀源碼與 MIT 許可證;安全審計說明見倉庫內 SECURITY-AUDIT.md。
已知限制(README 原文要點):
/console/api/go/status屬於 OpenCode 控制台內部接口,未在官方公開文檔中,字段可能隨上游變動;宿主端對缺失字段做防禦性解析,對應卡片顯示「—」而不拋錯。- Zen 預充值錢包餘額無法通過 API key 讀取(
/console/api/billing/status對 key 返回 403);本插件展示的額度指 Go 訂閱額度,不是 Zen 錢包餘額。 - 宿主需能訪問
opencode.ai(README 稱直連與 HTTP 代理均可)。 cancelAtPeriodEnd=false時到期時刻即續費日,界面上的「到期」與自動續期語義需按此理解。
DSH 生態強調「一切皆插件」;skillhub.cn 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-opencode-go-status 把 OpenCode Go 的訂閱狀態從「只有百分比」補全爲「金額 + 到期 + 續費」,並放在 DSH Web 側邊欄與主區面板中,密鑰留在宿主、瀏覽器走同源 API。進一步瞭解與安裝見 目錄頁 與 GitHub 倉庫。