前言¶
DSH 通过插件扩展能力,dsh-remote-workspace 是 FYL1025 维护的一个远程工作区插件。它面向一个具体场景:在 DSH Web 会话中处理远端 SSH 服务器上的文件、代码和命令,而不是只依赖本地文件或另开终端。
这是什么¶
FYL1025/dsh-remote-workspace 是 DSH 插件,定位为 “Remote Workspace for DSH”。它复用本地 SSH 连接方式,让 Web 端接入一台或多台服务器,并在对话旁边打开工作区面板。许可证为 MIT。
核心功能¶
- 多服务器连接管理:支持 SSH alias(
~/.ssh/config中的Host)或 host/port/user 模式,可随时切换;连接配置保存在浏览器 localStorage。 - Connect / Disconnect:一键验证并保持/释放活动服务器的连接状态。
- 文件树浏览器:懒加载展开/折叠,可切换隐藏文件,按类型显示图标,支持一键复制路径。
- 代码编辑器:行号 + 语法高亮预览(keywords/strings/comments/numbers/decorators),可编辑并保存回服务器。
- 命令执行器:在服务器运行命令,工作目录跟随当前打开文件。
- Dock / Float 双模式:贴靠对话旁,对话区可重排并拖动分隔线;或加宽为浮动面板,最大 1400px。
- 会话直接操作:可在聊天中让 agent 直接操作服务器文件。
安装与启用¶
先确认环境:Node.js ≥ 18、pnpm、一个 DSH profile(通常是 web)。
插件依赖本地 SSH 免密登录(key-based passwordless login)。如果还没配置,先按 host/port/user 或 SSH alias 完成免密登录,确保之后能用 SSH 连上目标服务器。
安装命令:
dsh plugin --profile web add git+ssh://git@github.com/FYL1025/dsh-remote-workspace.git
安装后重启 DSH,然后打开 Settings -> Remote Workspace。
典型用法¶
1、在 Settings -> Remote Workspace 中添加服务器(SSH alias 或 host/port/user),并选择为当前连接。
2、点击 Connect 验证连通性;成功后按钮变为 Disconnect。
3、点击 Open Workspace Panel,文件浏览器出现在对话旁。
4、展开目录并点击文件:用 Preview 查看语法高亮;用 Edit 修改后点击 Save 写回服务器。
5、在底部命令执行器中运行命令,例如:
ls -la
python train.py
6、点击 Widen 加宽为浮动面板,并拖动边缘调整大小。
适用场景与注意¶
适合需要在 DSH 会话中频繁查看远端文本文件、修改代码、运行命令的人,尤其是希望把远端操作留在当前 DSH Web 界面里的场景。
使用前注意:
- 插件读取文本文件 ≤ 2MB;更大文件需通过聊天让 agent 处理。
- 连接配置(alias/host/port/user)存储在浏览器 localStorage;不存储密码或私钥。
- 插件以当前 DSH 进程权限运行
ssh命令,使用danger-full-access策略。这相当于用户在终端自行运行ssh,但仅限该插件发起的命令。 - 安装前应检查源码与许可证,确认接受其访问模型。
- 安装后需要重启 DSH。
链接¶
GitHub:https://github.com/FYL1025/dsh-remote-workspace
插件目录线索页(独立社区目录线索,未在本资料中抓取验证):https://www.skillhub.cn/plugins/FYL1025/dsh-remote-workspace