前言¶
在 DeepSeek Harness(DSH)里做智能体开发,工作区通常落在本机目录。若代码、配置或构建环境在远程 Linux 服务器上,常见做法是本地再开一套编辑器或 rsync/scp 来回同步,会话里的模型也只能间接操作远端文件。DSH 社区插件 dsh-linked-workspace(维护者 jiahui-huang1)把已有 SSH 连接变成两类能力:只读远程目录浏览,以及本地目录与远端目录配对的联动工作区——远端只需 SSH,不必安装 DSH 或任何插件。
这是什么¶
一句话:SSH 支撑的远程目录与可编辑的本地⇄远端联动工作区,供 DSH 侧边栏、内嵌编辑器和 Host 工具链使用。
- 仓库:jiahui-huang1/dsh-linked-workspace
- 社区目录页:skillhub.cn 插件条目
- 分类:客户端;npm 包名
dsh-linked-workspace(资料中当前版本 0.5.12,MIT © 2026 Huangjh) - 面向 DSH 0.2.1-rc.4;侧边栏页面依赖 dsh-better-sidebar(v0.24+)。未安装 better-sidebar 时插件仍会加载(设置页可用),但侧边栏入口不会出现。
核心功能¶
连接与设置(设置 → 连接)¶
SSH 主机来自 dsh-ssh-tunnel 的 SSH Manager(~/.dsh/ssh-tunnel/hosts.json),也支持 ~/.ssh/config。密码与私钥只在 Host 进程内使用,不返回给页面或模型。
下面两类列表都在「连接」里维护:
- 远程目录:选主机与远端路径,可在右侧栏只读浏览;远程目录视图不允许编辑,需要改文件应创建联动工作区。
- 联动工作区:本地目录与远端目录配对,本地目录注册为 DSH 工作区;可选镜像(默认关闭)。开启镜像后首次立即检查,之后每 5 分钟比较远端与本地
.remote目录,并维护.local/mirror-manifest.json;默认排除.git、node_modules等。关闭镜像时允许两侧版本差异。
同一套「添加」表单可从「添加远程目录」或「添加联动工作区」入口打开。编辑器主题支持系统/浅色/深色,以及 GitHub、Solarized、Dracula 等 9 组主题卡(每组含浅/深预览)。
左侧「添加工作区」¶
插件接管 DSH 侧边栏/空白会话的目录选择,弹窗两种模式:
- 本地工作区:填写或浏览本地目录(Windows 支持 C:/D:/E: 等盘符)与工作区名称,创建普通 DSH 工作区。
- 远程联动:SSH 主机、远端目录、本地目录与镜像开关;创建后本地目录成为工作区,联动行在侧栏用链环图标区分(有运行中会话时链环约每 5 秒刷新为蓝色)。
右侧栏¶
- 远程目录:在设置里至少添加一条远程目录后,任意工作区会话均可打开;只读,不可编辑、传输、重命名或删除。
- 联动工作区目录:仅在联动工作区的会话中出现,绑定当前工作区;上方远程树、下方本地树,本地树自动隐藏
.local/.remote内部目录。单击选中、双击展开或在新标签打开文件;最多 12 个文件标签,支持语法高亮、Ctrl/Cmd+S保存、git 变更视图、双向传输队列、右键 SFTP/本机文件操作等。
会话中的模型可使用 Host 工具 linked_workspace(list、read、write、replace、sync 等),路径相对远端根;另有 linked_skills 的 list/read,联动会话直接使用本机 ~/.dsh/skills 等路径下的技能,无需装到远端。
联动工作区目录结构(资料原文):
<local>/
.local/ # 按需创建(镜像清单等)
mirror-manifest.json
.remote/ # 可选:远端文件镜像存档
安全与限制(README 摘要)¶
主机指纹 TOFU(SHA256,变化即拒绝);工具读写限制在配置的远端根内;单文件保存上限 8 MB;镜像与右键传输有文件数/体积上限;页面 API 仅接受本机回环同源(远程部署时回落 DSH connection 鉴权)。
安装与启用¶
官方 README 给出的本地包安装方式如下(需先取得插件目录,再在目录内或指定路径执行):
dsh plugin --profile "$DSH_PROFILE" add "file:$PWD/dsh-linked-workspace"
也可在 DSH 内通过 plugin_manager 的 install_bundle,目标填该目录的绝对路径。安装后重启 DSH 桌面应用(新 Host 插件在进程启动时加载;会话记录保留)。
启用路径:
- 左下角账号菜单 → 设置 →「连接」;
- 或左侧「添加工作区」→「远程联动」。
从旧包升级:0.3.0 起改名为 dsh-linked-workspace,首次启动会将 $DSH_HOME/remote-workspace 迁移到 $DSH_HOME/linked-workspace,之后可卸载 dsh-remote-workspace。
典型用法¶
- 确保 SSH 已在
dsh-ssh-tunnel或~/.ssh/config中配置好目标主机。 - 设置 → 连接 → 添加远程目录:选主机、浏览远端路径,用「测试」验证后「打开」——在任意会话右侧栏通过 + 菜单进入「远程目录」只读查看。
- 需要模型编辑远端代码:添加联动工作区(或添加工作区 → 远程联动),指定本地空目录或已有目录与远端项目根;在该工作区开会话,右侧栏打开「联动工作区目录」,双击文件编辑,或由模型调用
linked_workspace读写远端路径。 - 若希望本地
.remote与远端定期对齐,在创建或编辑联动配置时开启镜像;也可在工具中调用sync启动后台镜像任务。
适用场景与注意¶
适合:已有 SSH 习惯、希望在 DSH 同一界面里浏览远端树、在联动工作区里让人和模型共同改远端文件、且不想在服务器上部署 DSH 的场景。
注意:
- 插件以当前 DSH Host 进程权限运行,安装前应阅读仓库源码与 MIT 许可证,并理解 TOFU 与路径边界限制。
package.json中engines.dsh为>=0.2.0-rc.2 <0.3.0-0,与 README 写的 0.2.1-rc.4 面向版本一致,使用前请确认本机 DSH 版本匹配。- 社区插件目录(如 skillhub.cn、dsh-plugin.org)由社区扫描 npm/GitHub 维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件是客户端侧 SSH/SFTP 与 UI 扩展,不是官方内置功能。
结尾¶
dsh-linked-workspace 把 SSH 连接收成 DSH 里的远程目录与联动工作区:只读浏览与可编辑联动分开,Host 侧 linked_workspace 与右侧双树编辑器对齐同一远端根。进一步细节见仓库 README、docs/API.md 与 GitHub 仓库;条目索引见 SkillHub 目录页。