DeepSeek Harness plugin

把任意 SSH 机器
变成真正的 DSH 工作区

管理多台 SSH 机器,选一个远程目录,Agent 就能直接在那里工作——列文件、读代码、在远程主机上跑构建与命令,并把该目录镜像成一个真实的本地工作区。

$ dsh plugin --profile web add dsh-remote 复制

它能做什么

DSH 的 Web 界面刻意只监听 127.0.0.1(CLI 为安全拒绝 --host 0.0.0.0)。本插件反过来:由你主动连出到你维护的机器,通过 DSH 原生的工作区与文件流来工作——不改动 dsh-workspace 核心。

🖧

多机 SSH 列表

增删改并一键切换多台主机。支持密码、私钥、SSH agent、keyboard-interactive(OTP),以及 ProxyJump 跳板机。

🗂️

远程工作区选择器

在原生弹窗里选本地或远程工作区。远程路径走 SFTP 实时补全,逐字符延迟保持在几十毫秒级。

🛠️

20 个 rw_* 工具

读 / 写 / 编辑 / 追加 / 建目录 / 删除 / 移动 / stat / 执行 / 搜索 / 上传 / 下载 / 同步 / 推送 / 转发……全部是一等 Agent 工具。

🔄

冲突感知的镜像同步

三路 SFTP 同步把远程目录镜像到本地,因此 @ 文件引用、读文件工具与侧栏编辑器都能正常工作。

🔐

凭据留在本机

密码可存系统钥匙串,主机指纹做 TOFU 校验,命令记入审计日志;私钥内容永不离开你的机器。

♻️

自动更新

0.8.27 起默认自动检查并应用新版本;0.8.24 起可热切换宿主半——更新后无需重启 harness。

工具面

每个能力都是普通的 Agent 工具,模型用起来和本地文件工具完全一样。

rw_inforw_connectrw_pick_workspacerw_list_dir rw_read_filerw_write_filerw_editrw_append rw_mkdirrw_removerw_moverw_stat rw_execrw_searchrw_downloadrw_upload rw_syncrw_pushrw_forwardrw_disconnect

界面

原生的「Add workspace / 选择工作区」流程,以及多机设置面板。

核心能力总览
能力总览 —— 多机 SSH / 别名实时解析 / 三路同步 / 远程 @ 补全 / 端口转发 / 自动更新,以及 20 个 rw_* 工具。
远程工作区选择器
工作区选择器 —— 原生弹窗多了「远程」tab;可浏览并自动补全远程目录。
多机 SSH 列表与设置
设置 → 远程工作区 —— 机器列表、高级配置(私钥/跳板机/agent)、连接体检、端口转发、审计日志、更新。

安装

需要已安装 DeepSeek Harness。本插件是普通的 profile bundle。

# 1. 装进 web profile / add it to the web profile
dsh plugin --profile web add dsh-remote

# 2. 启动 harness(或先重启一次)
dsh web

# 以后升级 / update later
dsh plugin --profile web add dsh-remote@latest
从旧版本升级? 0.8.24 之前的版本无法自我热切换——首次升到 0.8.24+ 需要重启一次。之后更新即无需重启。
插件在升级 DSH 后整个不见了? DSH 会在导入前校验所有 @deepseek-ai/dsh-* 的 peer 版本范围,只要有一条不匹配就整包丢弃(没有设置页、没有 rw_* 工具)。0.8.29 起改为跨线区间,同时兼容 0.1.x 与 0.2.x;请升到 0.8.29 或更高。

配置

下面是最常用的几项;完整表(26 项)见 README 的「配置」一节——权威清单是 lib/index.js 里的 Config schema。

字段 默认 说明
host'' 默认 SSH 主机;留空则启动时处于断开状态。
updateModeauto auto | manual | off —— 自更新行为。0.8.27 起默认改为 auto:加载时及每 6 小时检查 npm,随后热切换宿主半。
updateAutoReloadtrue 更新落地后自动热切换宿主半;设为 false 则留到下次启动,设置页会提示需重启。
updateCheckIntervalMs6h auto 模式检查 npm 的间隔(下限 60000)。
auditLogtrue 把每条执行的远程命令记入本地审计日志。
maxOutputChars200000 单条远程命令捕获的 stdout/stderr 上限。