Repo Snapshot — 把项目结构交给 AI
粘贴tree / find / fd的输出,将其转换为易于传递给AI编程助手(Claude Code / Cursor / GPT等)的预格式化Markdown。支持排除模式、文件大小·行数显示、按扩展名分组、深度限制、令牌数估计。
完全免费
无需注册
浏览器内完成
即刻下载
5 种语言
深色模式
文件
0
字符
0
估算 tokens
0
📋 如何获取输入
# 首选:tree(推荐,可读性最好) tree -L 3 -I 'node_modules|.git|dist' # 没有 tree 时:find find . -type f -not -path '*/node_modules/*' -not -path '*/.git/*' | sort # Rust 编写的高速替代:fd fd --type f --hidden --exclude node_modules --exclude .git # Mac/Linux 標準: ls -R ls -R # Windows PowerShell Get-ChildItem -Recurse -File | Select-Object FullName
📖 常见的坑
把 tree 或 find 的输出粘贴进来,应用排除模式、最大深度与最大文件数,整理成便于交给 AI 的 Markdown,并显示大致的 token 数。处理全部在浏览器内完成。文件清单是用来「问该看哪里」的素材,本身并不包含答案——文件名说明不了内容,因此只给结构就去问具体的实现问题,是得不到精确回答的。
| 情形 | 会发生什么 | 怎么处理 |
|---|---|---|
| 光是清单就把上下文吃光了 | 不设排除就跑 tree,node_modules、.git、vendor、dist、.next 会被整个收进来,动辄数十万 token——光这些就超出上下文上限,真正的问题与相关代码就再也塞不进去了。就算塞得下,情况也不会变好:大量无关文件会稀释模型本该关注的地方,回答的精度不升反降。「全都给它,它就会全都考虑到」并不成立;信息越多并不等于越好。 |
请一开始就设好排除模式——node_modules、.git、dist、build、vendor、*.lock 在几乎任何项目里都可以放心剔除。更有效的做法是:干脆不要交出整棵树——问题若关于认证,只给 src/auth/ 与 src/middleware/ 的清单就够了,而且收窄范围同样能提升回答质量。把最大深度设为 2~3,得到的清单只呈现各目录的职责划分——想传达项目全貌,这就足够;更深层的文件名,等确定了要看哪里之后再补上也不迟。显示大致 token 数,正是为了让你在发送之前做出这个判断。 |
| 只给结构,却指望得到具体答案 | 文件名说明不了这个文件在做什么。utils.ts 的内容无从得知,UserService.php 里有哪些方法同样无从得知。因此「这个 bug 的原因在哪里」这类问题,仅凭结构无法回答,返回的只能是「大概在这一带吧」的猜测。这种用法的危险在于,猜测会以具体断言的形式返回,让人很容易不加验证就相信——其中可能混入并不存在的函数名,或与代码实际职责不符的描述。 |
请用结构来问「该看哪里」,再根据答案交出相应文件的内容——这两步走,才是实际最出精度的用法。第一问应写成「要追踪认证流程该读哪些文件」这样的形式,然后只打开确实存在的候选,把它们的内容交出去。也有一些问题仅凭结构就能回答:「这套目录结构遵循的是哪种设计模式」「哪些目录没有测试」「命名规范在哪里不一致」——这类问题里,文件名与它们的排布本身就是答案。意识到自己问的是哪一类问题,「只给结构」还是「连内容一起给」,答案自然就定了。 |
| 文件名本身就是机密 | 目录结构不用暴露任何代码,就能说出大量信息。像 acme-corp-migration/、2026-q3-layoff-tool/、client-nintendo/ 这样的名字,本身就包含尚未公开的事实。同样,「仓库里存在 .env.production、credentials.json、id_rsa」这一信息,单凭它对攻击者就有用。此外,tree 的输出常在路径开头带着用户名——/home/tanaka/projects/... 或 C:\Users\yamada\...——于是个人姓名也一并被带了出去。 |
粘贴之前,请把输出从头到尾读一遍。排除模式只能删掉你已经知道的名字,项目名与客户名只能靠你自己找出来并替换。实务上,在项目根目录运行 tree,粘贴前把开头的路径删掉,用户名的问题就解决了。请把 .env*、*.pem、*credential* 加进排除模式——连「它们存在」这件事,通常都没必要传达出去。而最重要的一步确认是:在把任何东西交给 AI 之前,请查阅该服务关于「是否将你的输入用于训练」的政策,以及你所在组织的规章。通过付费 API 一般不会用于训练,但面向消费者的免费服务则取决于设置,而且禁止把内部代码发往外部的组织并不少见。 |
输入的取法会改变结果。tree 最易读,它用连线画出层级,模型和人都能跟得上。没装 tree 的环境可以用 find . -type f 代替,但该格式每行都是一条完整路径,层级越深、相同的字符串重复越多,消耗的 token 也越多——文件一多,装个 tree 反而更省。使用 fd 则会自动遵循 .gitignore,即便不写排除模式,node_modules 之类也压根不会出现——这是三者中最省事的。最后给一条运维建议:与其每次重新生成这份清单,不如在项目根目录放一份描述结构的文件(如 ARCHITECTURE.md),长期来看更见效。一份「每个目录一行说明」的文档,在给 AI 提供上下文时、在新人加入时、在半年后你自己回头看时,都同样有用——而且与文件清单不同,它能记录下「为什么要这样划分」。
📖 使用方法
-
1
在 shell 捕获树tree/find/fd/ls -R 输出并复制
-
2
粘贴并调整选项排除模式 / 深度 / 文件数
-
3
粘贴到 AI 助手粘贴到 Claude/Cursor/GPT 并提问
❓ 常见问题
没有 tree 命令?
使用 find / ls -R / fd
文件太多
限制 "最大文件数" 或深度
隐私?
完全浏览器内处理,不发送到服务器
token 估算精度?
近似估算。精确用 Token Counter
🐛 此工具出现问题了吗?
免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。
✅
感谢您的反馈!
已送达运营者,将用于改进工具。