dsh-open-in-x

前言

DeepSeek Harness(DSH)的 Web 界面在浏览器中运行,而实际的工作目录和进程管理在宿主机上。当需要在本地文件管理器、终端或编辑器中查看当前会话的工作目录时,手动切换窗口会打断工作流。DSH 插件生态旨在解决这类集成问题,dsh-open-in-x 就是其中之一,它提供了从 Web 界面直接调用本机外部应用的能力。

功能介绍

该插件是一个 DSH bundle,核心功能是在当前会话的工具栏添加“在外部应用中打开”按钮。点击该按钮后,会话的工作目录会被传递给宿主机上已安装的本地应用。

支持的本地应用包括:
* 文件管理器:macOS Finder、Windows 文件资源管理器、Linux 默认文件管理器
* 终端:macOS 终端、Windows Terminal、常见 Linux 终端模拟器
* 代码编辑器:Visual Studio Code、Cursor、Windsurf、Zed
* IDE:IntelliJ IDEA、WebStorm、PyCharm、Android Studio

插件会自动检测宿主机已安装的应用并展示,仅展示“本机”(即运行 dsh web 的机器)上安装的软件。

安装与启用

安装前请确保环境满足要求:宿主机安装了 Node.js 22.19+ 或 24+,以及兼容的 DeepSeek Harness 版本(0.1.0-rc.6 或更高)。

  1. 执行安装命令:
    npx @deepseek-ai/dsh plugin --profile web add dsh-open-in-x
  1. 安装完成后,重启 dsh web 服务:
    npx @deepseek-ai/dsh web
  1. 在 DSH Web 界面中,选择一个已有工作目录的会话,点击顶部工具栏出现的“在外部应用中打开”按钮,选择目标应用即可。

配置说明

安装后,可以通过修改配置文件来调整插件行为。默认启用所有内置 launcher,未安装的应用不会在界面显示。

支持以下配置项:

apps:
  - finder
  - terminal
  - vscode
  - cursor
  - windsurf
  - zed
  - idea
  - webstorm
  - pycharm
  - android-studio
allowRemote: false
allowLegacyPaths: false
defaultApp: vscode
quickOpen: true
  • allowRemote:默认为 false。该选项控制是否允许远程 Web 连接触发宿主机的 GUI 进程。只有明确理解风险且通过可信反向代理访问时才建议开启。
  • allowLegacyPaths:默认为 false。用于控制是否兼容旧版 DSH 的 Workspace 菜单路径行为。新式会话由 Host 解析目录,旧版仅提供路径,默认禁用以保证安全。
  • quickOpen:开启后,主按钮可直接使用 defaultApp 打开,下拉菜单仍可选择其他应用。

应用列表仅在 DSH Web 页面加载时检测一次,安装新应用后需刷新页面以更新列表。

工作原理

插件包含 Browser half 和 Host half 两部分:
* Browser half:优先注册到公开的 conversation.session.header.actions slot,仅向 Host 发送当前会话的 ID。
* Host half:在 ctx.webServer 注册唯一的 POST /__dsh/open-in-x 路由,接收请求并在宿主机启动选定的应用程序。

安全边界

为防止潜在风险,插件在安全设计上做了限制:
* 请求限制:只接受 JSON POST,请求体上限 8 KiB,严格拒绝额外字段。
* 访问控制:默认只接受 loopback(127.0.0.1)和同源请求。
* 操作限制:Browser 只能提交固定的 App ID 和 Session ID,不能提交可执行文件路径、参数或命令行文本。工作目录由 Host 根据 Session header 解析,启动进程使用 argv 数组且禁用 shell 拼接。
* 限流:相同 App 和工作目录的操作在短时间内会被限流,防止重复点击导致大量进程启动。

总结

dsh-open-in-x 解决了 Web 界面与本地文件系统及编辑器之间割裂的问题,适合需要频繁在浏览器中查看或编辑本地项目的开发者。更多细节可查看插件目录:https://www.skillhub.cn/plugins/nikoart-liu/dsh-open-in-x 或源码仓库:https://github.com/nikoart-liu/dsh-open-in-x。

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

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

小夜