path-click
Hover file paths / URLs in the DSH Web UI to open them in the file manager (Explorer) or in the default browser.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:harmony520/path-click说明文档
阅读完整 README ↗path-click
一个 DeepSeek Harness(DSH)Web 界面插件:把鼠标悬停到文件路径或网址上,会弹出一个气泡菜单,一键在「资源管理器」中显示,或用默认浏览器打开——任何文件类型都能在浏览器里打开,效果等同于把 file:// 地址粘贴到浏览器地址栏。
🇨🇳 中文 | 🇬🇧 English
功能
- 悬停消息里的文件路径(行内代码、产物 chips、文件提及)→ 气泡菜单:
- 📁 在资源管理器中显示:文件打开其所在文件夹,文件夹直接打开
- 🌐 用浏览器打开:无论什么文件类型,都在默认浏览器中打开(HTML、JS、图片、日志……)
- 悬停网址(http/https/file/mailto 链接)→ 用默认浏览器打开
- 工具调用卡片里的文件路径(含相对工作区的路径)同样支持
- 气泡采用纵向布局,鼠标可以放心从路径移到按钮上,不会中途消失
工作原理
插件分两部分,通过一个包同时加载:
| 部分 | 文件 | 职责 |
|---|---|---|
| 宿主端 | lib/index.js | 注册 /path-click HTTP 路由,执行打开动作;作为 bundle 被 loader 加载 |
| 浏览器端 | lib/client.js | 悬停检测与气泡 UI;通过 dsh.client 声明被 dsh-client-modules 自动发现并注入页面 |
打开机制(Windows)
- 资源管理器:直接
explorer.exe(文件 → 打开其所在文件夹;不依赖 explorer 的/select,开关,该开关跨进程传递时极不可靠) - 浏览器(文件路径):从注册表
http\UserChoice关联探测默认浏览器程序(Chrome / Edge / Firefox 等),把file://URL 作为命令行参数交给它——绕开文件类型关联,所以.js、.lnk等无关联类型也能在浏览器中打开,且不会弹出"选择打开方式" - 浏览器(http/https):同一机制;
mailto:走rundll32 url.dll,FileProtocolHandler
为什么不直接用 ShellExecute /
start?ShellExecute 对file://链接会走文件类型关联:HTML 能打开,但.js这类会弹"选择打开方式",且explorer.exe拿到file://会自己在资源管理器中导航。直接调用浏览器程序是最可控的方案。
安全设计
- 路由不在
/api前缀下(该前缀由 DSH 的固定路由表把持,第三方插件无法扩展),因此自带信任围栏:- 仅接受
POST+application/json(强制浏览器预检,防跨站请求) Origin必须等于http://,且Host必须是回环地址(127.0.0.1 / localhost / ::1)——同时防跨站 CSRF 与 DNS rebinding
- 仅接受
- 打开动作仅在回环部署(本机访问)下启用
- URL 协议白名单:仅 / / / ;拒绝含引号/换行的值