dsh-folder-reader
Verifieddsh-folder-reader · v1.0.0 · MIT · Web UI
DeepSeek Harness 文件夹阅读器插件:左侧目录树 + 代码高亮/Markdown 预览,右侧对话区收窄
Install
dsh plugin add dsh-folder-reader Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Creators
Readme
dsh-folder-reader
一个用于 DeepSeek Harness 的文件夹阅读器插件:把窗口左侧变成「目录树 + 文件预览」,原始的对话区被推到右侧并收窄。适合一边浏览项目文件、一边和 AI 对话的工作流。
⚠️ 注意:本插件会替换默认界面布局(禁用
ui-layout),是整套自定义 shell,而非可叠加的小部件。请安装到独立 profile,不要add进你现有的webprofile。
功能
- 📁 目录树:可折叠、目录优先;点击目录展开/收起,点击文件即时预览
- 🎨 代码高亮:常见语言(JS/TS/Python/Go/Rust/JSON/CSS/HTML…)轻量高亮 + 行号
- 📝 Markdown 渲染:标题 / 列表 / 表格 / mermaid 图表等
- 🖼️ 图片预览:常见图片格式直接显示
- ✏️ 文件编辑:预览即编辑(记事本式,改动自动保存,无编辑/保存按钮)
- 🔄 自动刷新:
fs.watch监听 + 轮询兜底,文件改动后自动重读;另有手动刷新按钮 - 🔍 搜索:文件名搜索 + 文件内容搜索(大小写不敏感子串匹配)
- 🗂️ 文件操作:右键新建文件/目录、重命名、删除、复制/粘贴(同名自动
名称 (n)) - 🖱️ 拖拽移动:把文件/目录拖到目标目录上即可移动
- 🌿 Git 状态:文件旁显示
git status --porcelain徽标 - 📂 在资源管理器中打开 / 显示隐藏文件 / 文件类型图标着色
- ↔️ 可调布局:三栏可拖拽调宽、目录树可折叠,宽度与开关状态自动记忆
- 🌗 主题跟随:自动适配深/浅色主题
安装
需要 pnpm 在 PATH 中(dsh plugin 依赖 pnpm)。
# 1) 装进一个专门 profile(避免覆盖 web 默认界面;profile 不存在会自动初始化)
dsh plugin --profile reader add dsh-folder-reader
自定义名字的 profile 默认只含基础 bundle、不含 web 界面。因此第 2 步手动把随 DSH 自带的 @deepseek-ai/dsh-web-app 加进 bundles(它内置在 DSH 里,无需 npm 安装)。编辑 $DSH_HOME/profiles/reader/package.json,把 dsh.profile.bundles 改成:
["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-folder-reader"]
然后启动:
# 2) 启动
dsh --profile reader --port 3090
安装后重启 DSH。dsh plugin 会在 profile 不存在时自动初始化,并把本插件自动追加到 dsh.profile.bundles(因为本包声明了 dsh.bundle)。
使用
- 启动后,窗口左侧即目录树 + 预览,右侧为对话区
- 展开/收起目录:点击目录名
- 预览文件:点击文件名
- 文件操作:在文件/目录上右键弹出菜单(新建、重命名、删除、复制、粘贴、在资源管理器中打开等)
- 搜索:顶部搜索框输入关键字,可切换「文件名 / 内容」
- 拖拽移动:按住文件/目录拖到目标目录上松手
配置
配置文件位于 $DSH_HOME/folder-reader-config.json($DSH_HOME 通常是 ~/.dsh):
{
"ignore": [".git", "node_modules", "dist", "build", "*.log"],
"maxDepth": 12,
"maxEntries": 4000,
"maxTextBytes": 1048576,
"hideHidden": false
}
ignore:按「路径任意一级名字」精确匹配,支持*.ext按扩展名匹配maxDepth:目录树最大深度(1–64)maxEntries:单次遍历最大条目数(1–100000)maxTextBytes:预览 / 搜索时读取文本文件的最大字节数hideHidden:是否隐藏以.开头的隐藏文件
已知限制
- 会禁用
ui-layout,替换整套界面布局,不是可叠加小部件 - mermaid 图表走 CDN 加载,渲染需要联网
- 内容搜索为整文件大小写不敏感的子串匹配,不返回命中行号/上下文,不支持正则
- 暂不支持键盘快捷键与手动排序;代码为纯 JavaScript(未迁移 TypeScript)