前言¶
在 DeepSeek Harness(DSH)里写代码、看 diff、跑 Git 和终端,常见做法是装侧边栏里的编辑器插件。侧边栏会占对话区域宽度;有的方案用 CodeMirror,体积更小,但编辑手感与 VS Code 不一致;dsh-vscode-mode 等功能更全,包体约 27 MB,仍 dock 在右侧。若你希望保留 Monaco 的日常编辑体验,又不想让工作台挤占会话面板,可以单独装一个客户端插件:beiryang/dsh-vscode-ide。
这是什么¶
dsh-vscode-ide 是面向 DeepSeek Harness 的 VS Code 风格工作台:编辑器核心是 Monaco(与 VS Code 同源),界面是可拖动的独立浮动窗口,功能以内置模块按需呈现,并对外提供 ctx.vscodeIde 服务。它不是 VS Code 移植版,不能加载 .vsix 扩展。维护者为 beiryang,在 DSH 插件目录中归类为客户端;仓库 GitHub 采用 MIT 许可证。README 自述包体约 11 MB,相对同生态里 dock 在侧栏的 Monaco 方案更侧重「编辑手感 + 不抢对话宽度」。
与其他编辑器插件的差异¶
README 用表格概括了取舍(布局、编辑器、扩展性、体积)。dsh-vscode-ide 的浮动工作台不会挤压会话区;编辑器为 Monaco;扩展方式为内置模块加公开服务,而非完整 extension host / LSP / SVN 全家桶。若你需要 LSP、SVN、扩展管理器,应看 dsh-vscode-mode;若只要极轻量文件树或 Git 审查,可看 dsh-ide / dock 系列。
核心功能¶
以下能力均来自仓库 README(Features 1.1)与 package.json 描述,按使用场景归纳。
浮动窗口与 Peek¶
工作台可拖动、八向缩放、最大化;顶部保留约 44px 安全条,便于点到 DSH 自身窗口按钮;几何位置会记住。Ctrl+Alt+Q 进入 Peek:隐藏工作台以便阅读对话,再按一次恢复,编辑状态、滚动与光标保持;也可拖动浮动按钮实现同样切换。
文件与编辑¶
文件资源管理器跟随当前会话工作目录,目录懒加载;远程工作区经 SFTP 访问。支持右键新建/重命名/删除、复制路径、在系统文件管理器中Reveal,拖拽移动文件,键盘 ↑/↓/Enter/F2/Delete 操作。Monaco 按需加载 ESM,每个文件一个 ITextModel,切标签不丢未保存内容。标签:单击预览(斜体)、双击固定、拖拽排序;面包屑可浏览同级与目录。分屏编辑同一 model,改动与撤销同步。Ctrl+S 临时文件加原子重命名保存,Ctrl+W 关闭,脏标记与关闭确认;未保存缓冲写入 localStorage: dsv:drafts.v1,重启后恢复。
搜索、问题与 diff¶
Ctrl+F 为 Monaco 查找替换。Ctrl+Alt+P / Ctrl+Alt+Shift+P 为快速打开与命令面板(Ctrl+P 留给 DSH)。Ctrl+Alt+Shift+F 打开工作区内容搜索/替换面板;仓库内用 git grep,否则有界文件遍历(README 注明本地工作区为主)。Ctrl+Alt+Shift+M 或标题栏问题徽章查看 Monaco 诊断。Diff 支持对磁盘、对 HEAD、或两文件互比。
Git 与终端¶
Source Control 为 VS Code 风格:分支、暂存区、提交下拉(staged / all / commit-and-push)、discard、push,以及带 lane 的 commit graph 与右键菜单(复制 hash、checkout、建分支、revert 等)。远程工作区上 Git 命令经 SSH 在服务端执行;根目录非仓库时可选择子目录作为仓库。SSH 终端基于 xterm.js 与真实 PTY,可多会话;默认在编辑列下方(可拖分隔条、可 dock 到右侧)。连接信息可复用 dsh-remote-ssh;否则通过「+SSH」填 host/user/key 或密码(密码不存储)。本地还提供基于 ConPTY 的 PowerShell 会话。主题可跟随 DSH、内置 One Dark Pro,或导入 VS Code 主题 JSON;图标可内置 Material Icon Theme 或导入 VS Code 图标主题。设置项含字体、换行、终端字体等,持久化且无需重开标签。
环境与诊断¶
可在控制台执行 await __dsv.probe()(probe(true) 将结果写入文件),用于环境探测。
安装与启用¶
npm 发布因区域限制尚未完成,README 要求暂从 GitHub Releases 安装。安装前请自行查看仓库源码与 MIT 许可证;插件随当前 DSH 进程权限运行。
从 GitHub Releases¶
- 在 Releases 下载
dsh-vscode-ide-1.0.0.tgz。 - 解压并运行捆绑安装脚本:
tar -xzf dsh-vscode-ide-1.0.0.tgz
cd package
node install.mjs
install.mjs 会检测已包含该插件的 profile,否则回退到默认 desktop profile;需要指定目录时传入 --profile "<dir>"。
- 完全退出 DSH(托盘图标 → Quit)后重新启动——客户端 bundle 仅在启动时加载。
package.json 要求 Node >= 20、dsh >= 0.1.3-alpha.2;插件面向 web 客户端平台(dsh.client.platform: web)。
从源码(开发)¶
npm install
npm run build
node install.mjs
构建会生成未纳入仓库的 vendor/ 与 lib/client.js。
npm(发布后)¶
README 预留命令为:
dsh plugin --profile web add dsh-vscode-ide
发布前请勿假设该命令可用。
卸载¶
node install.mjs --remove
卸载后 localStorage 中的窗口几何、主题、标签等数据仍保留。
典型用法¶
- 左侧边栏点击 Code Space 打开或关闭工作台(窗口被拖出屏幕时仍可用)。
Ctrl+Alt+I切换工作台;Ctrl+Alt+QPeek 对话;Ctrl+Alt+Shift+F打开内容搜索。- 浮动按钮与
Ctrl+Alt+Q行为一致,位置会记住。 - 标题栏:
⌕快速打开,>命令面板等(完整快捷键见 README.zh.md / README)。
适用场景与注意¶
适合:在 DSH 里长时间改代码、看 Git 历史与 diff、在浮动窗里开 SSH/本地终端,且希望 Monaco 手感、又不想侧栏编辑器挤占对话宽度。
注意:
- 不是 VS Code,不能装
.vsix;需要 LSP、SVN 或扩展市场时请选其他插件。 - 远程 Git/终端在服务器执行,本地工作区连 SSH 时 README 会一次性提醒「命令在远端、工作区仍在本地」。
- 内容搜索在非 Git 场景下对远程工作区的支持 README 标注为「local workspaces only for now」。
- 安装包版本以 Releases 文件名为准(示例为
1.0.0.tgz);npm 包package.json当前为 1.1.10,与 release 文件名可能不同,以你下载的安装包为准。
结尾¶
dsh-vscode-ide 把多标签 Monaco 编辑、diff、Git、SSH/本地终端收进可移动的浮动工作台,并刻意不做 VS Code 扩展宿主,以控制体积且不占用会话侧栏。插件目录页:skillhub.cn/plugins/beiryang/dsh-vscode-ide;源码与文档:github.com/beiryang/dsh-vscode-ide。DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。