dsh-plugin-dshm
Connect the DSHM iPhone/iPad companion to DeepSeek Harness over your local network or Tailscale, with device pairing, session control and file transfers; public TestFlight access to the companion app is pending Apple review.
Install
dsh plugin --profile web add dsh-plugin-dshm
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✗ |
| 2 list | — |
| 3 mount | — |
| 4 boot | — |
dsh: initialized profile web at /home/node/.dsh/profiles/webFour stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
DSHM 桥接插件
[English](README.md)
通过 iPhone 或 iPad 上的 DSHM,查看和控制电脑里的 DeepSeek Harness 会话。
智能体仍在你的电脑上运行;手机通过局域网或你自己的 VPN 连接桥接插件。
环境与兼容性
- DeepSeek Harness 0.2.1-rc.3、0.2.1-rc.5 或 0.2.2-rc.1。插件 0.1.5 新增
0.2.2-rc.1,这是 2026-11-07 查询到的 npm latest 版本。
仅支持这些精确版本;其他版本和独立的 alpha 通道不会自动视为兼容。
- 电脑正在运行 DSH 桌面应用或
dsh web,手机或平板已安装兼容的 DSHM
构建版本。这个 npm 包不会安装 iOS 应用。
- DSH 运行环境使用 Node 24 或更新版本。桥接插件会在本机生成首次使用的 TLS 证书。
- 两台设备之间能够直接通信,或已连接到你自己的 Tailscale 等 VPN。
发布检查使用隔离的真实 dsh web:macOS 覆盖审批、重连、文件传输、路径限制
和重启;Windows 覆盖包安装、端口占用恢复、配对、重启和运行中禁用后重新启用。
Windows 检查使用托管 Windows Server,并不代表每种桌面配置均已验证。
真实手机的网络测试与本地测试客户端、Simulator 的结果分别记录。
v1 不包含中国大陆市场,也不声明已验证大陆网络可达性。
在 DSH 中安装
1. 在需要远程控制的 DSH 实例中打开 Plugins(插件) 页面。
2. 使用页面上的包安装入口,输入以下包名:
dsh-plugin-dshm
3. 安装后,在插件页面启用 DSHM,然后打开 Settings(设置)→ DSHM。
从 0.1.3 或更早版本升级时,请在 macOS 应用菜单选择 **Quit DeepSeek Harness
(退出 DeepSeek Harness)**,或在 Windows 托盘菜单退出 DSH,再重新打开一次。
只关闭窗口可能让旧桥接插件继续运行,即使插件页面已显示新版本。
保留桥接数据,已配对设备可直接重连。之后在运行中禁用和重新启用无需重启。
请使用 DSH 插件管理器,不要手动修改配置文件,也不要把文件复制进已安装的
DSH 应用目录。安装只作用于所选的 DSH profile,不会自动启用其他 profile。
DSH Market 条目从 npm 安装插件。市场目录更新与 npm 版本可用的时间可能不同。
也可以在 DSH 插件管理器中直接按包名安装。
配对手机或平板
1. 保持 DSH 运行。在电脑上打开 Settings → DSHM → Pair a device(配对设备)。
2. 在 iPhone 或 iPad 的 DSHM 中添加电脑,扫描显示的二维码。
3. 出现提示时允许本地网络访问。电脑上的 DSHM 设置卡片应显示该设备为
Connected(已连接)。
二维码只能使用一次,五分钟后过期。它包含临时配对凭据,请勿转发,也不要
放进截图或问题报告。点击 Cancel pairing(取消配对) 可以提前关闭;过期
后重新开始配对即可。只配对你信任的设备:已配对设备可以查看会话和文件、
发送提示词、回答工具审批。
手机丢失或不再需要访问时,在 Settings → DSHM 中点击该设备的
Revoke(撤销),再确认 Revoke device(撤销设备)。插件会关闭其当前
连接,并阻止旧配对重新连接。以后需要恢复访问时,可以重新配对。
网络设置
引导设置远程连接
手机和这台电脑不在同一 Wi-Fi?使用 Tailscale。在同一 Wi-Fi 下无需其他设置。
打开 Settings → DSHM → 不在同一 Wi-Fi。这个可选向导检查 Windows/
macOS 上的官方 Tailscale 程序,提供官方安装说明,并可打开 DSH 宿主电脑上的
Tailscale。安装、系统授权和浏览器登录由你亲自完成。如果从另一台电脑打开
DSH Web UI,请把 Tailscale 安装在 运行 DSH 的电脑 上。
手机安装 Tailscale,使用同一个个人账号登录,并连接两端。组织账号需确保
两台设备处于同一且允许通信的 tailnet;登录相同账号不会绕过组织访问策略。
连接后点 Pair for remote access,在 DSHM 扫描新二维码。旧的仅局域网配对
不会自动获得新 VPN 地址:先在 DSHM 忘记旧电脑,在宿主撤销旧设备条目,再
重新配对。主动生成新二维码会替换尚未使用的旧二维码。
向导区分“电脑已就绪”和“设备已通过 Tailscale 连接”。请让手机使用蜂窝网络
或其他 Wi-Fi 进行测试。Pair a device 始终保留局域网配对入口,无须
安装 Tailscale。取消安装、未登录或状态检查失败都不会关闭局域网配对。
插件不会自动安装 VPN,不修改 Tailscale 账号、DNS、路由、出口节点、防火墙
或代理设置,也不收集登录凭据。卸载插件会保留已安装的 Tailscale。新向导的全新安装及
远程手机验收尚未完成;此前 Windows 局域网/远程测试使用旧版包,不能代替
新向导验收。
- macOS: 在 系统设置 → 隐私与安全性 → 本地网络 中允许
DeepSeek Harness。如果通过终端运行 dsh web,也要允许相应的终端
应用。iOS 上的 DSHM 同样需要“本地网络”权限。
- Windows: Windows 防火墙询问 DSH 宿主程序的联网权限时,允许你信任的
专用网络(Private networks),保持 公用网络(Public networks)
禁用。桥接插件不会替你修改防火墙规则;Windows 的运行验证仍待完成。
- Wi-Fi: 建议先让两台设备连接同一个可信的家庭或办公 Wi-Fi。访客网络、
手机热点或路由器的客户端隔离功能,可能让设备都能上网却无法互相连接。
- 代理和 VPN: 在两台设备上开启 绕过局域网/本地网络(bypass LAN),
或暂时关闭影响连接的代理以检查路由。局域网地址和所用 VPN 的设备地址都
必须可达;把全部流量送入代理的规则可能阻止配对。
- 不在同一 Wi-Fi: 让电脑和手机加入同一个 Tailscale 网络或你管理的其他 VPN,
并允许两台设备之间通信。电脑需要保持唤醒,DSH 需要保持运行。DSHM 没有
自营会话流量中继。Bonjour 发现通常不会穿过 VPN;配对时应确保手机能够
连接电脑提供的某个地址。
桥接插件默认在局域网/私有地址及 Tailscale 地址的 TCP 47390 端口监听,
与 DSH Web UI 使用不同的监听端口。不要为它设置路由器公网端口转发,也不要
把 DSH Web 服务改成公网监听。Bonjour 使用本地网络;如果能够发现电脑却
连接不上,先检查权限、代理/VPN 绕过设置及客户端隔离。
首次启动时,如果 TCP 47390 已被占用或保留,桥接插件会自动选择可用端口,并保存它供以后重连。
新的配对码与 Bonjour 都会使用实际监听端口。运行 dsh dshm status 可查看端口。
如果端口变更后手机无法重连,请重新扫码。手动指定的 port 保持固定,所选网络接口上必须能使用该端口。
数据会发送到哪里
只有打开远程设置或请求远程配对时,向导才读取本机 Tailscale 状态;返回连接
状态和本机 VPN 地址,不返回账号身份、登录链接或其他设备清单。Tailscale 是
独立服务,有自己的账号和隐私条款;DSHM 在 VPN 上仍使用固定证书的 TLS。
桥接插件通过固定证书的 TLS 连接,把会话消息、工具结果、审批、所选文件及
已声明的交付文件发送给经过认证的已配对设备。手机发送的提示词、回答和附件
会交给电脑上的 DSH。桥接插件不运行云端智能体,也不使用分析服务或 DSHM
会话流量中继;它不会读取或转发 DSH 的模型服务凭据存储。DSH 本身仍会按照你
自己的配置连接模型服务和工具,遵循这些服务的设置。
Bonjour 会在局域网内公布桥接宿主的标识、协议版本和私有网络地址,供发现
使用。本地桥接身份和配对记录保存在 $DSH_HOME/dshm/,使用默认 DSH home
时为 ~/.dsh/dshm/。请勿把其中的私有文件粘贴到问题报告。安装插件或使用
远程索引时,DSH 会访问相应的包仓库和索引服务器。
可选的推送通知经过独立代理及 Apple 推送通知服务(APNs)。 未配置
pushProxyUrl 时,桥接插件不会发起推送网络请求,也不会声明支持推送。
配置地址后会定期检查代理健康状态;只有代理可达且会话观察功能正常时,才
声明支持推送。本软件包包含桥接发送端,代理及应用另行提供。iOS 推送注册、
通知服务扩展及真实锁屏手机的通知送达仍是独立工作,本地后端测试不代表
这些环节已经验证。
注册推送时,应用将 APNs 设备令牌及沙盒/生产环境标识发送给所选的 HTTPS
代理。代理保存这份路由映射,以及用独立包装密钥加密的认证密钥。应用通过
DMP 将返回的注册信息和另一把通知内容密钥交给已配对的桥接插件。桥接插件
把这些密钥和偏好保存在私有的 $DSH_HOME/dshm/push.json(权限 0600)中。
APNs 提供方密钥只存在代理的密钥配置中,不会交给桥接插件。
配置并完成注册后,桥接插件会把加密的会话标题、简短事件摘要,以及不透明
推送 ID、事件类别、分组 ID 和请求签名发送给代理。代理将密文和通用备用
提示转交 APNs。代理及 APNs 都不会收到通知内容密钥,也无法直接读取解密后
的标题/摘要;路由元数据、时间和载荷大小仍然可见,代理在网络层也会收到
客户端 IP。应用仅记录计数,并保存用于限流的 IP 哈希。推送不会上传文件或
完整会话记录;设备保持已认证的实时连接时,不会向该设备发送推送。
取消推送注册或撤销设备会先删除本地推送注册,再尽力请求代理删除相应映射。
代理不可达时,无法确认远端删除成功;仅卸载软件包不会删除远端映射。
APNs 已经接收的通知无法撤回。终端输出仍仅供查看;桥接插件不提供可交互的
远程终端。
卸载
1. 在 Settings → DSHM 中撤销不再需要授权的设备。
2. 打开 Plugins,找到 dsh-plugin-dshm,通过 DSH 插件管理器从当前
profile 中移除。如果其他 profile 也安装过,包括可选的 dshm CLI
profile,请分别移除。
3. 按提示重启受影响的 DSH 宿主。该宿主的 DSHM 设置卡片和监听端口应已消失。
卸载软件包与删除私有身份、配对记录是两件事。如果打算重新安装,请保留
$DSH_HOME/dshm/。如果你明确选择完整重置,应先停止所有使用该 home 的 DSH
宿主,然后仅删除桥接插件的 dshm 状态目录;已有设备需要忘记旧电脑并重新
配对。不要删除整个 DSH home,也不要删除模型服务凭据或会话目录。卸载桥接
插件不会删除 DSH 会话。
新 DSH 版本发布检查清单(维护者)
1. 先阅读上游改动,尤其是 projection 接口和插件加载器。在尚未发布的候选包中,
同步更新显式运行时允许列表及 engines.dsh,以便通过 DSH 安装并进行隔离
验证。以下测试通过前,不发布该包,也不对外声明支持新版本。
2. 通过 DSH 的正常发布渠道安装候选运行时,在隔离的 .dsh-test home 中对
该候选版本运行 pnpm -C bridge test:integration。兼容性改动必须同时
审查 bridge/src/projection/native.ts 中的显式运行时版本保护;只改包元数据
不会启用新运行时。必要时调整测试宿主路径,但不要跳过失败,也不要用旧
运行时的结果冒充新版本验证。
记录实际版本和结果;声明新的 Windows 组合已支持前,完成 Windows 清单。
3. 运行 pnpm -C bridge test、pnpm -C protocol validate 和
pnpm -C protocol gen:check。在正确的架构边界内修复兼容性问题并审查结果。
4. 只有真实 DSH 集成测试通过后,才最终确定 engines.dsh 中明确验证过的
版本或范围。不要假定未来整个小版本都兼容。根据实际验证记录,更新
tools/release-plugin/check-release.mjs 中的已测试范围,并与运行时版本保护
保持一致。从 bridge/package.json
重新生成并验证插件索引,保证两处兼容性字段一致。
5. 提升插件版本,更新中英文 README,检查 npm pack --dry-run,并通过隔离
profile 的插件管理器安装和启动准备发布的同一个 tarball。
6. 发布前审计准备发布的同一个 tarball,记录 SHA-256。所有者亲自登录 npm,
禁用生命周期脚本后发布该文件。通过隔离 profile 的 DSH 插件管理器验证按名
安装。已经发布的版本不能通过覆盖来修复。
公开仓库仅保存插件源码快照。共用协议源码、fixtures 及集成工具保留在私有
开
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::7,最后更新 2026-11-06