综合介绍
Yek 是一个基于 Rust 的快速工具,用于读取存储库或目录中的文本文件,将其分块并序列化以供大型语言模型(LLM)使用。该工具默认使用 .gitignore 规则跳过不需要的文件,并利用 Git 历史推断重要文件。Yek 可以根据近似“令牌”计数或字节大小将内容分块,并自动检测输出是否被管道传输。它支持在单个命令中处理多个目录,并通过 yek.toml 文件进行配置。
功能列表
- 使用 .gitignore 规则跳过不需要的文件
- 利用 Git 历史推断重要文件
- 推断额外的忽略模式(如二进制文件、大文件等)
- 根据近似“令牌”计数或字节大小将内容分块
- 自动检测输出是否被管道传输
- 支持在单个命令中处理多个目录
- 通过 yek.toml 文件进行配置
使用帮助
安装流程
Unix-like 系统(macOS, Linux)
curl -fsSL https://bodo.run/yek.sh | bash
Windows(PowerShell)
irm https://bodo.run/yek.ps1 | iex
从源码构建
git clone https://github.com/bodo-run/yek.git
cd yek
cargo build --release
使用方法
Yek 具有合理的默认设置,您可以简单地在目录中运行 yek 来序列化整个存储库。默认情况下,它会将存储库中的所有文件序列化为 10MB 的块,并将文件写入临时目录,文件路径将打印到控制台。
示例
- 处理当前目录并写入临时目录:
yek
- 将输出管道传输到剪贴板(macOS):
yek src/ | pbcopy
- 将最大大小限制为 128K 令牌并仅处理 src 目录:
yek --max-size 128K --tokens src/
- 将最大大小限制为 100KB 并仅处理 src 目录,写入特定目录:
yek --max-size 100KB --output-dir /tmp/yek src/
- 处理多个目录:
yek src/ tests/
CLI 参考
yek --help
Yek 是一个用于 LLM 消费的存储库内容分块和序列化工具。
用法
yek [OPTIONS] [directories]...
参数
directories
:要处理的目录 [默认: .]
选项
--max-size <max-size>
:每块的最大大小(例如 '10MB', '128KB', '1GB')[默认: 10MB]
一句话描述(简介)