DeepSeek Harness 插件:dsh-open-in-app

前言

在使用 DeepSeek Harness(DSH)Web UI 进行开发时,一个常见的工作流是让 AI 在当前会话的工作区生成代码,随后需要立即切换到本地环境打开该文件夹进行后续操作。手动在文件管理器中定位目录效率较低。

dsh-open-in-app 插件解决了这个问题。它在会话头部提供了一个 Codex 风格的拆分控件,允许用户直接通过浏览器界面,调用宿主机上已安装的终端模拟器或编辑器/IDE 打开当前会话的工作区文件夹。

功能介绍

该插件在会话头部工具行(聊天窗口右上角,Session log 按钮旁)新增了一个控件。该控件包含一个文件夹按钮和一个下拉箭头,具体功能如下:

  1. 一键打开工作区
    点击文件夹按钮,使用上次为该工作区选择的应用打开当前目录。如果之前没有选择过,则回退到优先级最高的默认编辑器(如 VS Code、Cursor 等),若未安装则使用系统默认应用。

  2. 应用选择菜单
    点击下拉箭头,菜单按应用类型分组,包含以下条目:

    • 最近使用:记录在 localStorage 中的历史选择。
    • 系统默认应用:调用宿主机的默认文件夹处理器(如 macOS 的 Finder、Windows 的资源管理器)。
    • 白名单应用:分为“终端应用”和“编辑器与 IDE”两类,显示已安装的应用列表。
  3. 图标展示
    菜单项和按钮均会显示对应应用的图标(32px PNG)。图标通过解析应用包或 freedesktop 图标主题获取。

安装与启用

插件通过 npm 发布,需要使用 dsh plugin 命令安装到 Web profile。

dsh plugin --profile web add dsh-open-in-app

如果使用本地源码进行开发:

git clone https://github.com/open-dsh-plugins/dsh-open-in-app.git
cd dsh-open-in-app
dsh plugin --profile web add .

安装完成后,必须重启 dsh web 服务才能加载新插件。

使用方法

  1. 在 DeepSeek Harness Web UI 的会话头部,找到新增的“文件夹”图标按钮。
  2. 点击图标打开工作区(使用上次选择的应用)。
  3. 若需切换应用,点击图标右侧的下拉箭头。
  4. 从菜单中选择“终端应用”或“编辑器与 IDE”中的具体工具。
  5. 选择后,宿主机上的对应应用会打开当前会话的工作区目录。

白名单与配置

插件内置了一个应用白名单,用于自动识别和分类已安装的工具。

  • 终端应用:Terminal, iTerm2, Ghostty, Warp, Alacritty, kitty, WezTerm, Hyper, Tabby, Rio, Contour, Foot, Tilix, Terminator, Konsole, GNOME Terminal, xterm, mintty, Windows Terminal, PowerShell, Cmder, ConEmu。
  • 编辑器与 IDE:Visual Studio Code, Cursor, Windsurf, Zed, Xcode, Android Studio, IntelliJ IDEA, PyCharm, WebStorm, GoLand, CLion, PhpStorm, RubyMine, Rider, DataGrip, DataSpell, RustRover, Fleet, Aqua, Visual Studio, Eclipse, NetBeans, Sublime Text, Nova, BBEdit, TextMate, CodeRunner, MacVim, Neovide, Emacs, Lite XL, HBuilderX。

如需增删条目,可编辑 lib/apps.js 中的 WHITELIST 数组。

安全与架构说明

  • 运行边界:Remote 端点不在特权方法列表中,处于浏览器信任边界(loopback 或可信主机)内。
  • 进程派生:打开路径由宿主机派生原生进程。路径来源于会话自身的 cwd,相对安全。
  • 图标解析:仅读取标准应用路径及 freedesktop 图标主题,缓冲区上限为 256 KB。
  • 错误处理:命令失败时以菜单中的错误行呈现,不抛出异常。

总结

dsh-open-in-app 是一个轻量级插件,通过在 Web UI 中集成本地应用调用能力,简化了从“AI 生成”到“本地调试”的切换流程。它适合需要在 DSH Web UI 中频繁操作本地文件系统的开发者。

仓库地址:github.com/open-dsh-plugins/dsh-open-in-app

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

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

小夜