前言¶
DeepSeek Harness (DSH) 采用插件化架构,Web GUI 提供了会话管理界面,但直接从界面打开当前会话所属工作区的文件夹并不原生支持。这通常需要切换到终端或手动拼接路径,操作流被切断。dsh-open-workspace 插件通过注入两个入口,将文件系统操作直接集成到 Web 界面中,解决了这一断层。
功能介绍¶
该插件为 DeepSeek Harness Web GUI 添加两个「打开工作区」入口,点击后使用系统文件管理器打开当前会话所属工作区的根目录。
- 侧边栏会话行菜单:在侧边栏任意会话行的 ⋯ 菜单底部添加「打开工作区」项。
- 会话标题栏按钮:在会话顶部标题栏注册「打开工作区」按钮,通过官方 slot
conversation.session.header.actions实现,与「归档」、「移动至工作区」、「删除会话」等官方按钮及其他插件的按钮(如 Session 日志)按顺序并排组合。
核心逻辑为「打开工作区根目录」:
- 标题栏按钮:按 sessionId 找到所属工作区,优先使用工作区 path/cwd,若不存在则使用会话 cwd。
- 侧边栏菜单项:按行所在的工作区分组,优先使用工作区 path/cwd,若不存在则使用同名会话的 cwd,若仍不存在则遍历扁平列表定位当前会话。
在 Windows 系统上,插件直接调用 explorer.exe 并传递 UTF-16 编码的参数,确保中文和非 ASCII 路径可靠打开。操作成功或失败均会在右下角显示提示条。插件宿主端注册了 POST /plugins/dsh-open-workspace/open 和 GET /plugins/dsh-open-workspace/status 接口,激活探针会写入 $DSH_HOME/logs/dsh-open-workspace.probe.log。
安装与启用¶
安装前请确保目标环境已安装 Node.js ≥ 20、DSH 和 pnpm。
本机安装¶
在插件源码目录下执行以下命令:
cd <本插件文件夹>
npm pack
dsh plugin --profile web add .\dsh-open-workspace-1.0.0.tgz
执行安装脚本后,重启 dsh web。
远程安装¶
将插件文件夹拷贝到目标电脑任意位置,目标电脑需安装 Node.js ≥ 20、DSH 和 pnpm。执行安装脚本:
powershell -ExecutionPolicy Bypass -File .\install.ps1
脚本会自动完成环境检查、重复 id 守卫、检测并询问是否停用冲突插件(如 dsh-open-folder、dsh-open-explorer、dsh-open-session-folder),并完成安装和校验。
手动安装时,需确保 dsh.profile.bundles 包含 dsh-open-workspace,若遇到供应链策略拦截,可在 profile 目录下执行 pnpm add <路径>\dsh-open-workspace-1.0.0.tgz --config.minimum-release-age=0。
使用示例¶
- 安装并重启
dsh web后,访问 Web GUI。 - 检查插件加载状态:访问
GET /plugins/dsh-open-workspace/status,返回{"ok":true,...}表示宿主已加载。 - 在侧边栏会话行点击 ⋯ 菜单,选择底部的「打开工作区」。
- 在任意会话顶部标题栏点击「打开工作区」按钮(位于删除按钮与 Session 日志之间)。
注意事项¶
- 避免重复插入:不要在
bundles层和用户补丁层同时insert本插件(同一 id 重复会导致dsh web启动即崩)。 - 运行环境:「打开工作区」的动作发生在运行 dsh web 的那台电脑上。如果通过远程桌面访问 GUI,文件管理器窗口会直接弹在服务器端的桌面上。
- 兼容性:插件兼容 DSH 0.1.2-alpha.5 和 0.1.2-rc.1。升级 DSH 后,插件无需改动即可直接使用。
- 许可证:该插件基于 MIT 许可证开源。
结语¶
dsh-open-workspace 通过两个标准的 Web UI 入口,将文件系统操作无缝融入 DSH 工作流,降低了在 Web 界面下管理智能体工作区目录的门槛。更多细节及源码请访问 GitHub。