前言¶
在 DeepSeek Harness (DSH) 的 Web GUI 环境中开发智能体时,开发者往往需要查看当前会话工作区(cwd)内的文件上下文。原生界面缺乏直接的文件树浏览能力,需要依赖外部终端或文件管理器。dsh-workspace-files-explorer 插件为 DSH Web GUI 补充了这一功能,通过一个浮层面板提供文件树浏览与预览能力。
核心功能¶
该插件主要包含以下功能:
-
浮层面板与交互
- 面板注册在
shell.overlay,默认停靠在右上角。 - 支持拖拽标题栏移动面板,拖拽右下角调整大小(尺寸范围 400-1400x280-900)。
- 提供关闭与刷新按钮。
- 在会话标题栏动作区注册“工作区文件”按钮,用于切换面板显隐。
- 面板注册在
-
文件树展示
- 支持目录优先排序、懒加载展开。
- 隐藏文件(点开头文件)会淡化显示。
- 显示文件大小。
- 单目录超过 500 项时会显示截断提示,并提供一键刷新。
-
预览能力
- 代码预览:支持 30+ 种语言(如 JS/TS/Python/Go/Rust 等),带有行号、轻量级语法高亮。主题随系统深浅色自动适配。超长文件会被截断。
- Markdown 预览:支持渲染标题、列表、表格、引用、链接、代码块。渲染前会对 HTML 进行转义,链接仅允许
http/https协议并强制添加rel="noopener noreferrer"。
安装与启用¶
推荐使用安装方式以获得持久化体验。
dsh plugin --profile web add github:YZz-S/dsh-workspace-files-explorer
安装后,插件会自动生效,“工作区文件”按钮将出现在会话标题栏动作区。
若需临时测试,也可以使用动态加载方式。在 dsh Web GUI 会话中调用 cordis_define,将 host.js 内容粘贴为 code.host,将 client.js 内容粘贴为 code.client,随后调用 cordis_run 激活。
注意事项¶
- 权限与安全:插件仅读取当前会话工作区内的文件和目录列表,不发起外部网络请求,不执行文件写入,不收集遥测数据。所有路径访问均需通过
fs.contains验证。渲染内容前会对 HTML 进行转义,防止 XSS 注入。 - 文件限制:二进制文件或文本超过 256 KB 时仅显示提示,无法预览。语法高亮为内置轻量级实现,非完整的语义高亮。
- 会话依赖:面板默认跟随当前会话,切换会话时工作区根目录会自动重置。
- 动态插件限制:通过
cordis_define加载的动态插件仅存活于当前进程。重启 DSH 后需重新运行定义命令才能使用。
总结¶
该插件为 DSH Web 开发者提供了一个轻量、安全的本地文件浏览方案,通过浮层面板和会话绑定,能够快速定位并预览当前上下文文件,辅助代码调试与智能体开发。
- GitHub: https://github.com/YZz-S/dsh-workspace-files-explorer
- DSH 插件目录: https://www.skillhub.cn/plugins/YZz-S/dsh-workspace-files-explorer