dsh-reveal-in-explorer:悬停文件引用,在系统文件管理器中定位

前言

在 DeepSeek Harness(DSH)里和智能体协作时,聊天里会出现大量蓝色文件引用、Markdown 路径链接和交付文件卡片。默认点击这些引用会在右侧栏预览,适合快速看一眼内容;若你已经在本机用 IDE 或终端改同一批文件,更常见的需求是跳到磁盘上的真实路径,用资源管理器、Finder 或 Linux 文件管理器选中该文件,再交给本地工具链处理。

下面介绍社区客户端插件 dsh-reveal-in-explorer(维护者 Ghdhdhhake):在不改动 Harness 原生点击预览的前提下,悬停文件引用时多出一个入口,一键交给宿主打开系统文件管理器。插件归类为 DSH 生态里的客户端能力,源码与说明见 GitHub 仓库,社区目录页为 skillhub.cn 条目。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-reveal-in-explorer 是面向 DSH Web / Desktop 客户端的插件:在聊天界面悬停可识别的文件引用约 160ms 后,在引用旁弹出「在资源管理器中显示」;点击后由宿主校验路径并调用平台原生的「在文件管理器中显示」能力。Host 侧入口为空实现,逻辑集中在 Client bundle;许可证为 MIT。

核心功能

交互与默认行为

  • 悬停即出:浮层默认出现在引用右侧;右侧空间不足时依次退到下方、上方,并限制在视口内。
  • 默认行为不变:单击文件引用仍走 Harness 原生预览,插件不劫持点击。
  • 键盘可达:focusin 同样可触发浮层,Esc 关闭;界面中英双语,样式跟随宿主主题 token。

路径与平台

  • 相对路径补全:如 docs/a.md 会按当前会话 cwd 补成绝对路径后再交给宿主。
  • 平台自适应:由宿主 open-in-app / native-command 决定具体命令——Windows 使用 explorer.exe /select,,macOS 使用 open -R,Linux 打开文件所在目录(无通用「选中单个文件」协议时,与 DSH 既定行为一致)。
  • 安全边界:路径经宿主 remote.session.openWorkspacePath({ action: 'reveal' }) 校验;插件本身不 spawn 进程、不读取文件内容。
  • 失败可见:宿主拒绝(路径不存在、无权限、无桌面文件管理器等)时,浮层保持打开,在按钮第二行展示原因,并 console.warn 带路径与原因的日志,便于排查或开 Issue。

覆盖的引用类型

插件通过集中维护的 DOM 选择器识别聊天内多种文件引用形态,包括但不限于:

位置 DOM 形态(摘要)
助手回复内联代码文件引用 code > button[title]
Markdown 链接形式路径 button.fileLink[title]
输入框 / 用户消息文件 chip [data-ref-chip="file"][title]
交付文件卡片 [data-presented-file] button[title]
其它带路径 tooltip 的控件 [data-chat-flow] button[title] / a[title](兜底,排除纯动作文案)

宿主升级若改动 DOM,维护者需同步 SELECTORS 与测试 fixture;README 中说明了与 DSH 0.2.1-rc.2 客户端产物核对过的结构快照。

安装与启用

插件声明的 DSH 版本范围为 engines.dsh: >=0.2.0-rc.1 <0.3.0;README 记载在 DSH 0.2.1-rc.2(Windows / DeepSeek Harness Desktop)上实测悬停与跳转正常。安装前请对照本机 DSH 版本与 package.json 中的范围。

官方推荐从插件市场安装(将 web 换成你的 profile 名,例如 desktop):

dsh plugin --profile web add dsh-reveal-in-explorer

尚未发布到 NPM 时,可从 GitHub 安装:

dsh plugin --profile web add github:Ghdhdhhake/dsh-reveal-in-explorer

或从本地目录安装:

dsh plugin --profile web add /path/to/dsh-reveal-in-explorer

安装后刷新页面即可;Client 改动支持热加载,无需重启 Harness。

离线或 registry 受限时,README 提供了通过 link: 依赖写入 profile 的 package.json、补 pnpm-lock.yaml、在 dsh.profile.bundles 中挂载 bundle 后执行 pnpm install --offline 的步骤,可按仓库说明操作。

卸载:在 设置 → 插件 中停用并移除 dsh-reveal-in-explorer,或从 profile 的 dependencies / dsh.profile.bundles 删除后重新安装依赖。

典型用法

无需额外配置项。安装并刷新客户端后:

  1. 在 DSH 聊天中找到助手或用户消息里的文件引用(蓝色内联引用、文件链接、chip 或交付卡片等)。
  2. 将指针在引用上停留约 160ms,待浮层出现「在资源管理器中显示」。
  3. 点击该按钮;成功时系统文件管理器会打开并定位文件(Linux 上多为打开所在目录)。
  4. 若失败,查看浮层第二行原因或浏览器控制台中的 console.warn 日志。

仍可按习惯单击引用在右侧栏预览;两种操作互不替代。

适用场景与注意

适合谁:经常在 Harness 聊天里对照本机仓库改文件、需要在资源管理器中复制路径、拖拽或交给外部工具的开发者;也适合交付物卡片较多、希望少点几次侧栏预览的场景。

运行与信任:插件以当前 DSH 客户端进程权限运行,安装前应阅读 源码 与 MIT 许可证,确认符合你的安全策略。

依赖与降级:依赖宿主已装配的 remote.session(@deepseek-ai/dsh-api-remotes)与 shell.overlay 槽位;缺失时插件降级为无操作,不应导致页面报错。纯服务器、无桌面文件管理器的环境中,浮层可能出现但点击会显示失败原因。

已知限制(来自 README):识别依赖宿主当前 DOM;引用被裁剪或滚出视口时浮层会关闭而非跟随;Linux 无法保证「选中」单个文件,仅打开目录。

结尾

dsh-reveal-in-explorer 在 DSH「一切皆插件」的客户端侧补了一条短路径:悬停文件引用 → 系统文件管理器定位,且不改变原有预览点击。若你需要这条链路,可按上文命令安装,并对照 社区目录页 与 GitHub README 获取更新与兼容性说明。

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

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

Xiaoye