dsh-ios-control: 手机扫码遥控 DeepSeek Harness Agent

DeepSeek Harness(DSH)采用插件化架构,官方 Web UI 默认绑定在 0.0.0.0 时存在远程代码执行风险,绑定在 127.0.0.1 时手机无法访问。dsh-ios-control 插件通过在独立端口运行一个经过认证的反代网关,将官方 UI 安全地暴露到局域网,实现手机扫码遥控电脑上的 agent。

插件定位

这是一个基于 dsh-remote-link 的个人定制版插件(MIT 许可证),由开发者 Hjay1101 维护。它主要解决“如何在不牺牲安全性的前提下,从移动端控制 DSH agent”的问题。

核心功能

  1. 手机扫码遥控:通过二维码或短码进行一次性配对,手机浏览器可直接打开官方 UI 进行控制。
  2. 会话持久化:开启 pairing.persistSessions 后,DSH 进程重启,已配对设备保持登录状态。
  3. 会话分叉工具 (fork_session):模型可调用该工具,以最近一个回合为边界创建子会话,继承上下文但不影响当前会话。
  4. 链路保活:针对 DSH 事件下行流缺乏心跳的问题,网关在空闲时注入 WS ping,避免连接被运营商 NAT 静默断开。
  5. 状态监控:提供 /status 状态页,实时展示连接的 RTT、设备身份、上游健康状态及保活计数。
  6. 设备管理:支持查看已连接设备列表、踢出旧设备或生成新的配对码。
  7. MiMo Code 支持:可作为认证网关,将 MiMo Code 服务的移动端 UI 也转化为手机可遥控的形式。
  8. 认证网关:基于 Loopback 反代,提供 HMAC 挑战-响应认证和 HttpOnly Cookie 会话管理。

安装与启用

通过官方 CLI 安装插件:

dsh plugin --profile web add ./dsh-ios-control

安装后,插件会接管 DSH 的 Web profile,在配置文件中添加 remote-link 配置项。默认绑定地址为 0.0.0.0,端口为 3081。

典型用法

配对设备:在聊天框输入指令获取一次性配对信息。

输入:给我配对码
输出:包含二维码 URL、ASCII 二维码图及 6 位短码。

管理设备:查询或清理已配对的设备。

输入:看看谁连过我 / 踢掉我的旧 iPad
工具:remote_devices

创建子会话:尝试不同的对话分支。

输入:分个叉试试别的方向
工具:fork_session

手动配对:若手机无法扫码,可在任意设备打开配对地址。

访问:http://<IP>:3081/pair 并输入短码。

查看状态:在桌面浏览器查看链路健康度。

访问:http://127.0.0.1:<port>/status

适用场景与注意事项

该插件适用于需要随时随地对本地运行的 DSH agent 进行调试或交互的开发者。

安全限制:
* 基于 HTTP 传输,LAN 嗅探者可复制 cookie 接管会话(存在 HTTP 天花板)。
* 非 loopback 绑定且既无密码又关闭配对时,网关将拒绝加载。
* 配对秘密仅在 URL fragment 中存在,服务器端只存储 SHA-256 摘要,5 分钟过期。

MiMo 模式:
* 在 MiMo Code 模式下,聊天框内的管理工具(如 remote_qr、fork_session)不可用,配对由 /qr 页面承担。

依赖与运行:
* 零运行时依赖,纯 Node.js 实现。
* 配置文件中 persistSessions 设为 true 时,会话摘要会以 0600 权限写入 $DSH_HOME/remote-link/ 目录。

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

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

小夜