前言¶
DeepSeek Harness(DSH)平時跑在開發機上,會話、模型和權限都在本地進程裏。人離開電腦後,若仍想查看會話、發消息或中斷流式回覆,常見做法是 SSH 端口轉發、自建 Web 入口,或臨時開內網穿透再手抄地址和 Cookie。步驟多,且 DSH 對 Host 與 Cookie 的 authority 綁定較嚴,橋接寫錯 Host 容易 403。
下面介紹社區插件 dsh-remote-public(NPM 包名 dsh-remote-hub):電腦側由 DSH 插件起橋接、可選 ngrok / cloudflared 隧道、簽發 Cookie;手機側是 Kotlin/Compose 原生 Android App DSH Remote,直連 DSH 自帶的 HTTP API 與 WebSocket 網關,不是 WebView 套殼。維護者爲 liaoguogang-hub,在插件目錄中歸類爲客戶端。倉庫爲公共版:不含內置服務器地址與登錄憑據,連接方式支持局域網、ngrok 隧道與自定義;包名 com.dsh.remote.ngrok,可與作者自用版 com.dsh.remote 共存。
這是什麼¶
本倉庫同時包含兩樣東西:
- DSH 插件(Node,
dsh-remote-hub):裝進 DSH 後由宿主負責橋接、隧道、籤 Cookie,並把狀態寫到~/.dsh/dsh-remote/。 - Android App(APK,不通過 npm 分發):與插件配合,在手機上填地址與憑據(或掃碼配對)後連接電腦上的 DSH。
一句話定位:DSH Remote — 通過局域網或隧道,在 Android 上控制 PC 上的 DeepSeek Harness;倉庫附帶一鍵連接腳本與 dsh-remote CLI。
核心功能¶
電腦側插件¶
裝完並重啓 dsh web(或桌面端)後,插件會自動:
- 在
0.0.0.0:6300起橋接,把 Host 改寫成127.0.0.1:1815(避免 Cookie 因端口變化失效); - 自動發現 DSH 宿主端口(固定上游可在配置裏設
upstreamPort); - 按策略開隧道:有 ngrok 則用 ngrok(可固定域名),否則嘗試 cloudflared 的 trycloudflare quick tunnel;
- 簽發 30 天 Cookie,寫入
status.json與connect.txt。
常用命令:
dsh-remote qr # 打開配對頁,手機掃碼自動填地址與憑據
dsh-remote start --open # 起橋接並打印地址/Cookie,同時打開二維碼頁
dsh-remote status # 局域網地址、公網地址、Cookie、上游端口
dsh-remote connect # 直接打印要抄進手機的兩行
dsh-remote doctor # 自檢:憑據、ngrok、cloudflared、宿主端口
dsh-remote start # 不開 DSH 也可單獨前臺跑
插件配置可在 profile 中覆蓋:
| 鍵 | 默認 | 作用 |
|---|---|---|
enabled |
true |
關閉插件但不卸載 |
port |
6300 |
橋接監聽端口 |
authority |
127.0.0.1:1815 |
橋接呈現的 Host,Cookie 綁定它 |
tunnel |
auto |
auto / off / ngrok / cloudflared |
upstreamPort |
0 |
固定 DSH 宿主端口,0 爲自動發現 |
手機側 App¶
README 發佈頁提供 DSH Remote v4.21.3 APK(Android 8.0 / API 26 及以上)。安裝後應用名爲「DSH Remote」。
能力概覽(與 README 功能表一致):
- 三種連接方式(局域網 / ngrok / 自定義),地址與憑證首次填寫後本地保存;
- 會話列表:搜索、排序、歸檔篩選;默認顯示最近 10 條,可展開;
- 長按會話:重命名、歸檔或取消歸檔;
- 發消息、流式回覆、中斷;
- 歷史分頁與本地緩存;
- 模型選擇與分組目錄;
- 權限模式僅可讀當前值(DSH 未開放遠程切換權限接口);
- 自定義地址歷史。
掃碼配對:電腦上執行 dsh-remote qr 打開配對頁,手機在「設置 → 掃碼配對」掃描。二維碼不含 Cookie,只含 10 分鐘有效、單次使用的配對碼;也可手動輸入地址與配對碼。
安裝與啓用¶
安裝 DSH 插件¶
資料給出的推薦命令(須帶版本號與官方 npm 源,避免 profile 默認 minimumReleaseAge 或鏡像延遲導致裝到舊版):
dsh plugin --profile desktop add dsh-remote-hub@0.4.6 --registry=https://registry.npmjs.org
Web profile 同樣可用:
dsh plugin --profile web add dsh-remote-hub@0.4.6 --registry=https://registry.npmjs.org
裝完後用 dsh-remote status 確認;若版本不對,重跑上述命令。插件依賴 Node ^22.19.0 || >=24.0.0,許可證 MIT。
安裝 Android App¶
從 GitHub Releases 下載 APK,例如:
https://github.com/liaoguogang-hub/dsh-remote-public/releases/download/v4.21.3/DSH-Remote-v4.21.3.apk
配合關係:
電腦:dsh plugin … add dsh-remote-hub@0.4.6 → 起橋接 / 開隧道 / 籤 Cookie
手機:安裝 APK → 填地址與 Cookie(或掃碼)→ 連接
典型用法¶
推薦:插件 + 掃碼¶
- 在電腦上安裝插件並確保 DSH 在跑,執行
dsh-remote qr或dsh-remote start --open。 - 手機打開 DSH Remote,用掃碼配對或把
dsh-remote connect/status輸出的地址與 Cookie 填入。 - 連接後會話列表與聊天與本地 DSH 能力對齊;電腦側橋接進程需保持運行,關掉即斷開手機。
Windows 用戶還可使用與 App 一併發佈的 connect.cmd:雙擊後起橋接、籤 30 天 Cookie、儘量開公網隧道並打印結果(邏輯與 dsh-remote start --open 同源),結果也會寫入同目錄 connect-info.txt。
公網與 ngrok(可選)¶
腳本或插件會優先嚐試 PATH 中的 ngrok,否則在條件允許時用 cloudflared 開免註冊 quick tunnel;都不可用時僅提供局域網地址。若需要固定公網域名,可按 README 註冊 ngrok、配置 Authtoken,並將 ngrok 放到 tools\ngrok.exe 或 PATH;注意隧道須使用 --host-header=127.0.0.1:1815,且不要對隧道再加 Basic Auth(會與 DSH Cookie 衝突)。
手工控制時,README 給出橋接、隧道與籤 Cookie 的示例:
node lan-proxy.mjs 6300 127.0.0.1:1815
ngrok http 6300 --host-header=127.0.0.1:1815
node mint.mjs "127.0.0.1:1815" 30
適用場景與注意¶
適合誰:已在 PC 上日常使用 DSH,希望在同一 WiFi 或外出時用手機查看會話、發消息、換模型,又不想維護一套獨立 Web 殼的用戶。
安全與運行環境:
- 插件以當前 DSH 進程權限運行;安裝前應閱讀源碼與 MIT 許可證,自行評估風險。
- 公共版倉庫不含任何內置地址、Token 或 Cookie;Cookie 由本機
~/.dsh/.credentials.yaml密鑰簽發,勿提交到倉庫。 - 局域網橋接爲明文 HTTP,僅在可信網絡使用;跨網優先 TLS 隧道。
- App 允許明文與用戶證書,地址來源需自行把關。
DeepSeek Harness 生態強調「一切皆插件」;社區目錄(如 dsh-plugin.org、skillhub.cn)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-remote-hub 把「橋接 + 隧道 + Cookie + 配對頁」收進 DSH 插件,再用原生 Android 客戶端對接官方 API,減少手抄 Host 和憑據的摩擦。目錄與源碼:
- 插件目錄:https://www.skillhub.cn/plugins/liaoguogang-hub/dsh-remote-public
- GitHub:https://github.com/liaoguogang-hub/dsh-remote-public