一键用指定编辑器打开当前项目目录或文件并定位行
27.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Civitasv/dsh-plugin-open-editor该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
- 执行外部命令来自配置/变量dist/index.js:76
execFile(probe, [bin], { windowsHide: true }, (error) => resolve(!error)); - 读取本地文件dist/index.js:89
found = existsSync(bin) ? bin : null; - 读取本地文件dist/index.js:102
if (!existsSync(p)) return { error: `path does not exist: ${p}` }; - 读取本地文件dist/index.js:104
const stat = statSync(p); - 执行外部命令固定命令dist/index.js:120
const child = spawn("cmd.exe", ["/c", "start", "", bin, ...args], { - 执行外部命令来自配置/变量dist/index.js:127
const child = spawn(bin, args, { detached: true, stdio: "ignore" }); - 发起网络请求client.js:121
void fetch(CATALOG_URL, { headers: { accept: "application/json" } }).then((res) => res.ok ? res.json() : null).then((data) => { - 发起网络请求client.js:163
const res = await fetch(OPEN_URL, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-slots给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 用指定编辑器打开目录
- 打开文件并定位行
DeepSeek Harness 的编辑器插件
README
由 DeepSeek 最新模型翻译生成dsh-plugin-open-editor
showcase
一键把 当前项目 用你喜欢的编辑器打开。插件在 DSH 会话页头的操作区添加一个入口:
- 点击主体按钮 → 立即用默认编辑器(默认 VS Code)打开当前会话的工作目录;
- 点击箭头 → 弹出编辑器选择器:VS Code / Cursor / Windsurf / Trae / JetBrains 系列 / Sublime Text / 系统文件管理器等;
- 未安装的编辑器会置灰显示「未安装」;
- 打开动作发生在 DSH 宿主机(浏览器所在机器)上,无需浏览器具备任何 shell 权限。
打开文件与定位行(供其它插件复用)
POST {routePath} 除打开目录外,也支持打开文件并定位到行:
{ "editor": "vscode", "path": "/abs/path/to/file.ts", "line": 42 }
- path 可以是目录或文件;带 line 时按编辑器的行定位方式打开:
- VS Code / Insiders / Cursor / Windsurf / Trae:code --goto 文件:行
- Sublime Text:文件:行
- 其它编辑器(JetBrains 系、Notepad++ 等):打开文件,忽略行
展开完整文档(README 剩余 1 节)
dsh-plugin-open-editor
showcase
一键把 当前项目 用你喜欢的编辑器打开。插件在 DSH 会话页头的操作区添加一个入口:
- 点击主体按钮 → 立即用默认编辑器(默认 VS Code)打开当前会话的工作目录;
- 点击箭头 → 弹出编辑器选择器:VS Code / Cursor / Windsurf / Trae / JetBrains 系列 / Sublime Text / 系统文件管理器等;
- 未安装的编辑器会置灰显示「未安装」;
- 打开动作发生在 DSH 宿主机(浏览器所在机器)上,无需浏览器具备任何 shell 权限。
打开文件与定位行(供其它插件复用)
POST {routePath} 除打开目录外,也支持打开文件并定位到行:
{ "editor": "vscode", "path": "/abs/path/to/file.ts", "line": 42 }
- path 可以是目录或文件;带 line 时按编辑器的行定位方式打开:
- VS Code / Insiders / Cursor / Windsurf / Trae:code --goto 文件:行
- Sublime Text:文件:行
- 其它编辑器(JetBrains 系、Notepad++ 等):打开文件,忽略行
- 自定义编辑器模板支持 {line} 占位符(如 ["my-editor", "--line", "{line}", "{path}"]),
模板里没有 {line} 时忽略行参数。
diff-review 插件的「在编辑器中打开」/「打开该行」即复用此能力。
安装
本仓库已包含构建产物(dist/index.js 与 client.js),可直接使用;修改过源码才需要
先执行 npm install && npm run build。
一键安装(推荐)
macOS / Linux
bash install.sh
Windows(PowerShell) powershell -ExecutionPolicy Bypass -File install.ps1
脚本会:安装依赖(含 devDependencies,便于本地开发)→ 链接进 ~/.dsh/profiles/node_modules → 注册 cordis.patch.yml → 提示重启与验证。
手动安装
用链接而不是拷贝:Copy-Item 复制一份后改源码不会同步,重复安装还会冲突;用下面的链接(Junction / 符号链接)指向本仓库,改源码即时生效。
1. 链接进 profile 依赖目录 macOS / Linux: ln -sfn "$PWD" ~/.dsh/profiles/node_modules/dsh-plugin-open-editor Windows(PowerShell,Junction 无需管理员权限): New-Item -ItemType Junction -Path "$HOME\.dsh\profiles\node_modules\dsh-plugin-open-editor" -Target "$PWD"
2. 注册到 ~/.dsh/profiles/web/cordis.patch.yml
- insert:
- id: open-editor
name: dsh-plugin-open-editor
3. 重启 dsh web
装了 pnpm 的话,也可以用 dsh plugin --profile web add 代替第 1 步(等价于链接)。pnpm 未安装时先 npm install -g pnpm(或 corepack enable)。
验证
dsh --profile web --dump-config | grep dsh-plugin-open-editor
输出应包含:- id: open-editor / name: dsh-plugin-open-editor
重启后打开任意会话,页头标题旁会出现「在编辑器中打开」按钮。
开发
插件以链接方式接入 profile,改源码后:
npm run build # 重新生成 dist/ 与 client.js
server 端改动需重启 dsh web;纯 client 端改动刷新页面即可。
使用
| 操作 | 效果 |
| 点击「在编辑器中打开」 | 用默认编辑器(默认 VS Code)打开当前会话的项目目录 |
| 点击右侧箭头 | 展开编辑器选择器,选择任意已安装的编辑器 / 文件管理器 |
| 菜单底部 | 显示打开结果(成功 / 失败原因) |
当前项目 = 当前会话的工作目录(cwd)。没有工作目录的会话不显示该按钮。
支持的编辑器
| 编辑器 | 探测命令 |
| VS Code | code |
| VS Code Insiders | code-insiders |
| Cursor | cursor |
| Windsurf | windsurf |
| Trae | trae |
| IntelliJ IDEA | idea / idea64 |
| PyCharm | pycharm / charm |
| WebStorm | webstorm |
| GoLand | goland |
| CLion | clion |
| Rider | rider |
| PhpStorm | phpstorm |
| RubyMine | rubymine |
| Sublime Text | subl |
| Notepad++ | notepad++ |
| 系统文件管理器 | explorer / open / xdg-open |
探测依据是命令是否在 PATH 中。VS Code 安装后通常会自动把 code 加入 PATH;如果提示「未找到」,请手动执行一次 命令面板 → Shell 命令:在 PATH 中安装 'code' 命令,或改用下面的自定义编辑器配置填写绝对路径。
配置
编辑 ~/.dsh/profiles/web/cordis.patch.yml 中该插件的 config:
- insert:
- id: open-editor
name: dsh-plugin-open-editor
config:
defaultEditor: vscode # 点击主体按钮使用的编辑器(id) routePath: /open-editor/open # 打开请求路由(一般无需改动) statusPath: /open-editor/editors # 编辑器目录路由(一般无需改动)
extraArgs: [] # 追加到每个内置编辑器命令后的参数
allowedRoots: [] # 非空时,仅允许打开这些目录下的项目
customEditors: # 自定义编辑器(追加到内置列表)
- id: my-editor
label: My Editor
command: ["C:\\Program Files\\My Editor\\editor.exe", "--folder", "{path}"]
- defaultEditor:主体按钮使用的编辑器 id(内置 id 见上表,也可以填自定义 id)。
- customEditors:command[0] 是可执行文件(PATH 名或绝对路径);后面的元素按原样
作为参数,字面量 {path} 会被替换为目标目录;没有 {path} 时自动把目录追加到最后。
- allowedRoots:安全开关。默认允许打开任意存在的目录(本机工具);填写后,只有这些目录(及子目录)能被打开,适合把 DSH 暴露到局域网时收紧权限。
- extraArgs:给所有内置编辑器追加参数,例如 ["--new-window"] 让 VS Code 总是新开窗口。
工作原理
1. 浏览器端从会话列表拿到当前会话的 cwd(工作目录)。
2. 点击后 POST {routePath},携带 { editor, path }。
3. 服务器端(DSH 宿主进程,与浏览器同机)校验 path(绝对路径、目录存在、可选 allowedRoots),探测编辑器可执行文件,然后 detached 启动:
- Windows:cmd /c start "" ""(支持 code.cmd 等 shim, GUI 应用不弹控制台);
- macOS/Linux:spawn(editor, [path], { detached, stdio: 'ignore' })。
4. 编辑器进程与宿主解耦,宿主退出不影响已打开的编辑器。
卸载
1. 从 cordis.patch.yml 删除 open-editor 条目;
2. 删除 ~/.dsh/profiles/node_modules/dsh-plugin-open-editor 目录;
3. 重启 dsh web。
常见问题
- 提示「未找到 X,请检查是否安装并加入 PATH」:该编辑器不在 PATH 中。
用 customEditors 配置绝对路径,或在系统里把编辑器命令行工具加入 PATH。
- 点击没有反应 / 编辑器没有出现:确认已重启 dsh web,并检查设置里 open-editor 插件已加载(设置 → 插件清单)。
- 我只想用 VS Code,不需要其它编辑器:保持默认即可,箭头菜单里其它项置灰不影响使用。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Civitasv/dsh-plugin-open-editor
一键用指定编辑器打开当前项目目录或文件并定位行
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,288已汉化MCP
71.7
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9
原生编程智能体paean-ai/deeptide
由 DeepSeek 打造,为 DeepSeek 而生。
★ 1,107已汉化DSH
67.7
多引擎接力台emo-xiaoyu/harness-mix
macOS/Linux 已加入源码构建与启动适配;目标系统的完整桌面验收仍需在对应机器执行。安装方式、Linux…
★ 419已汉化DSH
66.8
这是你的仓库?认领条目