dsh-gb:手機變成 DSH 的語音遙控外設

前言

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 設置頁的「掌機」選項中,即可看到動態二維碼進行連接。

使用說明

局域網連接(默認模式)

  1. 確保手機與運行 DSH 的電腦處於同一局域網。
  2. 在 DSH 的 GUI 設置頁找到「掌機」選項,掃描顯示的二維碼。
  3. 手機界面會顯示 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。
羽毛球分组比赛记分
小程序二维码

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

小夜