dsh-remote-vs:在 DSH Web 里做 VS Code 式远程 SSH 开发

前言

在 DSH 里做智能体或日常开发时,对话和轨迹往往在本机 Host 上跑,而真正要改的代码、要执行的命令却在远端 Linux 上。常见做法是另开 SSH 客户端、再开一个本地或网页编辑器,文件树、终端、Git 状态和 Agent 会话之间来回切换,上下文容易断。

dsh-remote-vs 把主机管理、helper 部署、远端文件/终端/Git,以及一套接近 VS Code 的工作台收进 DSH Web 插件:主机写在 DSH 设置里,浏览器里就能浏览远端目录、编辑、搜代码、走完整 SCM 流程,并在绑定远端工作区后让原生工具透明在远端执行。下面按「是什么 → 能做什么 → 怎么装 → 怎么用 → 注意点」说明。

这是什么

  • 插件名称:dsh-remote-vs(仓库 xiray-xia/dsh-remote-vs)
  • 维护者:xiray-xia
  • 分类:客户端(Web 插件,需装进 Web GUI 使用的 profile)
  • 一句话:VSCode-style remote SSH development for DSH — host manager、helper deploy pipeline、remote files/terminal/git、transparent remote execution。

架构上,插件在 Host 进程内负责 SSH 主机/密钥/推送与 /api/dsh-remote/* 路由;浏览器半接管设置里的「远程主机」与工作台(右侧栏 + 会话视图里的「远程编辑器」)。经 ssh2 与远端 ~/.dsh-helpers/<ver>/<arch>/dsh-ssh-helper 通信,在用户指定的远端工作目录上操作。

核心功能

远端工作台(VS Code 式 UI)

能力 说明
资源管理器 懒加载目录树;右键新建/改名/删除/复制/移动/粘贴、在此文件夹查找、插入 @ 引用;Git 状态色与文件夹聚合
搜索 文件名(远端 find)与内容(远端 grep);内容搜索支持范围目录、大小写/全字/正则,结果分组、命中高亮、点击跳转行
源代码管理 仓库目录选择器;变更/暂存/未跟踪分桶;逐文件与逐 hunk 暂存/还原/丢弃;分支/远程/stash;fetch/pull/push
会话改动审阅 按会话列出改动文件,+a −b 统计;打开后整行着色 + 字符级差异,n/N 跳改动点,可撤销单处改动(远端 git apply -R)
并排 Diff 左右等分、视口内渲染大行文件;可编辑变更后侧并保存
提交图 SVG 分支图、提交详情、展开变更文件与 diff
多标签编辑器 打开/保存/脏标记;图片与 Markdown/HTML 预览;Dark+/Light+ 语法高亮与兜底着色
多终端 标签式终端,刷新按 session 重连;单主机并发通道上限 6 条,忙时明确报错而非无限排队

装了 dsh-better-sidebar 时有独立「远程」tab;未装则使用原生右侧栏「远程」页(内容相同)。编辑器还会挂到会话视图槽,与「对话 / 轨迹」并列成远程编辑器标签,代码区整屏宽;右侧栏为窄屏备用面。

主机与通道

  • 主机增删改查、连接测试;证书或密码认证;配置落在 $DSH_HOME/dsh-remote.json(0600),与 dsh-ssh.json 独立。
  • 密码主机可一键生成专用密钥并写入 authorized_keys。
  • 推送流水线:探测远端 arch/系统、版本比对,一致则跳过,否则推送 helper;失败后退避重试(5 秒起、上限 5 分钟),设置页「推送」可强制重试。
  • 可从 ~/.ssh/config 或现有 dsh-ssh.json 只读导入一次。

远端文件经 SFTP;单目录列表上限 20000 条(资料未说明界面截断标记)。终端为 ssh2 PTY + WebSocket + xterm,刷新重连时不强行改 PTY 尺寸。

Agent 与透明远端执行

Agent 工具包括:remote_hosts、remote_exec、remote_read、remote_write、remote_ls。

在远端工作区绑定生效后:

  • P2:原生 read / write / edit / bash / glob / grep / jobs 等直接在远端执行。
  • P3:远端会话 @ 引用可走远端文件候选(含 rg 索引等路由)。

安装与启用

要求 DSH engines.dsh 为 >=0.2.1-alpha.3 <0.3.0;README 写明当前实测基线为 0.2.1-rc.2。插件版本在 package.json 中为 0.8.2,许可证 MIT。

在 Web 所用的 profile 下执行(web 为常见命名,以你本机 profile 为准):

dsh plugin --profile web add github:xiray-xia/dsh-remote-vs

资料说明:仓库自带构建好的 lib/,无需为安装脚本放行 pnpm 构建;装完后重启 dsh web,打开设置 → 远程主机开始配置。

典型用法

  1. 配主机:在设置里添加 SSH 主机(或从 ssh config / dsh-ssh.json 导入),做连接测试;需要时用密码主机上的密钥 bootstrap。
  2. 推 helper:首次或版本不一致时由推送流水线下发 dsh-ssh-helper;失败可看设置页推送并重试。
  3. 建工作区:在工作区面板用本地/远端双模向导绑定远端目录与路由档位。
  4. 日常开发:在资源管理器打开文件,用搜索定位;SCM 面板提交;多终端跑命令;需要全屏编辑时切到会话视图的「远程编辑器」。
  5. 与 Agent 协作:绑定远端工作区后,对话里用的读写、bash、grep 等可透明落在远端;远端 @ 引用在 P3 路由下可用。

适用场景与注意

适合:习惯在浏览器里用 DSH、又需要长期在远端 Linux 上改代码、看 Git、开终端,并希望 Agent 工具默认打在远端工作区上的开发者。

注意:

  • 插件以当前 DSH Host 进程权限运行,可访问其配置的密钥与 SSH;安装前请自行查看 GitHub 源码 与 LICENSE(MIT)。
  • 社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标等元数据以页面与仓库为准(任务线索中 GitHub 星标为 2)。
  • 远端需为 Linux;部分能力依赖远端 setsid --wait,缺失时超时杀进程行为会降级并在宿主日志中说明。
  • kotlin / gradle 等无专用语法包时按 Java 等着色,属 README 已说明的限制。

结尾

dsh-remote-vs 把 VS Code 式远程工作台、SSH 主机管理与 helper 流水线、以及 P2/P3 透明远端执行接到 DSH Web 里,减少「SSH 一套、编辑器一套、Agent 又是一套」的割裂。若要安装或查更新,可看 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye