前言¶
在 DeepSeek Harness(DSH)里开发时,左侧文件树和聊天里的文件链接是高频入口:多数时候你只想在侧边栏里快速预览,但有时需要用系统默认编辑器打开、复制绝对路径,或在资源管理器里定位文件。宿主默认的左键预览往往够用,却缺少「Ctrl+左键直开本地应用」和统一的右键菜单。社区维护者 Analoty 的 dsh-auto-click 是一类 客户端 插件,专门在 DSH Web GUI 上为这些场景补手势和菜单,而不改写左键预览本身。
下面介绍它的定位、能力与安装方式;事实以 GitHub 仓库 README 为准。
这是什么¶
dsh-auto-click 是 DSH 的客户端插件:在 Web GUI 侧边栏(以及聊天中的文件链接)上监听鼠标操作,需要打开本地文件或复制路径时,经 Host 半调用系统 API,并走 DSH 自身的请求信任栅栏与会话工作区路径校验。
- 维护者:Analoty
- 分类:客户端(
dsh.client.platform: web,立即注入 UI 相关 slot) - 环境要求:DSH
>= 0.2.0-rc.1(见package.json的engines.dsh) - 当前 npm 版本(资料中明确):
0.1.3 - 许可:MIT
核心功能¶
鼠标手势¶
| 操作 | 结果 |
|---|---|
| 左键单击 | 在侧边栏打开文件预览(宿主原有行为,插件不干预) |
Ctrl + 左键单击 |
用系统默认应用打开;没有默认应用时弹出「打开方式」 |
| 右键单击文件 | 弹出文件菜单 |
| 右键单击普通链接 | 弹出「复制链接」菜单 |
文件右键菜单项¶
- 打开文件 — 系统默认应用打开
- 打开方式 — 调用操作系统自带的「打开方式」选择框(插件不维护自己的应用列表)
- 另存为… — 通过浏览器下载保存副本
- 复制路径 — 复制绝对路径
- 复制文件内容 — 复制文件文本内容
- 在资源管理器中打开 — 在文件管理器中定位该文件
普通链接右键菜单¶
- 复制链接 — 复制
href原文(相对路径也照原样复制,不补站点前缀)
成功操作不弹提示(例如复制路径时剪贴板即反馈);只有失败或被拒绝时才提示。
平台支持¶
- Windows:完整支持;「打开方式」通过 Shell COM(
Shell.Application→Item.InvokeVerb('openas'))实现。 - macOS:「打开方式」走
open -a。 - 其他平台:可用,但「打开方式」会明确报告不支持。
在没有交互式桌面的会话(部分远程或服务模式)中,「打开方式」仍可能无法弹出对话框。
路径与安全¶
文件可能来自左侧文件树、DSH 文件面板或聊天中的文件链接。聊天链接与树节点携带的是工作区相对路径,浏览器半会把当前会话 id 一并发送,由 Host 在该会话的工作区内解析。
没有已知工作区时,相对路径会被拒绝,而不是用进程目录猜测——避免误打开或复制同名但用户未指向的文件。聊天 mention 形如 @"带 空格 的 名字.md" 时,解析前会剥离 @ 与引号(提及语法标点,非文件名一部分)。
打开文件走 DSH 的 sessionController.openWorkspacePath,继承宿主路径校验;Host 路由(如 /auto-click/open 等)经 connection.requestRejection,未认证或跨源请求在业务逻辑前被拒绝。
限制(README 明确)¶
- 「复制文件内容」和「另存为」拒绝大于 8 MiB 的文件,不截断。
安装与启用¶
从 npm 安装。桌面版和 dsh web 是两个独立的 profile,装在一个里不会出现在另一个里,按使用方式选命令。装完后重启对应进程(桌面版重启应用,dsh web 重启该命令)。
桌面版(DSH Desktop)¶
dsh plugin --profile desktop add dsh-auto-click
终端 dsh web¶
dsh plugin --profile web add dsh-auto-click
README 说明:dsh plugin 的参数会原样透传给 pnpm,<spec> 可以是包名、包名@版本 或 git 地址;命令动词用 add。
从 GitHub 安装(不经过 npm)¶
dsh plugin --profile desktop add github:Analoty/dsh-auto-click
本包为纯 JavaScript,无 prepare 构建步骤,从 git 直装不会被 pnpm 的 allowBuilds 策略拦下。若使用 Web 终端,将 --profile desktop 改为 --profile web 即可。
卸载¶
dsh plugin --profile desktop remove dsh-auto-click
dsh plugin --profile web remove dsh-auto-click
典型用法¶
- 在侧边栏文件树上 左键 某文件:行为与未装插件时相同,仍在侧边栏预览。
- 需要直接用 VS Code、PDF 阅读器等打开时,对该节点 按住 Ctrl 再左键(macOS 上为对应修饰键组合,以实现为准)。
- 在聊天里出现的文件链接上 右键,从菜单选择「复制路径」「复制文件内容」或「在资源管理器中打开」等。
- 对普通超链接右键,使用「复制链接」获取原始
href。
仓库 README 在 docs/screenshots/file-menu.png 提供了聊天文件链接右键菜单的截图示例。
适用场景与注意¶
适合谁:日常在 DSH Desktop 或 dsh web 中频繁从侧边栏和聊天跳转本地文件、需要系统级「打开 / 打开方式 / reveal」的开发者。
安装前建议:插件以当前 DSH 进程的权限运行,会通过 Host 调用系统 shell 与文件 API。安装前应阅读 源码 与 MIT 许可证,确认符合你的安全策略。DSH 社区插件目录(如 SkillHub 条目)是独立站点,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
设计取舍:插件刻意不枚举「能打开 .md 的应用列表」,而把「打开方式」交给 Windows / macOS,以避免错误列表或空列表;README 中记录了 Windows 上 OpenAs_RunDLL 与 detach 子进程等已踩坑,供维护者参考。
结尾¶
dsh-auto-click 用最小的客户端补丁,把 DSH Web GUI 侧边栏和聊天文件链接上的 预览、Ctrl+直开、右键菜单 串成一套一致的手势;路径解析与会话工作区绑定,打开文件仍走宿主校验。