dsh-remote-dsh:将远程 DSH 实例接入本地侧边栏

DeepSeek Harness (DSH) 支持在多台主机上部署。当远程服务器运行着 DSH Web 实例时,查看或控制远程会话通常需要打开新窗口或切换浏览器标签页,打断本地工作流。dsh-remote-dsh 插件通过在本地侧边栏增加一个“远程”标签页,将远程主机的 DSH 界面接管至当前页面,并提供会话状态指示。

这是一个由 hutao562 维护的 DSH 插件。它为 Web 端添加一个侧边栏标签页,点击后会将当前页面重定向为远程主机的 DSH Web GUI,并在侧边栏顶部显示远程会话的状态点。

安装与启用

通过官方插件命令安装:

dsh plugin --profile web add dsh-remote-dsh

安装后需要重启一次 DSH。

典型用法

  1. 在远程主机上运行 dsh web,获取包含 ?token= 的 URL。
  2. 使用 SSH 将远程端口映射到本地回环端口:
   ssh -L 3081:127.0.0.1:3080 user@remote-host
  1. 在本地侧边栏点击“远程”行,点击“+ 添加”。
  2. 填写地址为 http://127.0.0.1:3081。
  3. 在设置行中粘贴远程 dsh web 打印的 token,点击配对。

核心特性与限制

必须使用本地回环端口

远程 DSH 的会话 Cookie 设置为 HttpOnly; SameSite=Strict,因此只能通过本地回环端口(如 ssh -L 或 frp stcp/xtcp)访问。直接访问公网域名或非回环 IP 会导致 401 或 403 错误。

会话状态徽章

侧边栏顶部的“远程”行包含一个状态点,颜色含义如下:
- 蓝色:远程主机上有正在运行的会话(含子代理)。
- 绿色:自上次查看远程视图后,有会话完成了一轮。
- 琥珀色:远程主机上有会话处于“等待批准/提问/计划评审”状态。此状态需要被控端安装 v4 以上版本的 peer 插件。
- 红色:无法读取远程状态(通常是被控端未安装 peer 插件)。

开发与热加载

该插件无构建步骤。修改 lib/index.js 需要重启 DSH;修改 lib/client.js 刷新页面即可生效。首次安装支持热加载,无需重启。

已知限制

  • 接管页面时会覆盖本地侧边栏,返回需依赖顶栏按钮。
  • 在 iframe 中 Esc 键可能失效。
  • Token 是每个进程生成的,重启远程 dsh web 后需重新配对。
  • 暂不支持将远程主机集成为本地的模型工具。

生态背景

DSH 理念是“一切皆插件”,该插件为本地侧边栏增加了远程控制能力,但并未提供 Agent 集成功能。更多实现细节与文件结构请参考 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜