HOME> 古风衣橱> 如何轻松把小项目打包发送给 AI

如何轻松把小项目打包发送给 AI

2026-03-03 07:15:12

挺早之前就做了这个小东西(现在出现了功能更强大的替代品,如 Repomix 等),不过这个小工具应该能满足小项目的大部分需求(有时候没必要用 Augment Code 或者 Cursor 之类的)。所以补发一下。 之后可能会用 Rust 写一版跨平台的

一键传送门:Gist

背景 ​给 AI 提问:“这是我整个项目,帮我看下 bug 在哪儿?”

现实往往是:

复制几段文件?重复操作累。AI 没上下文,追问半天。node_modules 一股脑带上?噪音 99%,token 烧成灰。于是我写了一个小而实用的工具:把需要的东西自动串联起来,一次性贴给 AI。

这个工具做了什么 ​树状目录:先输出整个项目的目录树(已过滤垃圾目录)。逐文件内容:随后按相对路径逐个输出文本/代码文件内容。Markdown 友好:每个文件外层自动加上 ``` 代码块,并按后缀猜测语言(如 cpp/python/js)。一键上剪贴板:生成的整段文本直接进剪贴板,到聊天框Ctrl+V 即可发。安全一点点:不含绝对路径,减少隐私泄露风险;默认忽略 node_modules/.git/dist/build/...。准备工具 ​Windows 10/11一个支持 C++17 的编译器(VS / MSVC、MinGW-w64 等皆可)你的小项目(最好是源码文本为主)Round 1 - 先上效果 ​生成的粘贴给 AI的内容大致长这样(节选):

markdown=== Folder Structure ===

my-project

+---src

| +---app

| | \---main.cpp

| \---utils

| \---fs.hpp

+---README.md

\---.vscode

\---settings.json

=== File Contents ===

====================================================

文件: README.md

====================================================

```markdown

# my-project

一个示例项目,用于演示如何将项目结构+源码一键打包给 AI。

```

====================================================

文件: src\app\main.cpp

====================================================

```cpp

#include "utils/fs.hpp"

int main() { /* ... */ }

```1234567891011121314151617181920212223242526272829AI 一眼就能获得:“目录结构 → 关键文件全文” 的完整上下文。

Round 1.5 - 怎么运行 ​方案 A:自己编译(推荐) ​保存源码为 scan_project.cpp(下文有核心片段),然后编译:

MinGW-w64

batg++ scan_project.cpp -o scan_project.exe -std=c++17 -lstdc++fs -static1方案 B:问我要二进制文件,然后把它放到 PATH 里 ​把 scan_project.exe 丢进你的某个工具目录,并加入到系统 PATH。之后在任何项目根目录敲:

batscan_project.exe

# 或者:

scan_project.exe D:\work\your-project123运行完毕后,直接 Ctrl+V 粘贴给 AI。

Round 2 - 它的“脑回路” ​遍历:用 C++17 的 做深度优先遍历。过滤:遇到目录名在黑名单(node_modules/.git/dist/build/out/target/__pycache__/...)里,整棵子树跳过。识别:只采集文本/代码后缀(.cpp/.py/.md/.json/...),避免把二进制塞爆剪贴板。排版:前半段输出树状目录;后半段按相对路径输出完整文件内容,每个文件前后套一层 ```,并根据扩展名猜语言。收尾:把所有文本拼成一个大字符串,喂给 Windows 剪贴板。Round 3 - 你的项目,你做主 ​自定义要排除的目录 ​直接把这串列表改了就行:

cpp{"node_modules",".git",".svn",".hg","dist","build","out","target","__pycache__",".venv","venv","env",".vscode",".idea"}1扩展文件类型白名单 ​往 EXTS 里加后缀(记得小写),例如:

cpp".r",".tex",".scala",".kts",".toml",".yml",".rst",".csv"1只想看“关键目录”? ​最简单的做法是:把不重要的目录统统加入黑名单。凡是能不看就不看,token 就是省出来的。

常见问题(FAQ) ​Q:剪贴板容量有限,会不会粘不过去? A:非常大的项目可能会贴不全,建议适当扩展过滤清单,或挑关键目录分多次粘贴(比如先 src/,再 config/ 等)。

Q:某些文件是 GBK/GB2312,中文会花吗? A:程序按字节读文件并按 UTF-8 粘到剪贴板。非 UTF-8 文件可能会出现乱码。建议把项目文件统一成 UTF-8(VSCode 一键转)。

Q:Linux/macOS 可用吗? A:核心遍历逻辑是跨平台的;剪贴板部分依赖 Windows API。在 *nix 上可改成调用 xclip/pbcopy 等即可。

Q:会不会泄露绝对路径? A:输出统一为相对路径。你也可以把任何涉及隐私的目录名加入黑名单。

结语 ​写它的初心很简单:把“把项目讲清楚”这件事变成一次 Ctrl+V。 剩下的,交给 AI。你只负责「提问要准确」,答案自然就更准。

这种小工具应该没必要提供可执行文件吧。

十大最受欢迎的社交媒体平台

草莓播种季节揭秘:选择最佳时机,迎接甜蜜收获

最新发表 newmodule
友情链接 newmodule