前言¶
DeepSeek Harness(DSH)的日常操作通常發生在桌面端:瀏覽器裏的 web GUI,或者桌面殼的窗口。人離開工位時,想在手機上查看某個 workspace 的會話歷史、補發一條 prompt,一般沒有現成入口。
dsh-mobile 解決的就是這個問題。它在局域網內搭一條手機連接橋:桌面端出示二維碼,手機掃碼配對,桌面批准後,手機直接打開一個爲移動端優化的 DSH 客戶端。下面介紹這個插件的定位、功能、安裝與用法。
這是什麼¶
dsh-mobile 是面向 DeepSeek Harness 本體的插件,由 s17179XTY 維護,許可證爲 MIT,當前版本 1.0.1。一句話概括:局域網手機連接橋(二維碼配對 + 桌面端批准 + 移動端 DSH 客戶端),並在 Web GUI 設置行提供手機入口與連接狀態點。
DSH 的理念是「一切皆插件」。這個插件只面向 DSH 本體,不綁定任何特定殼應用:只要部署運行着 DSH web profile——命令行 dsh web、Bigfish、類 DSH Desktop 的桌面殼或任何封裝——都可以安裝使用。包內不含 Bigfish 或 DSH Desktop 專用代碼。
核心功能¶
二維碼配對與桌面端批准¶
手機掃描二維碼完成配對,token 每 30 分鐘輪換,比較使用 timing-safe 方式;桌面端確認後,手機獲得 HttpOnly 會話 cookie。
移動端 DSH 客戶端¶
手機端可以使用 workspaces、會話列表、聊天曆史,可以發送 prompt、停止生成。客戶端由橋提供服務,局域網內完整可用。
設置行手機入口¶
手機圖標位於 Web GUI 設置行右端。有手機配對時顯示綠色連接點。點擊圖標打開配對/管理對話框,包含二維碼、複製、倒計時、批准/拒絕、斷開等操作。
三段式結構¶
插件由三部分組成:
- LAN 橋(
lan-bridge.mjs):獨立 Node HTTP 服務器,綁定0.0.0.0隨機端口,負責配對、移動客戶端、RPC 轉發,以及/desktop*JSON/QR 端點(含 CORS)。 - 宿主插件(
lib/index.js):生成並監控橋(自動重啓、有次數上限),暴露/phone-connect/bridge與/phone-connect/config。 - 客戶端插件(
lib/client.js):__ModuleLoader__bundle,提供設置行手機入口(綠點)、配對對話框、複製/倒計時/批准 UI。
安裝與啓用¶
插件需要 DeepSeek Harness web profile,任何運行 web profile 的部署均可安裝。先執行安裝命令:
dsh plugin --profile web add https://github.com/s17179XTY/dsh-mobile
也可以通過 DSH 插件市場 / dshmarket UI 安裝。
安裝後重啓 harness(或重啓 profile),讓 cordis.patch.yml 中的對應行掛載。包依賴 qrcode(^1.5.4),由 profile 的包管理器自動安裝。
典型用法¶
1、打開 web GUI,在設置行(左下側欄)右端找到手機圖標。
2、點擊圖標打開配對對話框。二維碼有效期 30 分鐘,到期自動刷新,URL 旁有 Copy 按鈕。
3、手機保持與桌面同一可信 Wi-Fi,用相機掃碼,或打開復制的 URL。
4、對話框顯示待配對手機,點擊「允許 / Allow」。
5、手機打開移動端 DSH 客戶端。連接在後臺保持活動,圖標顯示綠點;重開對話框可以斷開連接或刷新二維碼。
配對 URL 在其完整生命週期內跨對話框會話有效,僅過期 token 纔會被輪換。
殼側整合¶
插件與殼的整合分兩個層面。
純瀏覽器部署無需額外工作:設置行手機入口與配對對話框由客戶端插件提供,隨插件自動出現在 web GUI 中。
原生桌面殼(例如類 DSH Desktop 的 Electron 應用)則要注意:插件無法向殼的原生菜單欄注入菜單項,這部分屬於殼自己的代碼。作爲替代,插件提供 desktopUrl 鉤子。宿主插件在 GET /phone-connect/bridge 暴露橋的快照,其中 desktopUrl 指向:
http://127.0.0.1:<port>/desktop
該頁面僅限 loopback 訪問,內容是完整的配對/管理界面(二維碼、自動刷新、批准/拒絕、斷開)。殼可以用一次同源 HTTP 調用發現這個 URL,然後在自己的「連接手機」菜單或托盤項裏打開一個小窗口,不需要額外配置或憑據。
安全設計¶
插件的默認配置以安全爲先:
- 橋綁定
0.0.0.0隨機端口,拒絕非私網客戶端(10/8、172.16/12、192.168/16、ULA 與鏈路本地 IPv6)。 /desktop*端點僅限 loopback;CORS 僅授予 harness GUI 來源。- 配對 token 爲 32 隨機字節,timing-safe 比較,30 分鐘 TTL。
- 手機會話使用 HttpOnly、SameSite=Strict cookie。
- 移動客戶端只能調用白名單內的 RPC 方法:
workspace.list、session.list、session.history、session.create、session.prompt、session.cancel。 - 客戶端啓用嚴格 CSP 頭。
請只在可信網絡中使用。不需要手機訪問時,從 cordis.patch.yml 移除 dsh-mobile 行,或直接卸載插件。
注意事項¶
- 插件以當前 dsh 進程的權限運行。安裝前建議先檢查倉庫源碼與許可證(MIT,倉庫內附 LICENSE)。
- 橋崩潰時,宿主會自動重啓,最多 5 次,間隔 3 秒;
/phone-connect/bridge的error字段攜帶最後一次退出原因。 - 移動端能執行的操作受 RPC 白名單限制,即上面列出的六類方法。
小結¶
dsh-mobile 把 DSH 的使用範圍從桌面擴展到了同一局域網內的手機:掃碼配對、桌面批准、移動客戶端,三步完成,安全配置默認生效。對經常在工位之外還需要跟進會話的開發者,這是一個值得裝上的補充。
- 目錄頁:https://www.skillhub.cn/plugins/s17179XTY/dsh-mobile
- GitHub:https://github.com/s17179XTY/dsh-mobile
需要說明的是,skillhub.cn 是社區維護的插件目錄站點,獨立運營,與 DeepSeek / 幻方無官方從屬關係。