dsh-file-explorer
界面与体验joejojoking-cloud/dsh-file-explorer
DeepSeek Harness 的全局文件资源管理器插件:文件树、预览、Markdown、语法高亮、面板内编辑、VS Code 集成。
- ai-agent
- cordis
- deepseek-harness
- developer-tools
- dsh
- dsh-plugin
- file-explorer
- file-manager
- llm
- markdown
- syntax-highlighting
验证与兼容性
这里展示目录实际采集到的证据;未声明的信息会明确标为未知。
- 当前版本兼容性
- 已在当前目录版本验证
- 声明的 Harness 范围
- 未声明
- 声明的平台
- 未声明
- 适用 Profile
- web
- 构建授权
- 未知
- 权限声明
- 未声明
- 外部服务
- 未声明
- 遥测声明
- 未知
这不是安全背书;安装前仍应查看源码、权限和配置。
查看证据与判定范围
验证仅覆盖标出的来源、版本和 Harness 环境,不代表未来版本仍然兼容。
github:joejojoking-cloud/dsh-file-explorer#9e1f3ea7baa43d737c51ffc68adb5eb95b024c32- 插件通过清单与静态结构检查,尚未完成运行时加载检查。
README
dsh-file-explorer
File Explorer for DeepSeek Harness — right-side resizable file tree with Markdown rendering, syntax highlighting, in-panel editing, and one-click VS Code / system file manager 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 面板)。
结构
src/index.ts— host 半部(构建到lib/index.js):fs/shell服务 +webServerHTTP 路由(list / search / read / write / open-vscode / open-folder)src/client/index.ts— web client 半部(tsc→lib/client/index.js→tsdown→lib/client.js):注册shell.overlay面板与conversation.session.header.actions切换按钮cordis.patch.yml— bundle 补丁,把file-explorer行插入 profile 的 host 组合
开发(重要)
pnpm run build # clean && tsc && tsc -p tsconfig.client.json && tsdown
node --check lib/client.js
pnpm test # host 半部单元测试(node --test)
永远不要直接改 lib/ 下的产物:它们由 src/ 构建生成。历史上直接手改 lib/client.js 曾把反引号写进 CSS 模板字符串,导致模板提前终止、整个 bundle SyntaxError、启动报 "loaded without registering";而且下次构建会覆盖掉落手改内容。样式/逻辑改动一律落 src/,构建后由 host 的 rev 内容哈希自动换新。
已有约定:[data-phase=active] 的右侧让位 padding 即时生效(无 transition/will-change)——动画化的聊天列宽在流式期间会让 transcript 重排竞争 scroll anchoring,造成消息上跳/内容空白。