前言¶
在 DeepSeek Harness(DSH)的 Web UI 中,智能体返回的文件引用、编辑器标签页、侧边栏标签等都会以文本形式展示。直接右键这些文本,通常无法唤起文件管理器;而在桌面客户端中,路径栏等元素往往依赖操作系统原生的右键菜单。dsh-reveal-in-folder 插件接管右键事件,让这些文本可被正确识别为文件路径,并直接在文件管理器中定位或打开。
是什么¶
dsh-reveal-in-folder 是一个 DSH 客户端插件,由维护者 haruri03 开发。它为 DSH Web UI 提供右键上下文菜单,支持以下操作:
- 在文件管理器中显示:针对聊天中的文件引用、编辑器路径栏、右侧侧边栏标签、本地图片。
- 在浏览器中打开图片:远程图片或页面内嵌入图片(例如主机媒体路由)。
- 复制图片:聊天内联图片、放大预览、侧边栏预览。
插件通过捕获 contextmenu 事件、解析路径并调用系统命令来呈现这些操作。菜单会根据主机 UI 语言显示中英文标签,其他语言默认显示英文。
核心功能¶
1. 文本覆盖范围¶
- 聊天回复中的文件引用:聊天渲染器将路径保存在元素的
title中,通常为相对路径。 - 编辑器/文档预览路径栏:输入框的值或
title中的路径。 - 右侧侧边栏文件标签:优先使用
data-dockkit-tab/data-sidebar-right-tab属性,并优先使用 React props 中的dsh-resource地址。
2. 图片识别与操作¶
插件支持以下图片操作:
- 在文件管理器中显示:仅对本地图片生效。当图片没有 DOM 路径时,客户端使用 SHA-256 哈希匹配内容寻址的附件对象,从而支持“在文件管理器中显示”。远程图片不提供该选项。
- 在浏览器中打开图片:适用于远程图片或页面内嵌入图片。
- 复制图片:支持聊天内联图片、放大预览、侧边栏预览。
3. 路径解析策略¶
聊天引用和路径栏通常携带相对路径。如果直接传给宿主,path.resolve 会基于进程工作目录解析,导致打开错误的目录。该插件在宿主侧解析路径:
- 客户端向
GET /reveal-in-folder发送path/name/address/image。 - 宿主使用当前会话的
header.cwd作为根目录:
- 将相对路径与每个根拼接并检查是否存在。
- 纯文件名(无路径分隔符)会触发根目录下的有界递归搜索(跳过node_modules/.git等目录,最多 20k 条目与 8 层深度),返回候选列表。 - 结果通过系统命令打开:Windows 用
explorer.exe /select,<path>,macOS 用open -R,Linux 用xdg-open,不经过 shell。
4. 上下文菜单行为¶
- 仅当右键文本看起来像文件时才接管菜单:单行带扩展名视为文件;含分隔符视为路径;纯名称视为标签。
- 菜单渲染在
shell.overlay中,跟随鼠标,在按 Escape、点击外部或滚动时关闭。 - 点击菜单项立即执行对应操作;不可用或执行失败的项不显示,失败操作静默关闭。
安装与启用¶
插件安装方式如下:
方式一:通过 Git 安装(推荐)¶
plugin_manager install_bundle --target "git+https://github.com/haruri03/dsh-reveal-in-folder.git"
也可通过 Web 插件页的“Add plugin”或 CLI 使用相同命令:
dsh plugin --profile <profile> add "git+https://github.com/haruri03/dsh-reveal-in-folder.git"
方式二:手动安装¶
- 将插件目录复制到:
$HOME/.dsh/profiles/<profile>/node_modules/dsh-reveal-in-folder
- 在对应配置文件的
cordis.patch.yml中追加:
- insert:
- id: reveal-in-folder
name: './index.js'
安装或更换客户端后,刷新页面一次(浏览器会缓存客户端模块)。
典型用法¶
- 在 DSH Web UI 的聊天中,智能体返回文件路径(例如
/workspace/src/app.ts)。 - 将鼠标移至该路径文本,右键。
- 菜单中出现“在文件管理器中显示”等操作(取决于当前文本类型与可用性)。
- 点击后,系统文件管理器会打开对应目录并选中该文件(或候选列表,当存在同名文件时)。
对于纯文件名(如侧边栏标签),若仓库中存在多个同名文件,菜单会列出候选路径,按深度排序,最多显示 100 条,可滚动选择。
适用场景与注意¶
- 适用人群:需要频繁在 DSH Web UI 中查看文件路径、编辑器标签、本地图片的开发者与智能体使用者。
- 权限与安全:插件以当前 DSH 进程权限运行,建议在安装前查看源码与许可证(MIT)。
- 已知限制:
- 仅识别带扩展名的文件,右键目录不会弹出菜单。
- 纯文件名搜索受 20k 条目与 8 层深度限制,在超大仓库中可能失败或菜单不显示。
- 远程图片无法在文件管理器中显示。
总结¶
dsh-reveal-in-folder 让 DSH Web UI 中的文件引用、编辑器标签和本地图片可以一键唤起文件管理器或打开图片。它通过在宿主侧解析相对路径、对纯文件名进行有界搜索,避免了因工作目录导致的路径错误,并提供了可用的操作列表。对于需要频繁定位文件的开发者与智能体使用场景,该插件提供了实用的上下文菜单能力。
资源¶
- 插件目录页:https://www.skillhub.cn/plugins/haruri03/dsh-reveal-in-folder
- GitHub 仓库:https://github.com/haruri03/dsh-reveal-in-folder