为 DeepSeek Harness 会话增加右侧可调宽度文件资源管理器面板,支持浏览、搜索、预览、编辑工作区文件并一键在 VS Code 中打开。
- 语言
- JavaScript
- 分支
- main
安装
$ dsh plugin --profile web add github:joejojoking-cloud/dsh-file-explorer在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 joejojoking-cloud/dsh-file-explorer:先查看仓库 https://github.com/joejojoking-cloud/dsh-file-explorer 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
为 DeepSeek Harness 的每个会话在页面右侧加一个可调宽度的文件资源管理器面板:浏览工作区、搜索、预览、改文件,并一键把当前工作区甩进 VS Code。
核心能力
- 在右侧打开/关闭文件树面板,可拖拽调整宽度,面板中间贴边有折叠按钮
- 标题栏提供「在 VS Code 中打开」、全部展开/折叠、刷新、编辑切换、关闭等快捷按钮
- 递归搜索工作区内的文件与目录,跳过 .git 与 node_modules,最多扫描 4000 个节点、返回 300 条匹配
- 文件树懒加载展开,单击预览、双击打开;预览支持 Markdown 渲染与多语言语法高亮
- 内联编辑模式可直接改文本内容并写回磁盘,超过 1 MB 的文件会给出"不支持预览"提示
- 双击聊天区域可快速收回面板,不影响输入框、按钮等可交互控件的默认行为
技术实现
- 语言: JavaScript (ESM,host 半部) + 类 UMD 打包 (client 半部)
- 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-client-slots、@deepseek-ai/dsh-client-runtime、React 18
- 架构模式: cordis 插件模型,host 通过 cordis.patch.yml 把 file-explorer 注入 profile 组合,注册 5 个 /plugins/file-explorer/* HTTP 路由;client 通过 slots.inject 注册 shell.overlay 面板与 conversation.session.header.actions 切换按钮
- 入口文件: lib/index.js (host 路由) / lib/client.js (UI + fetch 客户端)
适用场景
在 DSH 会话中需要边聊边翻代码、找文件、改小段配置时,直接在右侧面板完成浏览和编辑,不用切到终端或外部编辑器。需要快速跳到 IDE 里继续开发时,标题栏一键甩进 VS Code,适合前端、后端、数据脚本等多类型项目。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| @deepseek-ai/cordis | ^4.0.1-rc.1 | peer 依赖,提供 ctx 与 fs/shell 服务 |
| @deepseek-ai/dsh-client-locale | ^0.0.1-rc.1 | peer 依赖,client bundle 注入 |
| @deepseek-ai/dsh-client-runtime | ^0.0.1-rc.1 | peer 依赖,client bundle 注入 |
| @deepseek-ai/dsh-client-ui-conversation | ^0.0.1-rc.1 | peer 依赖,client bundle 注入 |
| @deepseek-ai/dsh-client-ui-slots | ^0.0.1-rc.1 | peer 依赖,client 通过 slots 注册面板 |
| react | ^18.2.0 | peer 依赖,client UI 渲染 |
| 平台 | — | macOS / Windows / Linux 均可,VS Code 启动逻辑针对 Windows 的 .cmd 做了派生处理 |
| 原生模块 | — | 不依赖 node-pty 等原生模块;VS Code 启动走 host 的 subprocess 沙箱 |
安装方式
dsh plugin --profile web add github:joejojoking-cloud/dsh-file-explorer
配置项
本插件无需额外配置。安装并重启 harness 后,会话标题栏右侧自动出现"文件资源管理器"切换按钮,点击即在右侧打开面板。面板宽度、是否打开、当前根路径等状态保存在前端内存 store 中,不写盘、不持久化。
常见问题
Q: 安装后看不到文件资源管理器面板怎么办?
A: 插件依赖 host 端的 webServer/httpServer、fs 服务以及 client 端的 slots 服务。安装后需要重启 DSH harness 让 cordis.patch.yml 生效;若仍不显示,检查 profile 是否启用了 web 客户端,以及 DSH 版本是否兼容。
Q: 文件树显示空白或搜索不到文件怎么办?
A: 搜索会跳过 .git 和 node_modules 目录,且最多扫描 4000 个节点、最多返回 300 条匹配,命中上限后会标记 truncated。检查根路径是否设置正确,或者目录里是否几乎全是 .git/node_modules。
Q: 点文件预览出现"不支持预览"提示是怎么触发的?
A: host 端对大于 1 MB 的文件不会返回内容,client 会显示"不支持预览"。属于刻意的安全限制,避免大文件把内存或 UI 卡住。
Q: 在 VS Code 中打开按钮没有响应怎么办?
A: host 端优先通过 subprocess 直接 spawn code 可执行文件(Windows 下从 code.cmd 推导 Code.exe),找不到时回退到沙箱化 shell 的 Start-Process。两种方式都需要宿主机上能解析到 code 命令(PATH 中或 VS Code 已安装);都没找到时返回 ok:false 并提示"未找到 VS Code"。
Q: 在面板里编辑文件会写到哪里?
A: 编辑器调用 host 的 /plugins/file-explorer/write 路由,通过 host 端的 fs 服务把 content 写回到 fs.resolve(path) 解析出的目标路径,等价于用工作区文件系统的当前挂载点落盘。保存后会立即在面板刷新状态。
Q: 这个插件跟其他 DSH 插件冲突吗?
A: 没有 manifest 级冲突。它只占用 shell.overlay 和 conversation.session.header.actions 两个 slot,不读写全局配置;不过同位置的其他 overlay 插件会按 order 排序共存。
Q: 如何卸载这个插件?
A: 卸载方式取决于你当初安装时使用的包源(npm 包名、本地路径或 GitHub 地址)。一般通过 dsh plugin --profile web remove <源标识> 卸载后重启 harness 即可。
上手难度
入门 — 安装即可使用,无配置项;只要熟悉 DSH 会话界面就能直接操作文件树和预览。
已知问题与限制
- 大于 1 MB 的文件不返回预览内容,会触发"不支持预览"提示
- 搜索最多扫描 4000 个目录节点、最多返回 300 条匹配,超出后 truncated=true,结果可能不完整
- 搜索强制跳过 .git 和 node_modules 目录,藏在这里的文件无法通过搜索定位
- "在 VS Code 中打开"要求宿主机上
code命令在 PATH 中或 VS Code 已安装;否则按钮会提示"未找到 VS Code"
File Explorer for DeepSeek Harness — right-side resizable file tree with Markdown rendering, syntax highlighting, in-panel editing, and one-click VS Code open. Install:
dsh plugin --profile web add dsh-file-explorer.
DeepSeek Harness 的全局文件资源管理器插件:在任何会话的标题栏右侧提供文件夹切换按钮,点击后在页面右侧打开可调宽度的文件树面板。
功能
- 右侧面板(
shell.overlay,可开关):左边缘拖拽调宽(260–900px),面板打开时左边缘中间有「>」收起按钮,双击聊天区域也可收回 - 标题栏:「文件」+ 五个图标 —— VS Code(在 VS Code 中打开整个工作区)、全部展开/折叠、刷新、编辑、关闭
- 搜索框「搜索文件」:递归扫描工作区(跳过
.git/node_modules,最多 300 条) - 文件树:根目录默认展开,目录点击展开/折叠(懒加载),文件单击/双击打开预览
- 预览:
.md渲染 Markdown(标题/列表/代码块/引用/链接),Markdown 代码块按围栏语言高亮;其他文本文件按扩展名自动语法高亮(JSON / YAML / JS / TS / Python / C / C++ / Java / Go / Rust / Shell / SQL / TOML / INI / CSS / HTML 等);「编辑」图标进入可编辑模式,保存写回磁盘;再次点击预览中的文件可关闭预览框 - 超过 1 MB 的文件提示不支持预览
安装
dsh plugin --profile web add <本包路径或 npm 包名>
重启 harness 后生效:所有会话都会加载该插件(host 路由 /plugins/file-explorer/* + web client 面板)。
结构
lib/index.js— host 半部:fs/shell服务 +webServerHTTP 路由(list / search / read / write / open-vscode)lib/client.js— web client 半部:window.__ModuleLoader__bundle,注册shell.overlay面板与conversation.session.header.actions切换按钮cordis.patch.yml— bundle 补丁,把file-explorer行插入 profile 的 host 组合
查看使用指南 →
该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。
收录徽章
[](https://deepseek-plugin.org/plugins/joejojoking-cloud/dsh-file-explorer)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。