前言¶
DeepSeek Harness (DSH) 采用插件化架构。在调试智能体或进行长时间编码任务时,开发者通常需要实时查看 AI 的操作过程,或者在浏览器中拥有一个功能完备的代码编辑器。dsh-vsceditor 插件旨在解决这一问题,它通过在 DSH 的 Web UI 中嵌入 code-server,提供一个完整的 VS Code 环境。
基本信息¶
- 插件名称:dsh-vsceditor
- 维护者:k-ying
- 许可证:MIT
- 分类:客户端
- GitHub:k-ying/dsh-vsceditor
核心功能¶
该插件主要解决浏览器端编辑器功能不足、无法实时监控 AI 代码变更以及进程管理的问题。
-
三种互斥的后端模式
- Embedded:默认模式,在 DSH 界面内嵌入 code-server。
- Local:将 AI 的变更同步到本地桌面 VS Code。
- Off:断开所有编辑器连接。
-
真实的 VS Code 环境
- 使用 code-server 4.x,具备完整的内核。
- 支持扩展、主题、快捷键以及 Git 面板。
-
Follow 模式与变更视图
- 当智能体调用
write或edit工具时,编辑器会弹出红绿对比视图,并滚动到首个变更行。 - DSH 会渲染其自身的只读 Diff 标签页,方便在任意一侧查看。
- Diff 累积显示,直到下一轮对话开始编辑时才清除。
- 当智能体调用
-
文件锁定机制
- 在智能体写入文件期间,文件在编辑器中变为只读,防止人工与 AI 覆盖冲突。
- 写入完成后自动解锁。
-
无孤儿进程
- code-server 运行在 Watchdog 进程下,会定期向 DSH 主机发送心跳。
- 当 DSH 主机崩溃、强制退出或升级时,Watchdog 会终止整个编辑器进程树,确保没有残留进程。
-
工作区跟随会话
- 当当前会话的工作区发生变化时,编辑器会自动切换到对应的目录并重启 code-server。
-
持久化 Iframe
- 编辑器页面始终附着在
<body>上,切换标签页时仅进行隐藏/显示,不会重新创建会话。
- 编辑器页面始终附着在
-
设置页集成
- 在 Settings → Plugins → Plugin Configuration 下提供配置卡片,可控制 Follow 开关、自动启动、端口及 code-server 路径。
-
零依赖
- 主机和客户端均使用原生 JavaScript 手写,不依赖 npm 包。
安装与启用¶
- 安装插件
通过命令行安装:
dsh plugin --profile web add github:k-ying/dsh-vsceditor
-
配置嵌入模式(必需)
该插件不随安装包附带 code-server 运行时(约 100MB)。要使用默认的 Embedded 模式,需要安装 code-server。- 方式一:一键安装
打开 Editor 标签页,点击工具栏上的 Install code-server in one click 按钮。按照对话框提示下载并安装。 - 方式二:全局 CLI 安装
- 方式一:一键安装
sh ~/.dsh/profiles/web/node_modules/dsh-vsceditor/scripts/install-code-server.sh ~/.dsh-editor
如果要在当前工作区单独使用,直接运行脚本(不加参数)即可安装到目录下的 `.dsh-editor`。
典型用法¶
- 监控 AI 工作:在对话过程中,每当 AI 修改文件,编辑器会立即弹出 Diff 视图,你可以直观地看到 AI 修改了哪些行。
- 切换本地编辑器:点击编辑器工具栏上的开关,将同步模式切换到 Local,此时 Follow/Diff/锁定功能会转移至你本地的桌面 VS Code。
- 断开连接:如果不需要编辑器功能,点击开关将其设为 Off,系统会释放相关资源。
注意事项¶
- 系统限制:目前仅支持 macOS 或 Linux。Windows 平台未测试(code-server 官方暂无 Windows 构建)。
- 运行时位置:编辑器的运行时数据(用户数据、配置、日志)不存储在工作区目录,而是存储在全局目录
~/.dsh-editor/workspaces/<hash>-<workspace-name>/中。 - 进程守护:由于使用了 Watchdog,如果 DSH 主机进程意外终止,编辑器进程也会被自动清理。
总结¶
dsh-vsceditor 为 DeepSeek Harness 提供了一个无需离开 Web 界面即可进行专业级代码编辑的能力,配合 Follow 模式和 Diff 视图,能够有效提升与 AI 协作开发时的可控性。