在 DeepSeek Harness (DSH) 的 Web 端開發或調試場景中,監控 OpenCode GO 與 CommandCode 的套餐用量往往需要依賴外部工具或手動切換頁面。這增加了上下文切換的成本。dsh-opencode-go 插件旨在解決這一問題,它直接在會話頭部提供常駐的用量狀態芯片,讓用量監控與對話過程融爲一體。
核心功能¶
該插件主要實現以下能力:
- 會話頭部常駐顯示:在 conversation header 的 utilities 槽位註冊芯片,顯示各賬號的周用量百分比。顏色編碼遵循以下規則:≥90% 爲紅色(受限),≥70% 爲橙色,否則爲綠色。
- 懸停查看詳情:鼠標懸停在芯片上時,會彈出氣泡,分別展示滾動 5h、每週、每月的用量數據,以及當前滾動窗口的剩餘時間。
- 自動與手動刷新:支持 3 分鐘自動刷新數據,同時也提供手動刷新按鈕。
- 智能緩存:切換會話時複用模塊級共享緩存,避免重複發起網絡請求。
- 獨立容錯:單個賬號的 API 調用失敗不會影響其他賬號,失敗的賬號行會顯示「獲取失敗」。
- 安全性:API 密鑰僅存儲於宿主側(
.credentials.yaml),瀏覽器端永遠不會直接接觸這些密鑰。
安裝與啓用¶
通過 DSH 插件管理器安裝:
dsh plugin --profile web add github:305037991x-pixel/dsh-opencode-go
安裝完成後,需要重啓 dsh web 服務,並在瀏覽器中執行硬刷新(Ctrl+Shift+R)以加載新組件。
配置方法¶
插件需要宿主側提供 API 密鑰才能正常工作。請在 $DSH_HOME/.credentials.yaml 文件中配置以下內容:
# OpenCode GO 賬號 A(必填)
OPENCODE_GO_API_KEY: sk-xxx
# OpenCode GO 賬號 B(可選,不配置則只顯示一個賬號)
OPENCODE_GO_API_KEY_B: sk-yyy
# CommandCode(可選,不配置則不顯示該行)
COMMANDCODE_API_KEY: cmd-zzz
- OpenCode GO Key:在 opencode.ai/auth 創建。
- CommandCode Key:在其 Studio 創建(即 Provider API 使用的
CMD_API_KEY)。
工作原理¶
插件採用宿主端與客戶端分離的架構:
- 宿主端:負責註冊
GET /dsh-opencode-go/usage接口。該端點並行解析各賬號憑證,調用官方接口獲取用量數據並返回。 - 客戶端:在
conversation.session.header.utilities槽位註冊芯片組件。它維護模塊級的共享緩存和定時器,負責數據的獲取、渲染和交互邏輯。
數據源主要來自兩個官方接口:
* OpenCode GO:使用 https://opencode.ai/zen/go/v1/usage 接口,官方直接返回 rolling/weekly/monthly 窗口的 percent 和 resetsAt。
* CommandCode:使用 https://api.commandcode.ai/alpha/billing/credits 等非公開的 /alpha 系列端點(與官方 CLI 使用同源接口),通過 windowLimits 計算百分比。
兼容性與依賴¶
該插件與 DSH 核版本解耦。所有 @deepseek-ai/dsh-* 核心包均聲明爲可選的 peerDependencies(範圍 >=0.1.0-rc.6 <0.2.0)。
插件自身不安裝、不攜帶任何核心包副本,運行時一律使用宿主正在運行的那份核。因此,升級 DSH 核心包不需要重裝本插件。
主要依賴項包括:
* dsh-credentials:用於獲取憑證。
* dsh-launch-environment:用於獲取運行環境。
* 瀏覽器端通過 dsh.client.inject 由宿主的客戶端模塊表提供依賴。
適用場景¶
此插件適合需要在長時間對話或開發過程中持續監控 API 套餐額度,希望減少手動查詢成本的用戶。建議在安裝前檢查插件源碼與許可證(MIT)。