2 个版本
0.2.1 | 2024 年 5 月 13 日 |
---|---|
0.2.0 | 2024 年 5 月 13 日 |
#2049 in 命令行工具
50KB
683 行
cunw
cunw (代码库解包) 是一个命令行界面(CLI)工具,它生成代码库的结构化表示,使为大型语言模型(LLM)提供上下文变得容易。它递归地遍历目录,收集文件内容,并生成一个 Markdown 文件,该文件表示代码库的结构和内容。
[!警告] 请注意,cunw 目前处于非常早期和实验性的阶段。它尚未经过广泛的测试,可能容易崩溃或出现意外行为。但是,请放心,任何崩溃都将仅限于工具本身,不会对您的系统或文件造成任何损害。
🌟 特性
- 递归遍历目录并收集文件内容
- 生成表示代码库结构和内容的 Markdown 文件
- 支持根据 glob 模式排除文件
- 默认情况下尊重
.gitignore
文件(可以禁用) - 允许指定目录遍历的最大深度
- 支持跟随符号链接(默认禁用)
📦 安装
预编译的二进制文件
您可以通过 cargo 轻松安装 cunw
cargo install cunw
或从 发行页面 下载预编译的二进制文件。
从源代码安装
要安装 cunw,请确保您的系统上已安装 Rust 和 Cargo。然后,克隆仓库并构建项目
git clone https://github.com/RemiKalbe/cunw.git
cd cunw
cargo build --release
编译的二进制文件将位于 target/release/cunw
。
🚀 使用方法
cunw [OPTIONS]
选项
-p, --path <PATH>
:包含代码库的目录的路径。-o, --output <FILE>
:输出文件的路径。默认:output.txt
-e, --exclude <PATTERN>
:排除匹配指定glob模式的文件或目录。--do-not-consider-ignore-files
:在过滤时不要考虑.gitignore
文件。默认:false
--dangerously-allow-dot-git-traversal
:将.git
目录包含在搜索中。默认:false
-d, --max-depth <DEPTH>
:遍历目录树的最大深度。-f, --follow-symbolic-links
:跟随符号链接。默认:false
-v, --verbose
:设置详细程度。可以使用多次以增加详细程度。
示例
生成位于path/to/codebase
的代码库的Markdown表示,排除匹配*.txt
的文件,并将输出保存到codebase.md
cunw path/to/codebase -o codebase.md -e "*.txt"
📝 输出格式
生成的Markdown文件具有以下结构
<directory_structure>
.
└─ .
├─ ./src
│ ├─ main.rs
│ └─ lib.rs
├─ .gitignore
├─ Cargo.lock
└─ Cargo.toml
</directory_structure>
<file path="Cargo.toml">
[package]
name = "cunw"
version = "0.1.0"
edition = "2021"
[dependencies]
<!-- ... -->
</file>
<file path="src/main.rs">
fn main() {
println!("Hello, world!");
}
</file>
<!-- ... -->
<directory_structure>
部分表示代码库的目录树,每个<file>
部分包含特定文件的内容。
🤝 贡献
欢迎贡献!如果您发现任何问题或有改进建议,请在该GitHub存储库中打开一个问题或提交一个pull请求。
📄 许可证
该项目受MIT许可证的许可。
依赖关系
~20–33MB
~509K SLoC