DSH Remote:把 DSH 控制檯帶到手機與另一臺電腦

前言

DSH 跑在開發機上時,會話、審批和提問往往綁定在那一臺電腦的瀏覽器裏。你離開工位,只能等回到電腦前再處理;想在手機上續寫對話或批准工具調用,也沒有現成入口。常見做法是遠程桌面或 SSH,但那是整臺機器的接管,不是圍繞 DSH 工作流的輕量遙控。

下面介紹 Blank-not-black 維護的 DSH Remote(GitHub:Blank-not-black/dsh-Remote)。它通過 DSH 插件、獨立網關和 Android 應用 / WebUI 三件套,在局域網或 Tailscale 上提供會話查看、審批與提問處理、文件傳輸和運行狀態總覽,並用 Token 鑑權,數據只在你的設備之間流轉。

這是什麼

DSH Remote 是一套面向 DSH 的遠程控制檯:在手機或另一臺電腦上查看會話、處理審批與提問、傳輸文件,並掌握主機運行狀態。npm 包名爲 dsh-remote-plugin,當前倉庫版本爲 0.6.15,許可證 MIT。

三個部分各司其職:

部分 角色
DSH 插件 在 DSH Web 內提供入口,自動管理網關,展示主機與網關狀態
獨立網關 負責令牌鑑權、即時連接、文件傳輸和設備監控
Android 應用 / WebUI 手機、桌面瀏覽器和插件內嵌的遠程操作界面

令牌即遠程控制憑證。項目默認不引入額外賬號系統;令牌保存在 ~/.dsh-remote/token,需像保護 SSH 密鑰一樣保管,不要提交到倉庫或截圖公開。

核心功能

以下能力均來自項目 README 與文檔說明。

會話遠程控制:查看會話、繼續工作、切換模型、處理目標與後臺任務。會話詳情支持即時消息、歷史加載、斜槓命令和全屏輸入。

即時決策通知:審批、提問、任務狀態即時推送;網絡波動時可自動降級爲輪詢,恢復後再切回 WebSocket。

文件與圖片:瀏覽主機目錄,支持分塊上傳、斷點續傳、暫停與取消;可將拍照或相冊圖片作爲 session.prompt 的圖片內容發送到當前會話(取決於當前 DSH 組合與模型是否支持圖像輸入)。

運行全景:DSH 版本、網關鏈路、設備連接、Token 用量和近期活動集中在主頁與統計頁;插件面板和管理控制檯可查看網關版本、端口、上游狀態與 Token 近 7 日用量。

多網絡接入:支持局域網、Tailscale,以及帶認證的 WebSocket 隧道。手機與電腦應位於同一可信局域網,或通過 Tailscale 互通;不要把網關端口直接暴露到公網。

離線可看聊天記錄:客戶端可加載歷史消息,便於弱網或短暫斷連後繼續查看。

安裝與啓用

插件需安裝在 DSH Web 的 web profile。先確認本機 DSH Web 可正常打開,再在安裝 DSH 的同一用戶下執行:

dsh plugin --profile web add dsh-remote-plugin
dsh plugin --profile web list --depth 0

第二條命令用於確認插件已裝入 web profile。

指定版本或從 Git 安裝:

dsh plugin --profile web add dsh-remote-plugin@0.6.8

dsh plugin --profile web add "github:Blank-not-black/dsh-Remote#main&path:/packages/plugin"

經過上面的步驟後:

  1. 完整重啓 DSH Web 進程(手動運行則停止後重新執行 dsh web;若使用 systemd 用戶服務可執行 systemctl --user restart dsh-web)。
  2. 在 DSH Web 中 Ctrl+F5 強刷,從側欄打開 DSH Remote 面板。
  3. 在插件面板確認網關已運行,並在 DSH 主機上訪問 http://127.0.0.1:8787/health,返回 JSON 表示網關端口可用。
  4. 從插件面板複製令牌或掃碼配對;令牌亦保存在 ~/.dsh-remote/token
  5. 手機端在「設置 → 服務器」掃碼,或填寫 http://電腦局域網IP:8787 與令牌(不可使用 127.0.0.1localhost)。
  6. 另一臺電腦可直接打開 http://DSH主機IP:8787,瀏覽器進入桌面 WebUI。

插件內置網關,默認監聽 0.0.0.0:8787,隨 DSH 自動啓動與自愈。網關開關意圖保存在 ~/.dsh-remote/gateway.enabled。端口優先級爲環境變量 DSH_REMOTE_GATEWAY_PORT~/.dsh-remote/gateway-port → 8787。

不使用插件時,可從 GitHub Releases 下載單文件網關(如 dsh-remote-linux-x64)獨立運行:

./dsh-remote-linux-x64

PORT=9000 TOKEN=your-token ./dsh-remote-linux-x64

默認上游爲本機 DSH Web http://127.0.0.1:3080,管理頁爲 http://127.0.0.1:8787/admin

Android 應用安裝包爲 Release 中的 dsh-remote.apk

典型用法

網關健康檢查(在 DSH 所在電腦執行,便於區分網關未啓動與網絡不可達):

curl -i http://127.0.0.1:8787/health
ss -ltnp | grep ':8787'
curl -i http://127.0.0.1:3080/

/health 返回 ok: trueupstreamOk: false,說明網關已開而 DSH Web(默認 3080)不可達,需檢查 DSH Web 進程而非網關本身。

文件傳輸 API(Bearer 令牌與插件面板或 ~/.dsh-remote/token 一致):

TOKEN=$(cat ~/.dsh-remote/token)
HOST=http://127.0.0.1:8787

curl -H "Authorization: Bearer $TOKEN" "$HOST/fs/list"
curl -OJ -H "Authorization: Bearer $TOKEN" "$HOST/fs/file?path=~/Downloads/example.zip"
curl -H "Authorization: Bearer $TOKEN" --data-binary @./photo.jpg \
  "$HOST/fs/upload?path=~/Downloads&name=photo.jpg"

默認單文件上限 2GB,可通過 DSH_REMOTE_FS_MAX_UPLOAD 調整;允許目錄默認包含當前用戶目錄及 DSH workspace.list 已登記的工作區,額外根目錄可用 DSH_REMOTE_FS_ROOT 配置(Linux/macOS 用 : 分隔,Windows 用 ;)。

手機端導航:會話、文件、主頁(鏈路健康與待辦)、統計(Token 與費用)、設置(服務器、令牌、通知與皮膚)。

桌面 WebUI:左側會話列表與工作臺,文件傳輸、主頁總覽、統計抽屜,以及審批 / 提問通知卡片。

適用場景與注意

適合以下情況:

  • DSH 在電腦上運行,需要在手機上查看會話、回覆提問或處理工具審批。
  • 需要在手機與 DSH 工作目錄之間傳文件,或把圖片作爲會話附件發送。
  • 從另一臺電腦查看會話、文件、Token 統計和設備連接,通過局域網或 Tailscale 訪問,而不額外搭建賬號系統。

使用前請注意:

  • 插件以當前 DSH 進程的用戶與權限運行,安裝前應閱讀源碼並確認 MIT 許可證與行爲是否符合預期。
  • 網關默認監聽所有網卡;防火牆需允許 TCP 8787 入站(無需對公網放行 DSH 3080)。手機連不上時檢查是否使用了電腦局域網 IP 或 Tailscale 100.x.x.x 地址,以及路由器 AP 隔離。
  • 401 或未授權多爲令牌不一致,應從當前插件面板重新掃碼或複製令牌;頁面黑屏或功能未更新時可 Ctrl+F5 或完全退出 App 後重開,避免靜態資源緩存。
  • 優先通過插件面板啓動網關或重啓 DSH Web 觸發自愈;不要把 systemctl --user restart dsh-remote-gateway.service 當作通用重啓方式(插件拉起的網關可能是 transient 進程)。

DSH 生態理念是「一切皆插件」。SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;dsh-remote-plugin 是社區維護的客戶端類插件,GitHub 約 19 stars。

結尾

DSH Remote 把 DSH 最關鍵的決策面——會話、審批、提問和文件——搬到手機與第二臺設備,而不是複製整臺遠程桌面。三件套分工明確,插件模式下一行命令即可啓用,網關與 Token 機制也便於在可信內網或 Tailscale 中自託管。

  • 目錄頁:https://www.skillhub.cn/plugins/Blank-not-black/dsh-Remote
  • GitHub:https://github.com/Blank-not-black/dsh-Remote
  • npm:https://www.npmjs.com/package/dsh-remote-plugin
羽毛球分组比赛记分
小程序二维码

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

小夜