跳到主内容

ds-harness-remote

57Star6Fork1Issue0Watching

把 DeepSeek Harness 工作区带到手机、浏览器和另一台电脑上,跨设备端到端加密复用同一份会话与工具。

机审证据4/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
分支
main
deepseekdsh-plugin

安装

命令web profile
$ dsh plugin --profile web add ds-harness-remote

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 liguobao/deepseek-harness-remote:先查看仓库 https://github.com/liguobao/ds-harness-remote 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

让 DeepSeek Harness 的工作区不再被绑在一台电脑上:在某台机器上启用"被远端控制"后,你可以在手机、浏览器或另一台电脑继续同一个会话、复用原有的 Workspace 与工具链。

核心能力

  • 把本机 Harness 注册为 Host,让其它已登录同一账号的设备"接管"远端 Workspace
  • 继续进行中的会话并查看最新进展,发送新指令、调整方向或在 rc.2 中发送图片 Prompt
  • 在客户端回答 Harness 的提问、处理权限请求
  • 浏览远端目录并打开只读 Workspace 列表,原生 UI 自动切到本地继续工作
  • 通过自适应传输(LAN / P2P / TURN / Relay)连接,自动选择最稳的链路;Header 上显示当前连接方式
  • 配合 dsh-file-viewer 实现受限的远端只读文件预览,每块最大 512 KiB,由 File Viewer 自身的权限把关

技术实现

  • 语言: TypeScript(Node 22 工具链)
  • 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-host-apiproxy、@dsh-remote/crypto(Noise IK)、werift(纯 TS WebRTC)、zod、qrcode
  • 架构模式: 通过 Cordis 注入 Host 生命周期,使用 cordis.patch.yml 启用 dsh-remote 插件;Runtime 拆分为 HostPluginRuntime(Host 侧)和 ClientModeRuntime(同账号下的远端控制),Host 与 Client 都基于 ApiProxySwitch 在本地与远端 ApiProxy 之间无缝切换;安全层使用 X25519 + Noise IK,端到端加密后再交给 Relay 转发;前端 React 组件通过 dsh-client-ui-slots 注入侧边栏与设置面板
  • 入口文件: packages/plugin/src/index.ts(Host 入口 apply(ctx, input)),UI 入口 packages/plugin/src/client.ts

适用场景

办公电脑跑 Harness 主会话,出门用手机或另一台笔记本继续推进同一份 Workspace;或在不同机器之间灵活切换,不想每次都在新机器上重新克隆项目、登录账号、加载历史。适合重度使用 Harness 又不愿意把所有数据同步到云端的人。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness0.1.0-rc.6 – <0.2.0来自 peerDependencies;README 注明实测适配 dsh-v0.1.1-rc.2
@deepseek-ai/cordis>=4.0.1 <5插件容器与生命周期
Node.js未声明开发依赖 @types/node 22.10.7,建议使用 Node 22 工具链
平台macOS / Windows / Linuxwerift 是纯 TypeScript WebRTC,无需原生模块;identity-store 对 Unix 文件权限做 0600 校验
原生模块无所有依赖均为纯 JS

安装方式

dsh plugin --profile web add github:liguobao/deepseek-harness-remote

配置项

配置类型说明默认值
enabled布尔是否启用 Remote 功能true
rolehost / client / both这台机器是只当 Host、只当 Client,还是两者皆可host
serverUrl字符串(HTTPS 链接)远端中继 / 注册服务器地址;本地测试时 http://localhost 也可默认 https://dsh.r2049.cn(见 cordis.patch.yml)
deviceName字符串在其它设备列表里显示的名字当前系统 hostname
forceRelay布尔是否强制走 Relay(关闭自适应)false
logLeveldebug / info / warn / error日志详细程度;会同步输出到 DSH Desktop 的 desktop.loginfo
reconnect布尔或对象断线重连策略,可分别配置初始/最大重试间隔与抖动enabled=true,初始 1 秒,最大 30 秒,抖动 0.2

常见问题

Q: 我只有一台电脑也能用这个插件吗?

A: 可以装。装好之后默认以 Host 角色运行,在其它已登录同一账号的设备上就能看到这台电脑并继续工作;如果只想用本地功能也可以在配置里把 role 设成 client。

Q: 安装之后还需要做什么?

A: 安装并重启 Harness,从侧边栏打开 Remote 入口,使用账号密码或 GitHub / 知乎扫码登录,再勾选"允许控制此设备"即可上线。新账号需要先在 Remote Web 注册页完成注册。

Q: 会不会泄露我的代码或会话内容?

A: Host 与 Client 之间使用 X25519 + Noise IK 端到端加密,Relay 服务器只转发密文,不存储会话明文或设备私钥;远端文件预览只支持只读块读,写入、删除、上传、执行都被网关白名单拒绝。

Q: 必须要装 dsh-file-viewer 才能用远端文件功能吗?

A: 是的。文件预览依赖可选的 dsh-file-viewer;插件本身只桥接 Host 侧的 fileviewer 服务,未安装时会返回 FILE_VIEWER_UNAVAILABLE。

Q: 切换到远端 Workspace 之后,本地任务还能继续吗?

A: 一旦切到远端,UI 上看到的是远端 Harness 的会话和工具;可以通过 Remote 弹窗里的"退出"按钮随时切回本地,断线时也会自动回落,整个过程不需要重启 Harness。

Q: 在手机上能用吗?

A: 可以。仓库 apps/android 提供独立的 Android APK,登录同一账号后选择在线 Host 即可继续会话;图片 Prompt 走 session.prompt,图片回显走 session.attachment。

Q: VS Code 里也能用吗?

A: apps/vscode 是开发者预览版的 VS Code 扩展,源码已包含;安装方式需要自行打包,与 Host 共享账号授权和加密通道,但目前还未作为正式版发布。

Q: 怎么把设备从账号里彻底移除?

A: 在设置里点"退出"会清除本地凭证;也可以在 Server 端"删除设备",本地的 trusted-peers.json 和凭证会自动失效,下一次连接会被拒绝。

上手难度

进阶 — 需要理解账号授权、Host/Client 角色与 Relay 网络模型的基本概念,否则第一次登录时的"主机匹配码/扫码/账号密码"区别容易搞混。

已知问题与限制

  • 仅托管 Relay 可用,受支持的自建 Relay 方案尚未发布(README.md:67-68)
  • 真实 dsh-desktop 双角色端到端、与外部 Server 跨机联调、Host / Harness rc.2 图片大文件传输、LAN / P2P / TURN 路径真机验证仍在 TODO 列表中(TODO.md:28-39)
  • serverUrl 必须使用 HTTPS(localhost 例外),且不能带路径、查询串、用户名密码,否则会在 normalizeServerUrl 中抛错(packages/plugin/src/config.ts:97-112)
  • 仅暴露官方 ApiProxy 白名单内的方法(约 33 个:会话、子智能体、Workspace、目标描述、命令注册表等),其它方法一律 METHOD_NOT_FOUND(packages/plugin/src/harness-api-bridge.ts:100-140)
  • 不提供 Shell、PTY、远程桌面、任意文件写入或通用 Harness 工具 RPC;Harness 自身允许的工具仍会按 Host 的权限流程执行(README.md:122-130)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/liguobao/deepseek-harness-remote)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录