前言¶
用 DeepSeek Harness(DSH)做开发时,常见做法是为每台 SSH 机器、每个 WSL 发行版或容器再开一个客户端窗口。本机项目和远端项目分散在不同会话里,Agent 配置、Skill 和侧栏工作区也不在同一视野。若只想改远端几行代码或跑一条测试命令,却要把整套远端 DSH 拉起来,成本偏高。
下面介绍的 dsh-ssh-workspaces(仓库 czp0312/dsh-ssh-workspace,维护者 czp0312)是 DSH 生态下的客户端类插件:把 SSH 服务器、WSL 和 Docker 容器里的项目目录挂进当前窗口左侧的原生「远程工作区」,与本机项目并列管理;可按项目选择轻量或全量运行模式,并在全量场景下按需把本机 Skill 同步到远端。插件当前版本 0.3.3,许可证 MIT;npm 包名为 dsh-ssh-workspaces。DSH 侧声明兼容 >=0.2.2-rc.1 <0.3.0-0,README 记载已在 DSH 0.2.2-rc.1 上做过实机验证。
这是什么¶
一句话:远程项目在 DSH 原生侧栏里登记、连接和打开,不必为每个环境单独再开一个 DSH 窗口。
插件通过 Cordis patch 注入客户端界面,左侧提供独立的「远程工作区」入口。同一 SSH 地址、WSL 发行版或 Docker 容器下的多个目录归在可折叠的「环境」父项下;项目标题旁有主机图标,颜色表示连接状态(绿已连、灰未连、黄连接中、红异常)。分类上属于 SkillHub 目录中的客户端插件;GitHub 星标数为 0(以目录页信息为准)。
核心功能¶
同一窗口管理本机与远程¶
- 使用 DSH 原生工作区与会话列表,远程与本机项目并存。
- 支持按名称、设备、路径搜索,以及按模式、连接方式、离线状态筛选。
- 同一环境可「添加项目」复用连接,多个全量项目可共享后端;全量连接的断开、重连在环境级统一操作,界面会列出受影响的项目。
- 运行模式按项目配置:同一 WSL 内可同时存在全量开发项目与轻量脚本项目。
轻量模式与全量模式¶
| 能力 | 轻量模式 | 全量模式 |
|---|---|---|
| 远端安装 DSH | 不需要 | 首次连接自动部署 |
| Agent 与模型 | 本机 DSH | 远端 DSH |
| 项目文件 | WSL 共享、SSHFS 或 Docker 已有挂载 | 远端原生访问 |
| 本机 Skill | 沿用本机,脚本受远端执行环境限制 | 可勾选同步并比较差异 |
| 命令执行 | 远程 Bash,每次独立执行 | 远端 DSH 原生工具 |
| 原生终端、后台任务等 | 不支持(Native 工具模式) | 接入远端 DSH |
轻量模式适合保留本机 Agent、模型与 Skill,只把文件和命令放到远端;全量模式适合 Agent、终端与任务均在远端运行的完整远程开发。切换模式不迁移旧对话,也不停止原模式中正在运行的任务;两种模式共用同一远程目录,分别保留工作区入口与会话历史。
Skill 同步(全量)¶
在已连接的全量工作区中点击「同步 Skill」,可搜索、勾选本机用户技能与自定义技能;先比较「远端缺少」「内容不同」「已一致」再同步,默认只选缺失项,覆盖需明确勾选。同步会携带技能目录内脚本与资源,不复制 .env、Git 仓库、依赖目录或缓存;不会同步 Windows 程序或本机 MCP。
Docker 与 SSH¶
- Docker:支持本机 Docker、Docker Context、SSH 宿主机上的 Docker;读取运行中容器列表,全量经
docker exec在容器内运行 DSH,轻量依赖已有 bind mount 等共享路径。容器以完整 ID 登记,同名容器重建后需重新添加。 - SSH:轻量、全量均支持自动选择(含
~/.ssh/config别名)、仅密码、密钥、证书;密码与私钥口令仅存于本机 DSH 进程,重启后按需重填。
更细的认证、Docker 环境与故障处理见仓库 使用指南。
安装与启用¶
官方桌面客户端使用 desktop profile 时,在终端执行:
dsh plugin --profile desktop add dsh-ssh-workspaces@0.3.3
使用 dsh web 时安装到 web profile:
dsh plugin --profile web add dsh-ssh-workspaces@0.3.3
安装后需重启客户端或 dsh web 一次。 若找不到 dsh 命令,可在官方客户端「应用 → 管理 dsh 命令」中配置;也可在客户端插件管理界面用 npm 包名 dsh-ssh-workspaces 安装。自定义启动方式时将 --profile 换成实际 profile 名称。
插件以当前 DSH 进程权限运行;安装前建议查看 GitHub 源码 与 MIT 许可证,确认是否符合本机安全策略。
典型用法¶
添加 WSL 项目¶
- 左侧 远程工作区 → 添加项目 → WSL,选择发行版。
- 选择轻量或全量模式;仅需本机 Agent 配合 WSL 文件与命令时可先选轻量。
- 填写 Linux 绝对路径(如
/home/dev/projects/demo),或浏览目录;用户名留空则用发行版默认用户。 - 「测试连接」→「添加到工作区」→「打开项目」进入会话。
WSL 需 Python 3 与 Bash;全量首次连接会拉取 Node / DSH(符合要求的 Node 会复用)。
添加 SSH 项目¶
- 先在系统终端用
ssh登录并完成主机指纹核对。 - 远程工作区 → 添加项目 → SSH,填写主机或别名、端口、用户名与登录方式。
- 选择模式与远程目录;轻量模式需先准备好 SSHFS 挂载,全量无需挂载。
- 测试连接并添加。全量模式使用远端模型配置,插件不复制本机 API Key;远端需自行配置模型提供方,见 全量模式准备。
添加 Docker 项目¶
- 远程工作区 → 添加项目 → DOCKER,选择 Docker 所在位置(本机 / Context / SSH 宿主机)。
- 「读取容器」,选择运行中容器,填写容器内项目目录与用户。
- 轻量模式填写已与容器目录双向共享的本机路径;全量无需挂载。
- 测试并添加;全量连接后可从项目行「同步 Skill」。
适用场景与注意¶
更适合:主要在 Windows 桌面 DSH 上工作、远端为 Linux / WSL / Linux 容器(全量后端要求 glibc Linux;Alpine / musl 可考虑有共享路径的轻量模式)的用户。macOS / Linux 本机作为 DSH 客户端尚未在 README 中记载实机验证。
使用前需知:
- 轻量 SSH 指定的挂载路径必须是真实 SSHFS(或其它已建立的双向共享),不能是普通本机文件夹。
- 全量部署装在远端用户目录,监听
127.0.0.1,经 SSH / WSL / Docker exec 隧道连接,不需要 root。 - 插件不跳过 SSH 主机密钥校验;未知或变更指纹需在终端侧先处理。
- DSH 生态理念是「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。
问题反馈请走 GitHub Issues,注明插件版本、DSH 版本、操作系统、连接方式、运行模式与复现步骤。
结尾¶
dsh-ssh-workspaces 把远程目录收进当前 DSH 窗口的原生侧栏,用轻量 / 全量两种模式拆开「本机 Agent」与「远端完整 DSH」的需求,并在全量路径上提供可比较的 Skill 同步。安装命令以 npm 包 dsh-ssh-workspaces@0.3.3 为准,装好后重启客户端即可在「远程工作区」里添加 WSL、SSH 或 Docker 项目。