在使用 DeepSeek Harness (DSH) 进行会话管理时,快速访问会话对应的工作目录是一个常见需求。现有界面通常只提供会话操作(如重命名、归档),缺乏直接跳转文件系统的入口。手动切换文件管理器效率较低。dsh-open-folder 插件在会话行的 ⋯ 菜单中新增了“打开文件夹”功能,点击即可直接用宿主操作系统默认的文件管理器打开该会话所在的目录。
这是一个由 TussalZeus18028 维护的插件。它通过在会话行的溢出菜单(⋯)末尾追加菜单项,解决快速定位和访问会话文件目录的问题。插件遵循 MIT 协议。
核心功能¶
- 菜单集成:在会话行的 ⋯ 菜单末尾新增“打开文件夹”选项。
- 样式与交互:复用现有菜单样式类,跟随界面主题,并支持键盘操作。
- 本地化支持:根据界面语言自动显示中文“打开文件夹”或英文 “Open folder”。
- 设置页集成:设置页中包含“文件夹工具”分节,提供使用说明、通知开关、滚动条修复开关以及最近打开路径记录。
- 反馈与确认:操作成功后,右下角会显示“已打开文件夹:<路径>”的提示。
- 中文路径处理:针对 Windows 平台,使用
explorer.exe配合 UTF-16 参数可靠打开含中文路径的目录。 - 主题适配:设置页的按钮、卡片和提示均适配深浅主题。
安装与启用¶
通过命令行安装(以 web profile 为例):
dsh plugin --profile web add github.com/TussalZeus18028/dsh-open-folder
安装后重启 dsh web 即可生效。
工作原理¶
- DOM 识别:会话行与工作区分组行是兄弟节点,插件通过查找前驱兄弟来定位工作区。
- 空白会话:对于标题尚未存储的空白会话行,也能正确解析并打开所属工作区目录。
- 能力预检:插件启动时会检查
host.describe().canOpenPath,仅当宿主支持打开本地路径时才注入菜单项。 - 范围限制:只注入会话行的 ⋯ 菜单,不干扰工作区级别的菜单。
- 性能优化:不使用轮询,而是通过
MutationObserver监听菜单变化及指针事件驱动重渲染。
注意事项¶
- 插件以当前 dsh 进程的权限运行。在安装前应检查源码与许可证。
- 修改插件源码后,刷新页面即可生效(因为内容是按请求实时读取的 bundle)。
该插件通过极小的改动,将文件系统访问能力无缝集成到会话管理流程中,适合需要频繁在代码上下文与文件目录间切换的开发者。