Skip to content

dsh-uumit-remote

Verified

@uumit-ai/dsh-uumit-remote · v0.1.0-beta.3 · MIT · Web UI

DeepSeek Harness plugin: open your DSH from your phone or any computer through UUMit, with pairing, access control and invitations. No desktop client needed.

Install

dsh plugin add @uumit-ai/dsh-uumit-remote

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Creators

Readme

@uumit-ai/dsh-uumit-remote

English | 简体中文

DeepSeek Harness(DSH)插件:不用安装 UUMit 客户端,在手机或其他电脑上,通过 UUMit 打开这台电脑上的 DSH。

装好插件后,点 DSH 侧栏底部设置按钮旁的「远程访问」,在 DSH 页面内弹出的面板里连接到 UUMit、选择谁能用。之后你和你邀请的人打开应用网址(形如 https://dsh--<你的电脑>.<UUMit 地址域名>/),看到的就是和本机一样的 DSH:对话、终端、文件、设置都可以用,设置会写回这台电脑。

DSH 里的 UUMit 远程访问面板

插件运行在 DSH 自己的进程里,直接连 UUMit 的通道,不下载、不启动任何其他程序,也不在本机开放端口。

Beta:这是预览版,以 beta 标签发布。1.0 之前行为和配置可能还会调整。

要求

  • dsh web(DeepSeek Harness 0.2.1-rc.2 及以上)。DSH 桌面版不起 Web 服务,不支持。
  • Node.js 22.19 及以上(与 DSH 相同)。
  • 一个 UUMit 账号。

安装

dsh plugin --profile web add @uumit-ai/dsh-uumit-remote@beta

装好后重启 dsh web。

使用 npmmirror 等镜像源时,如果提示找不到这个版本,说明镜像还没同步到新版本,可以直连官方源安装:

dsh plugin --profile web add @uumit-ai/dsh-uumit-remote@beta --registry=https://registry.npmjs.org/

卸载:

dsh plugin --profile web remove @uumit-ai/dsh-uumit-remote

插件是纯 JavaScript,没有运行时依赖,也不需要构建。浏览器端 client.js 直接写成 DSH 加载器要求的工厂格式,React 由 DSH 页面提供。

使用

  1. 在本机打开 DSH,点侧栏底部设置按钮旁的「远程访问」(侧栏收起时是一个地球图标),管理面板会在 DSH 页面内弹出,不会另开窗口。入口没有出现时,可以打开 <dsh web 地址>/uumit-remote/ 兜底页。
  2. 点「连接到 UUMit」,在打开的网页里登录 UUMit,核对网页上的连接码与面板里一致后确认。打不开确认页时,可以在 UUMit 网页生成 8 位配对码填进来。
  3. 连接后 DSH 会作为应用 dsh 出现在你的 UUMit 地址里,在「谁能用」里选择:
    • 仅自己:只有你登录 UUMit 后能打开;
    • 我和我邀请的人:可以生成邀请链接,或按手机号直接授权,随时撤销;
    • 所有人:任何拿到网址的人都能以你的身份完整操作这个 DSH,面板会二次确认;
    • 关闭。
  4. 在任何地方打开面板里的「应用网址」即可使用。
  5. 不用了可以点「断开这台电脑」,这台电脑会从你的 UUMit 设备中移除。

也可以让 DSH 里的 Agent 帮忙:插件注册了工具 uumit_remote_access(查看状态、发起连接、告诉你在哪里管理)。Agent 不能替你改「谁能用」。

配置

在 profile 的 cordis.patch.yml 里按 id: uumit-remote 覆盖(整条替换,没写的项回到默认)。

项 默认 说明
apiBase https://api.uumit.com 平台入口;环境变量 UUMIT_API_BASE 优先。非 https 只允许本机与内网地址
serviceName dsh 登记的应用名
deviceName 主机名 · DSH 在 UUMit 上显示的电脑名;环境变量 UUMIT_DEVICE_NAME 也可以设置
autoConnect true 已连接的电脑在 DSH 启动时自动上线;未连接时不会自动发起连接
home $DSH_HOME/uumit-remote 本地状态目录

测试环境开关(只用于联调):UUMIT_TUNNEL_INSECURE_TLS=1 不校验通道节点证书,UUMIT_TUNNEL_CA_FILE 指定节点 CA,UUMIT_WEB_BASE 指定网页入口。

安全

  • 访问控制以 UUMit 网关的判定为准;插件再按同样的规则核对每个请求,缺失或异常一律拒绝。
  • 远程浏览器拿不到 DSH 的登录凭据;插件在本机兑换一个只留在内存里的内部凭据,附在转发给 DSH 的请求上。撤销某个人后,他的下一次请求就会被拒绝。
  • 管理面板只接受这台电脑上、已打开 DSH 的浏览器;经 UUMit 打开的远程页面访问不到它。
  • 设备凭证保存在 $DSH_HOME/uumit-remote/credentials.json(仅本人可读写),日志与页面不会出现它。
  • 远程访问者选目录时使用网页内浏览,不会在你的屏幕上弹出系统对话框;「在本机打开文件或应用」类功能对远程访问者隐藏。
  • 「所有人」意味着匿名访问者能以你的身份使用终端与文件,只在清楚风险时选择。

安全问题请通过 GitHub 的 安全通报 私下报告,不要发公开 issue。

开发

npm test            # 单元与集成测试
npm run test:frps   # 对真 frps 0.71.0 的协议一致性用例

test:frps 需要 frps 0.71.0 可执行文件,用 FRPS_BIN 指定,或放在 test/e2e/.tools/frps;找不到时这些用例会跳过。

本机全链路联调(用临时 DSH_HOME,不影响你自己的 ~/.dsh,也不连任何共享环境):

# 1. 真 frps + 替身平台
QA_API_PORT=18990 node test/e2e/qa-stack.mjs > /tmp/qa-stack.log
# 2. 把插件装进临时 profile 并启动 dsh web
DSH_HOME=/tmp/dsh-qa dsh plugin --profile web add link:$(pwd)
DSH_HOME=/tmp/dsh-qa UUMIT_API_BASE=http://127.0.0.1:18990 UUMIT_TUNNEL_INSECURE_TLS=1 dsh web --host 127.0.0.1 --port 3191 --no-open > /tmp/dsh-qa-web.log
# 3. 九步验收:连接、经通道打开真 DSH、拦截、谁能用、邀请与授权、所有人确认、关闭、断开与配对码重连
node test/e2e/qa-flow.mjs /tmp/dsh-qa-web.log /tmp/qa-stack.log

目录:client.js 浏览器端(侧栏入口、页面内弹窗与管理面板),src/frp/ frp 客户端子集,src/control/ 平台接口与本地状态,src/tunnel.js 通道管理,src/agent.js 编排,src/proxy/ 回环代理与身份门,src/ui/ 本机管理接口与兜底页,src/tool.js Agent 工具。

许可证

MIT,另见 NOTICE。