xiaoxiaohai/dsh-remote

dsh-remote

Secure, opt-in phone access for DeepSeek Harness Web on macOS.

待分类

DSH Remote

English | 中文 | GitHub

Beta 状态: 这是 @musitoolbox/dsh-remote 的公开源码仓库。只有在 npm 官方 registry 已显示 0.4.0-beta.2 和 beta tag 后才能使用下面的安装命令;registry 发布只由获得授权的人类所有者执行。

DSH Remote 让手机打开 Mac 上现有的 DeepSeek Harness Web 界面。只有本机用户明确同意后,插件才会匿名注册 Mac、启动经过校验的 FRPC,并在 DSH 设置中提供二维码配对和已授权手机管理。

这是托管 Beta,不是正式可用的远程访问服务。开启前请阅读安全策略和隐私说明。

功能

  • 明确选择开启:只安装不会发送注册请求,也不会打开隧道。
  • 本机 设置 → 手机访问 卡片,提供二维码、暂停、轮换和单手机撤销。
  • 转发现有 DSH Web HTTP/WebSocket,而不是另建一套任务与审批协议。
  • 受管理的 FRPC 0.70.1,只转发本机 DSH Web 端口。
  • 同时提供经过校验的 darwin-x64 和 darwin-arm64 包内文件。
  • 模型可见、只读说明型 remote-access Skill,覆盖手机、Android、iPhone、移动端、二维码配对和远程 DSH 问题。
  • 可为拥有兼容 DSH Remote Server 的运营者覆盖成自托管服务地址。

Skill 只解释安全的本机设置步骤。它不能启动隧道、修改配置,也不能证明远程访问正在运行;本机设置卡片始终是状态依据。

环境要求

  • Intel Mac(darwin-x64)或 Apple Silicon Mac(darwin-arm64);
  • Node.js 22 或更高版本;
  • DeepSeek Harness 0.1.0-rc.8 或更高版本;
  • DSH Web profile;
  • 兼容的手机端和到所选服务的网络路径。

本包不支持 Windows 或 Linux 主机。

托管 Android 手机端是位于 https://remote.musitoolbox.com/downloads/dsh-remote-android.apk 的 Release 签名 0.4.0-beta.1;托管 assetlinks.json 使用匹配的 Release 证书。手机端源码和二进制不属于本插件仓库或 npm 包。iOS 公开分发仍待完成。

npm 安装方式

npm 官方 registry 显示 Beta 后执行:

dsh plugin --profile web add @musitoolbox/dsh-remote@beta
dsh --profile web --dump-config
dsh web

确认配置输出中的 dsh-remote 行包含:

serviceUrl: https://remote.musitoolbox.com
enabled: false
autoStart: false

新增或更新插件后,需要重启正在运行的 dsh web。

从当前源码测试

每次发布前,开发者都可以构建经过校验的二进制并安装本地目录:

npm run fetch-frpc
npm test
dsh plugin --profile web add /absolute/path/to/dsh-remote-plugin
dsh --profile web --dump-config
dsh web

发布检查应使用一次性 DSH profile,不要在打包测试时替换用户现有的 Web profile。

第一次连接

  1. 在 Mac 上通过 loopback 本机地址打开 DSH Web。
  2. 打开 设置 → 手机访问。
  3. 检查配置中显示的托管服务运营者。
  4. 点击 开启手机访问。这是第一次注册 Mac、写入本地凭证和启动 FRPC 的操作。
  5. 使用兼容的手机端扫描二维码。
  6. 确认手机出现在 已授权手机 中。

二维码 URL 等同于凭证。不要把它粘贴到聊天、Issue、截图、统计系统或日志中。

更新与移除

更新命令:

dsh plugin --profile web update @musitoolbox/dsh-remote@beta

移除前,先在本机设置中撤销手机或轮换二维码,然后暂停访问。删除本地包不会自动删除托管服务中的匿名记录。

dsh plugin --profile web remove @musitoolbox/dsh-remote

本地状态默认保存在 ~/.dsh/dsh-remote/。其中包含权限为 0600 的有效凭证;只有在撤销访问并停止 DSH 后才能检查和删除。

数据路径与信任边界

手机 HTTPS/WSS
  → 选定的 DSH Remote Gateway
  → 已鉴权的 FRP 虚拟主机
  → Mac 上的 FRPC
  → 本机 DSH Web HTTP/WebSocket

托管 Gateway 会传输 DSH 页面和对话流量。公网链路使用 TLS,但此 Beta 没有额外提供对 Gateway 运营者隐藏 DSH 内容的应用层端到端加密。若不能接受该信任模型,请使用兼容的自托管服务。

管理 RPC 仅限 loopback,设置客户端不会在远程页面注入。代理只指向 127.0.0.1:<DSH Web port>,FRPC 直接启动,不经过 shell。

Agent 发现

安装后,插件会注册 remote-access Skill。路由描述包含 phone、mobile、Android、iPhone、iOS、QR pairing、remote DSH Web 和连接排查。它要求 Agent 只解释本机 UI 步骤,不能静默启动进程,也不能索取凭证。

Skill 只在安装后生效。安装前仍要依靠公开仓库、npm 元数据、网页搜索和社区插件目录。本项目不声称得到 DSH 官方背书,也不保证固定搜索排名。

自托管

在 Web profile 的用户 patch 中覆盖 serviceUrl,同时保留首次明确开启边界。详见自托管。本仓库只包含插件,不包含兼容 Server。

开发与发布包验证

node --version
npm test
npm run check:docs
npm run check:secrets
npm run fetch-frpc
npm pack --dry-run --ignore-scripts
npm run pack:verify

bin/ 由脚本生成并被 Git 忽略。打包脚本从 FRP 官方发布下载文件,校验固定 SHA-256,并带入 Apache-2.0 上游许可证。另见第三方声明和贡献指南。

Beta 限制

  • 托管服务没有正式 SLA、公开保留周期、账号恢复或完整的自助身份删除功能。
  • iOS 公开分发和真机收尾仍未完成。
  • 设置卡片目前是中文;英文 UI 本地化仍待完成。
  • 受信任的 Gateway 运营者可以处理被代理的 DSH Web 流量。
  • 目前只测试 macOS 和 DSH 0.1.0-rc.8 或更高版本。

另见变更记录、发布清单和安全策略。

许可证

插件源码使用 MIT License,Copyright © 2026 MusiToolbox。包内 FRPC 二进制继续使用 Apache-2.0。