
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
dsh-folder-tree
Advanced tools
Folder tree plugin for DeepSeek Harness: render directory trees with depth control, ignore lists (node_modules/.git) and symlink-cycle protection, plus structure statistics by extension. Read-only, zero runtime dependencies.
DeepSeek Harness 目录树插件:以树形文本渲染目录结构(深度可控、glob 忽略规则、pattern 名称过滤、防符号链接环路),统计目录/文件数与扩展名分布,并对比两个目录的结构差异。子目录并发建树,只读、零运行时依赖。
npm install dsh-folder-tree
以树形文本展示目录结构,支持深度控制、忽略规则、pattern 名称过滤、仅显示目录、附带文件大小。
用户:看下这个项目长什么样
E:\dsh-plugins\dsh-folder-tree/
├── README.md
├── cordis.patch.yml
├── index.js
├── package.json
└── test-plugin.js
0 个目录,5 个文件(深度 ≤ 3)
忽略:node_modules, .git
带下钻与目录优先排序:
E:\projects\demo/
├── docs/
│ └── guide.md
├── src/
│ ├── sub/
│ ├── a.js
│ └── b.js
└── README.md
3 个目录,4 个文件(深度 ≤ 3)
忽略:node_modules, .git
参数:
| 参数 | 说明 |
|---|---|
path | 目录路径,默认当前目录 |
depth | 最大下钻层数,默认 3,上限 10(根的直接子项为第 1 层) |
ignore | 忽略规则,逗号分隔,支持 glob(* ? []),默认 node_modules,.git;对目录名与文件名同时生效;传空字符串表示不忽略 |
pattern | 名称过滤(v0.2,glob):仅渲染匹配条目;目录名命中则整个子树保留,未命中的目录作为容器行保留含匹配后代的枝干,无匹配的枝干整枝不渲染 |
dirs_only | 仅显示目录,默认 false |
show_size | 在文件名后附带大小,默认 false |
limit | 最多渲染的条目数,默认 200,上限 2000 |
统计目录数、文件数、实际最大深度,并按扩展名给出文件数量与体积分布。
用户:这个目录里文件类型都是什么
目录:E:\projects\demo
目录数:3,文件数:5
最大深度:3(统计上限 3)
按扩展名分布(Top 10):
.md 3 个 360 B
.js 2 个 300 B
参数:path、depth(默认 3,上限 10)、ignore(默认 node_modules,.git,支持 glob)、top(扩展名展示条数,默认 10,上限 50)。
对比两个目录(如模板 vs 实际、旧版本 vs 新版本)的结构差异,输出新增/删除的目录与文件明细及计数,相对路径统一用 / 分隔。
用户:这个新版本比旧版本多了哪些文件、少了哪些
tree_compare(before="D:\\old\\proj", after="E:\\proj", limit=20)
基准(before):D:\\old\\proj
目标(after):E:\\proj
对比深度:≤ 10;忽略:node_modules, .git
新增目录 1 个、新增文件 1 个、删除目录 1 个、删除文件 2 个
新增目录 1 个:
src/newmod
新增文件 1 个:
src/newmod/n.js
删除目录 1 个:
docs
删除文件 2 个:
docs/d.md
src/b.js
未变化条目:5 个(未列出)
参数:
| 参数 | 说明 |
|---|---|
before | 对比基准目录路径(必填) |
after | 对比目标目录路径(必填) |
depth | 对比深度(两侧一致),默认 10(上限),下限 1 |
ignore | 忽略规则,逗号分隔,支持 glob,默认 node_modules,.git |
limit | 每类明细最多展示条数,默认 50,上限 500 |
1. 快速了解项目结构
用户:这个仓库的目录结构是怎样的
render_tree 用默认 depth=3 一次看清主干;node_modules/.git 默认被忽略,输出干净。
2. 定位某个目录的位置
用户:组件都放在哪一层
render_tree 传 dirs_only=true,只看目录骨架,快速把握层级。
3. 排查体积异常的目录
用户:哪个子目录文件特别多
tree_stats 看目录/文件数,再配合 render_tree 的 show_size=true 定位大文件。
4. 交付前的目录体检
用户:打包前确认没把 node_modules 带进去
render_tree 传 ignore=(空)即可把被忽略的目录也显示出来,确认实际包含内容。
5. 只看某类文件的分布位置
用户:项目里所有 markdown 文件分布在哪些目录
render_tree 传 pattern="*.md",命中文件全部渲染,未命中的目录只保留含匹配后代的枝干,一眼看出分布。
6. 模板/升级前后的结构核对
用户:升级后多了哪些文件、丢了哪些文件
tree_compare(before=旧目录, after=新目录) 直接列出新增/删除的目录与文件,不用肉眼对比两棵树。
7. 技术栈分布速览
用户:这个项目主要是什么语言
tree_stats 的扩展名分布 Top N 直接给出文件类型构成。
readdir / stat / lstat,不创建、不修改、不删除任何文件;测试中含"调用后文件数不变"的只读性断言。depth 上限 10、limit 上限 2000、扫描条目上限 20 万,超出即截断并标注 ⚠,防止超大目录导致长时间占用。| 协作插件 | 集成方式 |
|---|---|
| dsh-fs-inspector | 一个看"长什么样"(folder-tree),一个看"多大"(fs-inspector),配合定位体积异常目录 |
| dsh-file-search(二期 D10) | 先用 render_tree 摸清结构,再用 file-search 在目标目录做内容检索 |
| dsh-table-render | 把 tree_stats 的扩展名分布整理为数据后渲染成对齐表格 |
| dsh-file-manager-cli | 本插件负责"看"(只读渲染),实际移动/删除/重命名交给 file-manager-cli |
| dsh-workspace-journal | 把目录结构快照写入工作区日志,形成长期变化记录 |
render_tree 新增 pattern:glob 名称过滤,目录命中整枝保留、未命中目录作为容器行保留含匹配后代的枝干tree_compare:对比两个目录的结构差异,输出新增/删除的目录与文件明细及计数(相对路径统一 / 分隔)* / ? / []),对目录名与文件名同时生效render_tree:树形渲染 + 深度控制 + 忽略名单 + 仅目录 + 大小标注 + 条目上限tree_stats:目录/文件计数 + 最大深度 + 扩展名分布 Top Nv0.2(已落地于 0.2.0)
render_tree 支持 pattern 过滤,只渲染匹配名称的条目tree_compare:对比两次目录树快照,输出新增/删除的目录与文件v0.3(展望)
Q:为什么默认忽略 node_modules 和 .git?
它们条目极多且通常不是结构查看的目标。需要时传 ignore=(空字符串)即可完整显示。
Q:depth 的计数从哪一层开始?
根的直接子项为第 1 层。depth=1 只显示根的一级内容,depth=3 显示到第三层。
Q:软链接指向的目录为什么没显示? 为避免环路死循环与越界遍历,扫描一律跳过符号链接/junction。这是刻意的安全取舍。
Q:渲染结果被截断(出现 ⚠)怎么办?
说明条目达到 limit 上限。可提高 limit、降低 depth,或缩小 path 范围分段查看。
Q:pattern 和 ignore 有什么区别?
pattern 是“只看什么”(白名单式过滤,只影响渲染展示),ignore 是“不看什么”(黑名单式跳过,影响扫描范围,支持 glob)。两者可同时用。
Q:tree_compare 能对比同一目录的两个时间点吗?
当前版本对比两个目录(如备份 vs 现状)。同一目录的时点快照与趋势报告在 v0.3 的“目录树快照落盘”里规划。
Q:tree_stats 的"最大深度"和传入的 depth 有何区别?
depth 是统计的深度上限;"最大深度"是实际统计到的最深层级,可能小于上限。
Q:能帮我删除或移动目录吗? 不能,本插件严格只读。文件操作请使用 dsh-file-manager-cli。
MIT
FAQs
Folder tree plugin for DeepSeek Harness: render directory trees with depth control, ignore lists (node_modules/.git) and symlink-cycle protection, plus structure statistics by extension. Read-only, zero runtime dependencies.
We found that dsh-folder-tree demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.