前言¶
DeepSeek Harness(DSH)採用插件化架構,允許開發者通過擴展來增強功能。在使用 DSH 進行開發或操作時,有時需要利用移動設備進行交互或遠程控制。dsh-gb 是一個客戶端插件,旨在將手機轉化爲 DSH 的語音遙控外設。它通過局域網通信或內置公網隧道,讓手機具備狀態監控、語音輸入、審批處理及消息瀏覽的能力。
核心功能¶
dsh-gb 提供了以下核心功能:
- 實時狀態欄:在手機界面顯示當前工作區、會話、Agent 狀態(運行中/空閒/待審批)及消息瀏覽進度。
- 語音輸入:直接調用手機輸入法的語音轉文字功能,通過按鍵發送消息。
- 審批與選擇題:支持 YES/NO 審批邏輯,以及選擇題選項的選擇與提交。
- 搖桿與按鍵:使用搖桿和按鍵瀏覽消息、翻頁,以及暫停 Agent 運行。
- 會話管理:支持在手機上切換工作區、會話或新建會話。
- 公網隧道:通過內置的 cloudflared 實現異地訪問,無需配置花生殼等外部服務。
- 零運行時依賴:二維碼編碼器爲內置實現,無額外 npm 依賴。
安裝與啓用¶
前置要求¶
安裝前請確保環境滿足以下條件:
- Node.js ≥ 20
- pnpm ≥ 10
- git
安裝命令¶
在 DSH 的 Web 配置目錄下執行以下命令安裝插件:
dsh plugin --profile web add github:zingzheng/dsh-gb
安裝完成後,需要重啓 DSH 以加載 Host 半部組件。重啓後,在 GUI 設置頁的「掌機」選項中,即可看到動態二維碼進行連接。
使用說明¶
局域網連接(默認模式)¶
- 確保手機與運行 DSH 的電腦處於同一局域網。
- 在 DSH 的 GUI 設置頁找到「掌機」選項,掃描顯示的二維碼。
- 手機界面會顯示 Game Boy 風格的遙控面板。
基本操作¶
- 語音輸入:使用手機輸入法進行語音轉文字,按 A 鍵或回車發送。
- 消息瀏覽:使用
←→鍵切換消息,↑↓鍵滾動查看完整內容。 - 審批與選擇題:當有審批或選擇題時,界面會有高亮提示。使用搖桿或方向鍵選擇,按 A 鍵確認。
公網隧道¶
默認模式僅支持局域網連接。若需異地訪問,可在 GUI 設置頁切換至「公網模式」:
- 快速隧道:首次啓用時會自動下載 cloudflared(約 30-60MB,緩存於
~/.dsh/cache),生成臨時公網地址(*.trycloudflare.com)。地址在 DSH 重啓後會變化,需重新掃碼。 - 命名隧道:需在 Cloudflare 控制台創建隧道並映射主機名,填入設置頁後可獲得固定地址。
技術細節¶
- 端口:默認監聽端口爲 7788。若端口被佔用,服務會自動順延至 7795。
- 鑑權:採用持久化令牌鑑權。令牌存儲在
~/.dsh/dsh-gb.token,可在設置頁重置。 - 架構:插件分爲 Host 半部和 Client 半部。Host 半部運行在本地,提供 HTTP 服務器和 SSE 推送;Client 半部集成在瀏覽器中,負責二維碼生成和 UI 渲染。
- 安全:所有接口均要求隨機令牌。
/info接口僅允許本地迴環訪問,動作接口收緊了 CORS 限制。
適用場景¶
- 需要 DSH 在後臺運行時,用手機隨時查看狀態或發送指令。
- 在不操作電腦的情況下,通過手機處理審批流或選擇題。
- 在異地網絡環境下,通過公網隧道安全地控制本地 DSH。