Skip to main content
Y

dsh-phone-remote

yubi233/dsh-phone-remote

Host-side dsh plugin that pairs a phone to a dsh instance through a self-hosted relay: one outbound connection carries the session list, streaming chat, approvals, attachments and file previews to a dedicated mobile web shell, and devices pair with a one-time QR link and can be revoked from a console inside the dsh web GUI.

Install

dsh plugin --profile web add github:yubi233/dsh-phone-remote

README

dsh-phone-remote

dsh-web-remote 的 DSH Host 插件:把一台运行 DeepSeek Harness 的电脑接入中继(relay),让手机通过专用移动壳远程 使用它——会话列表、流式对话、审批、附件、终端、文件浏览,全部经中继转发。

在线演示:yubi233.github.io/dsh-phone-remote —— 纯前端 mock(静态页,无 relay、无真实会话),渠道名已脱敏为「演示渠道 A–E」, 数据全部在浏览器内模拟。

一个包,两个半区:

  • Host 半区(lib/index.js,Node):cordis 插件。向 relay 注册本机、维持出站 WebSocket、把手机 RPC 桥接到 DSH;并在 DSH web GUI 的 /api/web-remote/* 挂本地 控制台路由(仅本机/同源可访问)。
  • Client 半区(lib/client.js,浏览器):在 DSH web GUI 注入两个入口—— 设置 → 手机远程(完整页,打开即出配对二维码)和 插件 → dsh-phone-remote 详情页底部的同款区块。两处都能配置中继、生成配对码、管理 已配对设备——不需要改任何配置文件或敲命令。

安装

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

重启 profile(dsh web),设置导航出现「手机远程」即安装成功。

用法:装完即用(局域网模式,默认)

不需要单独部署任何东西。 插件内置 relay 与手机壳静态页:安装后自动在本机 启动中继(默认端口 8787,被占用时自动换端口),监听局域网。

  1. 打开 DSH 网页 → 设置 → 手机远程。状态卡直接显示局域网地址,例如 http://192.168.1.23:8787,并自动生成配对二维码。
  2. 手机连同一个 Wi-Fi,打开该地址即可使用;或点「配对手机」扫码;把地址发给 别人也行。
  3. 已配对设备可在面板里随时撤销。

Host 进程重启后自动恢复本地中继;设备配对记录持久化在 ~/.dsh/storages/web_remote_local_relay.json。

可选:接入外部 relay(服务器模式)

要让手机在局域网外也能访问(例如公网 VPS),在面板「中继服务器」里填外部 relay 地址与注册令牌 →「保存并连接」;随时可点「使用局域网模式」切回。 外部 relay 的最小环境变量:

变量作用
HOST / PORT监听地址(公网部署必须前置 TLS)
RELAY_REGISTRATION_TOKEN注册本插件的共享密钥(公网必设)
RELAY_TRUST_PROXY=1反向代理后按真实客户端 IP 限速
RELAY_STORE_FILE配对与令牌持久化
RELAY_STATIC_DIR可选:托管手机壳静态页(本包 shell/ 目录)

从部署配置固定(可选)

不想用面板配置时,在 patch 行里带 config(此时面板修改会覆盖这里的值):

- insert:
    - id: web-remote-host
      name: 'dsh-phone-remote'
      config:
        relayHttpUrl: https://relay.example.com
        hostId: <uuid>
        hostSecret: <secret>
        hostName: my-mac
        registrationToken: <RELAY_REGISTRATION_TOKEN>

安全模型

  • 配对是一次性 256-bit token(默认 5 分钟过期),claim 端点免鉴权但按 IP 限速; 换取的 device token 只返回一次,relay 只存哈希。
  • 控制台路由只接受本机回环或同源浏览器请求,跨源一律 403。
  • 单 Host 单手机:第二台设备接管在 60 秒内升级为冲突,可在面板撤销后重新配对。
  • 日志不出现 token、prompt、附件内容。

已知限制

  • 手机壳与 relay 的部署(含 HTTPS、登录门)不在本包内,见仓库 deploy/README.md。
  • 审批/提问按 Session 路由;Host 进程重启后等待中的旧审批不可回答。

Related plugins