dsh-plugin-opencode-limits:在 DSH 作曲欄查看 OpenCode Go 訂閱額度

前言

在 DeepSeek Harness(DSH)裏用 OpenCode Go 時,額度按 5 小時、周、月三個窗口滾動計算,官方 usage 接口只返回各窗口剩餘比例和重置時間,沒有公開的美元餘額字段。若不在 IDE 旁單獨查接口或記時間,很容易在某個窗口快耗盡時仍按平時強度調用模型。

下面介紹的 dsh-plugin-opencode-limits(維護者 GreenJenckens,MIT 許可)把 OpenCode Go 的剩餘額度做成作曲欄(composer dock)裏的原生統計膠囊,與 DSH 自帶的步數、解碼速度、token 總量、緩存命中等指標並列,便於在對話界面內掃一眼各窗口還剩多少。

這是什麼

插件全名 dsh-plugin-opencode-limits,歸類爲 DSH 客戶端插件:在已打開會話、作曲欄可見的界面裏注入 UI,不替代 DSH 自帶的模型路由或計費邏輯。數據來自 OpenCode 的 usage 端點,由 DSH 進程內的 host 半部代請求,瀏覽器只收到百分比與重置時間。

社區目錄頁:skillhub.cn 插件條目。源碼與說明:GitHub — GreenJenckens/dsh-plugin-opencode-limits。

界面展示什麼

OpenCode Go 的月度美元額度在 API 裏拆成三個窗口:5 小時(月限的 20%)、weekly 周(50%)、monthly 月(100%)。膠囊上「OpenCode」後跟每個窗口一個小環,弧長表示該窗口剩餘比例:滿環表示餘量充足,弧縮短表示窗口在消耗;耗盡時顯示空軌並帶「лимит」類提示(README 示例爲俄文界面文案)。

膠囊片段示例(README) 含義
5ч 87% 5 小時窗口仍有 87% 可用
нед 83% 周窗口仍有 83%
мес 92% 月窗口仍有 92%

每個環與 DSH 上下文指示器同幾何(svg 14×14,circle r=5.5,stroke-width: 2 等)。懸停某段可看精確重置時刻與剩餘時間;懸停整顆膠囊可看密鑰來源、拉取時間與「點擊可刷新」說明;點擊膠囊強制刷新。餘量充足時膠囊與鄰居一樣單色;已消耗 ≥85% 時用警告色,≥95% 或 status: "rate-limited" 時用錯誤色。

數據源爲:

GET https://opencode.ai/zen/go/v1/usage
Authorization: Bearer oc_sk_…

公開接口不提供美元餘額,插件也只展示百分比與重置時間。

安裝與啓用

DSH 將插件市場作爲可選實驗能力。推薦從市場安裝:

  1. 打開 Plugins → Experimental plugins → Custom plugin markets。
  2. 在 Discover 中選 Add index source,粘貼市場索引 URL:
https://cdn.jsdelivr.net/gh/GreenJenckens/dsh-plugin-opencode-limits@main/market/index.json
  1. 在插件卡片上安裝(確認頁會顯示 Git 來源與 commit)。

也可在 Plugins → Installed → Install bundle 填寫 Git spec,或用 CLI(將 <commit> 換成具體 commit):

dsh plugin --profile desktop install "git+https://github.com/GreenJenckens/dsh-plugin-opencode-limits.git#<commit>"

本地開發可將倉庫以 link: 形式鏈入 profile 的 dependencies 與 dsh.profile.bundles;README 也描述了通過 Plugins 頁完成同樣操作的方式。當前 package 版本爲 0.1.0,要求 node >= 20、dsh >= 0.2.1-rc.3。

配置與密鑰

默認值在 lib/index.js,可在 profile patch 中覆蓋:

- id: opencode-limits
  name: dsh-plugin-opencode-limits
  config:
    usageUrl: https://opencode.ai/zen/go/v1/usage
    routePath: /x/opencode-limits
    keyEnv: OPENCODE_GO_API_KEY
    refreshMs: 20000
    timeoutMs: 15000
字段 默認值 說明
usageUrl https://opencode.ai/zen/go/v1/usage usage 端點
routePath /x/opencode-limits host 半部對外路由
keyEnv OPENCODE_GO_API_KEY 環境變量 / 憑據名
refreshMs 20000 host 向 OpenCode 輪詢間隔(毫秒)
timeoutMs 15000 單次請求超時(毫秒)

每次輪詢按順序解析密鑰:process.env[keyEnv] → DSH 憑據存儲 ctx.credentials.resolve(keyEnv) → $DSH_HOME/.credentials.yaml 的 refs: 段。輪換密鑰無需重啓進程。

密鑰不會進入瀏覽器。 host 半部持鑰請求 OpenCode,經 /x/opencode-limits 僅向 loopback 對等端提供百分比與重置時間,該路由不會代理給模型;插件不寫盤、不向其他地址發送數據。

刷新節奏與調試

鏈路 週期(README)
host 請求 OpenCode 每 20 s(與窗口狀態無關)
客戶端請求 host 窗口激活時每 15 s,可見性變化時立即
點擊膠囊 立即(?refresh=1)

隱藏標籤頁時 Chromium 會節流定時器,因此輪詢放在 host 進程;回到窗口時數據通常不超過約二十秒。百分比本身是月額度佔比,變化往往較慢。

本地調試(<port> 換爲 DSH 監聽端口):

curl -s http://127.0.0.1:<port>/x/opencode-limits
curl -s "http://127.0.0.1:<port>/x/opencode-limits?refresh=1"

返回 JSON 含 ok、usage(三窗口)、error、status、fetchedAt、keySource(env / store:… / file)、refreshMs 以及 hits / lastHitAt 等診斷字段。

適用場景與注意

適合已訂閱 OpenCode Go、長期在 DSH 作曲欄裏寫對話、希望與步數/token 同一行觀察三窗口餘量的開發者。插件以當前 DSH 進程權限運行,安裝前建議閱讀倉庫源碼與 MIT 許可證,並自行評估將 oc_sk_… 類密鑰交給 host 半部代調 OpenCode 是否可接受。

README 列出的限制:

  • 膠囊只在有 composer 的會話界面出現,無 composer 的服務頁不會顯示。
  • 無公開美元餘額,界面只有比例與重置時間。
  • 若 OpenCode 變更 /v1/usage 響應形狀,膠囊會顯示「нет данных (…)」類提示,而不是拖垮整個界面。

DSH 生態強調「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文安裝路徑以插件 README 爲準。

結尾

dsh-plugin-opencode-limits 把 OpenCode Go 三窗口剩餘額度嵌進 DSH 作曲欄統計行,密鑰留在 host、界面只讀比例,適合需要邊寫 harness 邊盯額度的場景。

  • 目錄頁:https://www.skillhub.cn/plugins/GreenJenckens/dsh-plugin-opencode-limits
  • GitHub:https://github.com/GreenJenckens/dsh-plugin-opencode-limits
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜