dsh-remote-gui:在本地窗口操作远端 DSH

前言

把 DSH 跑在 VPS 上是常见做法:7×24 不关机、能挂 IM 插件(WhatsApp / Telegram…)、手机随时能用。但在电脑上用它通常只剩两条路:开一个浏览器标签去访问远端地址,或者干脆开两个窗口各用各的。

dsh-remote-gui 把第三条路做出来:一个窗口,多个实例。

是什么

dsh-remote-gui 是一个 DSH 插件,通过 SSH 隧道把远端 DeepSeek Harness 的 GUI 嵌进本地界面,列出远端会话,并在本地实例和远端主机之间切换。维护者为 temotee2103,分类为联网工具。

它用 DSH 0.2.x 的真实契约独立实现,不依赖既有插件 dsh-sev。

解决什么问题

  • 一台控制台管多台机器:把开发机、VPS、家里的迷你主机都注册进来,顶部切换即可
  • 远端跑长的、本地看短的:让远端挂着爬取 / 构建 / 定时任务,你在同一个窗口里顺手看它的会话
  • 随时接管:远端 agent 卡住了,切过去直接在那个 iframe 里操作 —— 那是真界面,不是回放

核心功能

SSH 隧道管理

ssh -L <本地端口>:127.0.0.1:<远端端口> <别名>。看门狗每 15 秒检查并按需重连;本机重启后自动”收养”还在监听的隧道,不重复起。

远端凭据自动兑换

远端 dsh web 每个 /api 都要求按 authority 绑定的浏览器 cookie。插件用 ssh 读远端的启动 token,经隧道换一次 cookie 并按主机缓存,收到 401/403 自动刷新重试。

远端会话列表

走 /api/session/list(typert 信封),显示标题 / 最后活动 / cwd / 运行中。默认只显示主会话(按远端的权威字段 parentSessionId / origin=subagent 折叠子代理会话,另有少量按”自带 id 的空壳会话”启发式折叠),列表头给出一行「已隐藏 N 条子会话 · 显示全部」可一键切换。

面板内嵌远端 GUI

iframe 直连隧道地址。首次加载用带 token 的 seedUrl:那一次 303 会把凭据 cookie 种进浏览器,之后长期可用。

本地 ↔ 远端切换

顶部一个选择器:本地实例 或任意已注册远端。本地模式走同源 /api/session/list,iframe 指向 location.origin。

会话归档

在面板里把远端会话归档掉(走 workspace/archiveSession)。

agent 工具 remote_gui_run_task

让本地 agent 通过 ssh + dsh --profile headless 在远端跑一次性任务并把结果带回来。

诊断路由

  • /health:隧道 + 远端可达性
  • /proxy:透传任意远端路径

安装

从 npm 安装:

dsh plugin --profile desktop add dsh-remote-gui

从 GitHub 安装:

dsh plugin --profile desktop add github:temotee2103/dsh-remote-gui

宿主半边改完必须重启 DSH(Node 的 ESM 缓存持有宿主模块)。客户端半边是热加载的。

用法

  1. 侧栏页脚出现一个「远程」图标 → 点开面板
  2. 填 SSH 别名(要在 ~/.ssh/config 里配好,例如 my-vps 或 100.69.133.94)→ 添加
  3. 主机行会从「连接中」变成「已连接」;远端会话列表出现
  4. 顶部切换「本地实例 / 远端」;远端模式下 iframe 里就是那台机器的完整 GUI,可以直接在里面打字、点按钮

适用场景

适合需要远程管理多个 DSH 实例的开发者。远端需要跑着 dsh --profile web,且其 systemd 用户单元名为 dsh-web。本地端口从 5640 起分配(避开 dsh-sev 的 5636)。

注意事项

  • 远端需要跑着 dsh --profile web,且其 systemd 用户单元名为 dsh-web
  • 本地端口从 5640 起分配
  • iframe 里的远端 GUI 需要浏览器允许同站 iframe
  • 若遇到 iframe 里显示 dsh web authentication required,可能是宿主 Electron 会话没有把 seed 的 cookie 存下

生态背景

DSH 理念是「一切皆插件」。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

短结尾

dsh-remote-gui 把「Chat UI over SSH」的形态带给 DSH,让本地控制台统一管理远端的长驻执行体。

  • 目录页:https://www.skillhub.cn/plugins/temotee2103/dsh-remote-gui
  • GitHub:https://github.com/temotee2103/dsh-remote-gui
羽毛球分组比赛记分
小程序二维码

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

Xiaoye