前言¶
DeepSeek Harness(dsh)是 DeepSeek 开源的智能体运行时,官方仓库把它概括成一句话:Everything is a Plugin。模型适配、工具、会话日志、智能体循环,乃至网页界面,都可以在配置层替换或扩展,不必改框架源码。
实际开发里,很多人会同时开着两套界面:一边是 dsh web 的浏览器工作区,一边是本机 VS Code。智能体在网页里改完文件之后,要回到编辑器里看 diff、设断点、提交代码,往往得先在侧边栏里抄路径,再切窗口用 code . 或「打开文件夹」。路径一长,这一步就容易出错。
dsh-open-in-vscode 做的事很窄:在网页侧边栏每个真实 Workspace 行的溢出菜单里加一项「在 VSCode 中打开」,点一下就把该目录交给本机编辑器。本文按社区目录页、GitHub 仓库 README / package.json 以及 DeepSeek Harness 官方仓库交叉核对后整理:它是什么、怎么装、点哪里、边界在哪。
需要先说明:社区插件目录 deepseek-harness-plugin.com 是独立站点,用来检索带 dsh-plugin 话题的仓库,和 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。
这是什么¶
dsh-open-in-vscode 是一款界面增强插件,由 GitHub 组织 omdsh-dev 维护,仓库地址是 omdsh-dev/dsh-open-in-vscode。许可证为 MIT,当前版本是 0.1.6(package.json、dsh.plugin.json 与 git tag v0.1.6 一致)。社区目录把它归在「界面增强」,收录日期是 2026-08-15;本文核对当天 GitHub 仓库星标为 46(目录页当时显示 41,以仓库页面为准)。
它解决的问题可以压成一句:从 DSH 网页界面,把侧边栏里已经打开的工作区目录,一键交给本机 VS Code(或其它能打开目录的编辑器 CLI)。
package.json 里客户端声明了 "platform": "web",所以它挂在网页界面上,不是终端 TUI 插件。dsh.plugin.json 的 contributes 里 tools 和 skills 都是空数组:模型看不到它,也不会多出一条可供智能体调用的工具。
核心功能¶
侧边栏菜单入口¶
安装并刷新网页之后,侧边栏每一个真实 Workspace 行的 … 菜单里会多出一行:
- 界面语言为中文时:在 VSCode 中打开
- 英文时:Open in VSCode
文案跟随 DSH 的 locale,两条路径渲染同一行。点这一行会先关掉菜单,再把该工作区的目录路径交给主机。
客户端与主机怎么配合¶
仓库 README 把插件拆成两半,共用 src/contract.ts 里的线协议:
- 客户端:优先往 harness 的
sidebar.workspaces.row-menu插槽注册菜单行。公开发布的 DSH0.1.0-rc.6若还没有这个原生插槽,会走一份受限的兼容适配器。两条路径对用户来说都是同一菜单项。 - 主机:通过严格的 Typert Remote 端点
openInVscode/open接收目录路径,再spawn配置好的编辑器 CLI。子进程是detached的,编辑器启动后不跟 dsh 服务器绑在一起,关掉网页服务也不会把 VS Code 一起杀掉。
源码里对路径有硬限制:相对路径直接拒绝;可执行文件找不到会抛错,并提示去装 CLI 或改 command。默认命令是 code,Windows 上还会额外探测用户级 / 系统级的标准 VS Code 安装目录(Code.exe)。
可配置的编辑器命令¶
部署相关的选项是经过 schema 校验的 Config 字段,可以在 cordis.yml 里改:
| 键 | 默认值 | 含义 |
|---|---|---|
command |
code |
用来打开目录的可执行文件。默认值在 Windows 上还会查找标准安装位置;其它命令走 PATH。 |
args |
[] |
追加在目录路径前面的参数。 |
相对路径形式的 command 会被拒绝。缺了可执行文件时失败是响亮的,README 写明会给出修复提示。如果你更常用 Cursor、VSCodium 或其它能接受「打开一个目录」的 CLI,可以把 command 改成对应命令,前提是它确实在 PATH 上、并且能打开目录。
能力边界¶
README 用一张表把边界写死了:
| 动作 | 在哪里执行 | 是否需要审批 |
|---|---|---|
| 在编辑器中打开工作区目录 | 主机(用户点击菜单) | 否,因为是用户主动点的 |
| 其它 | — | 没有工具、没有设置命名空间、没有模型可见面 |
插件自己不读、不写工作区文件,只打开用户已经在 DSH 里打开过的那个目录。它不会给智能体多一个 open_in_vscode 之类的工具,因此也不存在「模型自己弹编辑器」这条路径。
安装与启用¶
目录页给出的命令¶
社区目录详情页上的安装命令原文是:
dsh plugin add github:omdsh-dev/dsh-open-in-vscode
dsh CLI 会从 GitHub 解析插件并装进当前配置。目录页同时提示:如需可复现安装,可以固定 commit 哈希:
dsh plugin add github:omdsh-dev/dsh-open-in-vscode#commit
把 #commit 换成实际提交哈希即可。不要凭仓库名自己拼接其它 installer 语法。
仓库 README 推荐的 web profile 写法¶
因为客户端明确跑在 web 平台,仓库 README / README.zh.md 建议把它加到 web profile,并用版本化 tarball,避免走 git prepare 脚本:
dsh plugin --profile web add https://github.com/omdsh-dev/dsh-open-in-vscode/archive/refs/tags/v0.1.6.tar.gz
这条命令会在 profile 里跑 pnpm,并合并 bundle 层。装完后重启 Web 服务器,再用浏览器刷新页面。README 特别强调:重启用 kill -TERM <pid> 并等待进程退出,不要 kill -9,以免把会话的 zstd 日志撕在半帧上。
主机插件挂载名是 dsh-open-in-vscode;客户端 bundle 由 /plugins/dsh-open-in-vscode/client.js 提供。确认实际装上的版本:
dsh plugin --profile web list dsh-open-in-vscode --depth 0
前置条件¶
仓库写明了两条硬条件:
- DeepSeek Harness
0.1.0-rc.6或更高。有原生 Workspace 行菜单扩展点时走插槽,rc.6则走兼容适配器。dsh.plugin.json里的engines.dsh写的是>=0.0.1,那是插件清单字段;实际能用的界面能力以 README 这条为准。 - 本机已安装 VS Code,或 PATH 里有编辑器 CLI。
- macOS:需要先装 VS Code 命令行工具(命令面板里的 “Shell Command: Install ‘code’ command in PATH”),否则默认的code会找不到。
- Windows:使用默认code时,插件会在 PATH 以及标准用户级 / 系统级安装目录里找Code.exe。
- 其它编辑器:把插件command配成能打开目录的 CLI。
package.json 的 engines.node 是 ^22.19 || >=24,和当前 DSH 开发者预览对 Node 版本的要求同一量级,装插件前先确认本机 Node 能跑 dsh web。
典型用法¶
下面按仓库说明复现一次完整路径,不额外编造界面截图或未公开的配置项。
- 本机已经能运行 DeepSeek Harness 的 Web UI(例如官方文档里的
npx @deepseek-ai/dsh web,或源码仓库里的pnpm dsh web)。 - 用上一节的目录页命令,或 README 的 web profile +
v0.1.6tarball 安装插件。 - 用
kill -TERM重启 Web 服务器,浏览器刷新。 - 确认侧边栏里至少有一个真实 Workspace(插件只给真实工作区行加菜单,虚拟行不在范围内)。
- 点该行右侧的 …,选 在 VSCode 中打开(英文界面是 Open in VSCode)。
- 本机应弹出 VS Code,并打开该工作区目录。编辑器进程独立于 dsh 服务器。
如果没有任何窗口出现,按 README 的失败路径排查:
- 命令行里是否有
code(macOS 尤其容易漏装 shell command)。 - 插件
command是否写成了相对路径(会被拒绝)。 - Windows 上 VS Code 是否装在非标准目录,且没有进 PATH;这时需要把
command改成绝对路径下的可执行文件,或把code加进 PATH。
需要换编辑器时,只改 command / args 两个字段。例如默认行为等价于在主机上执行:
code /absolute/path/to/workspace
args 会插在目录路径前面。具体 YAML 写法以你当前 profile 的 cordis.yml 为准,仓库没有再给一份示例片段,这里不自行补一份可能过期的 patch 语法。
适用场景与注意事项¶
适合这些情况:
- 日常在浏览器里看智能体改代码,但真正读文件、跑调试、提交 Git 仍在 VS Code。
- 同时开着多个 DSH 工作区,不想每次手抄路径。
- 只想补一个菜单项,不想给模型增加新工具。
不适合、或需要先改配置的情况:
- 只跑 headless / 终端、不用 Web UI:客户端平台是
web,没有网页侧边栏就没有入口。 - 本机没有图形编辑器、或 SSH 远程开发环境里没有
code:需要先解决 CLI,或把command指到实际能打开目录的程序。 - 指望智能体「自己决定打开 VS Code」:插件没有模型可见面,做不到。
安装前还有几条和目录页、官方仓库一致的约束:
- 插件以当前 dsh 进程的权限运行,安装时可能执行代码。装之前应阅读仓库源码和 MIT 许可证;生产或共享环境里优先固定 tag(如
v0.1.6)或 commit 哈希。 - DeepSeek Harness 目前仍是面向开发者的预览版,核心插件和 API 还会变。本插件在
0.1.0-rc.6上用兼容适配器补插槽,后续原生插槽稳定后行为应以当时的 harness 为准。 - 社区目录只是发现渠道,星标和分类会滞后于 GitHub。核对安装命令、版本号时以仓库 README 和 git tag 为准。
小结¶
dsh-open-in-vscode 把「网页里那个工作区」和「本机 VS Code」之间少掉的那一次点击补上了。它不扩展智能体能力,也不碰文件内容,只在用户点菜单之后,用分离进程把绝对路径交给编辑器 CLI。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-open-in-vscode/
GitHub:https://github.com/omdsh-dev/dsh-open-in-vscode
DeepSeek Harness 官方仓库:https://github.com/deepseek-ai/deepseek-harness