前言¶
在使用 DeepSeek Harness (DSH) Web composer 開發智能體時,如果接入 OpenCode Go 服務,額度耗盡往往發生在用戶不知情的時候。在輸入框下方的統計行中增加一個狀態指示器,是管理成本的有效手段。dsh-opencode-usage 插件旨在解決這一問題,它將 OpenCode Go 的額度狀態以最輕量的方式嵌入到 DSH 的界面中。
插件簡介¶
這是一個用於 DeepSeek Harness Web composer 的插件,由 ColorlessBoy 維護。它的核心作用是在輸入框下方的統計行中顯示 OpenCode Go 的剩餘額度百分比。該插件不需要用戶進行配置,直接讀取 llm-pi-ai 中的 provider 設置,通過瀏覽器同源請求獲取額度數據並展示。
核心功能¶
該插件提供以下能力:
- 額度展示:在輸入框下方的統計行中顯示剩餘百分比,包括滾動(5小時)、每週和每月三個維度的數據。
- 零配置:自動跟隨
llm-pi-ai中已配置的 provider,不要求用戶複製密鑰或手動添加設置項。 - 零構建:倉庫自帶
lib/目錄,通過dsh plugin命令安裝即可直接運行,無需構建授權。 - 密鑰安全:密鑰僅由 host 側解析並使用,瀏覽器端只訪問同源端點,密鑰不會泄露到前端頁面。
- 智能顯示:根據 provider 的 URL 判定是否顯示,僅噹噹前模型所屬 provider 的
baseURL指向 OpenCode Go 時才顯示,切到其他 provider(如 DeepSeek 官方)自動隱藏。 - 交互詳情:點擊 pill 可展開詳情面板,查看各檔位的剩餘百分比和重置倒計時。
安裝與啓用¶
安裝過程不需要構建步驟,推薦使用官方插件命令:
dsh plugin --profile web add github:ColorlessBoy/dsh-opencode-usage
安裝完成後,必須重啓 dsh web 進程並刷新瀏覽器頁面,插件層纔會生效。可以通過以下命令驗證插件層已組合進配置:
dsh --profile web --dump-config # 應出現 "# == dsh-opencode-usage" 層
使用方式¶
安裝並重啓後,在 Web composer 的輸入框下方的統計行中,內置的「上下文已用」pill 之後會出現一枚新的 pill,顯示當前 OpenCode Go 的剩餘電量圖標和百分比。
界面示例如下:
10 輪 89 步 · 42 tok/s │ 1.2M · 緩存命中 45% │ 24% │ 🔋 剩餘 5h 80% │ 周 84% │ 月 42%
點擊該 pill 可以展開詳情面板,查看更具體的額度信息。
注意事項¶
- 安裝方式:插件支持 bundle 安裝(推薦)和手工掛載兩種方式。不要同時使用兩種方式,同一個
opencode-usageid 出現兩行會導致組合錯誤。 - 重啓要求:
lib/index.js由 Node ESM 模塊緩存持有,修改 host 側代碼後必須重啓dsh web;瀏覽器半邊支持熱重載,修改後刷新頁面即可。 - License:採用 MIT 協議。
- 行爲限制:插件不接管路由,不創建懸浮窗,不參與請求計費,僅做只讀展示。
技術細節¶
插件採用 Host/Client 分離架構。Host 側 (lib/index.js) 負責解析 provider 的 baseURL 和 apiKeyEnv,向 OpenCode Go 官方接口發起帶憑據的請求,並將返回的“已用”百分比歸一化爲“剩餘”百分比,同時進行緩存(成功30s,失敗10s)。Client 側 (lib/client.js) 負責從會話中讀取當前模型對應的 provider,輪詢同源端點並將額度渲染爲 dock 中的 pill。
插件將自身內容通過 display: contents 攤平,以 flex order: 1 排列在「上下文已用」pill 之後,確保 UI 佈局與原生組件一致。
結語¶
dsh-opencode-usage 是一個剋制且實用的工具,它通過複用 DSH 現有的 UI 組件,在不增加額外干擾的情況下,解決了 OpenCode Go 額度監控的問題。
- GitHub 倉庫: https://github.com/ColorlessBoy/dsh-opencode-usage
- 官方目錄: https://www.skillhub.cn/plugins/ColorlessBoy/dsh-opencode-usage