[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-mohsen1--yek":3,"similar-mohsen1--yek":197},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":19,"owner_email":18,"owner_twitter":18,"owner_website":20,"owner_url":21,"languages":22,"stars":47,"forks":48,"last_commit_at":49,"license":50,"difficulty_score":51,"env_os":52,"env_gpu":53,"env_ram":53,"env_deps":54,"category_tags":58,"github_topics":64,"view_count":51,"oss_zip_url":18,"oss_zip_packed_at":18,"status":71,"created_at":72,"updated_at":73,"faqs":74,"releases":104},3020,"mohsen1\u002Fyek","yek","A fast Rust based tool to serialize text-based files in a repository or directory for LLM consumption","yek 是一款基于 Rust 开发的高效工具，专为将代码仓库或目录中的文本文件序列化，以便大语言模型（LLM）更好地理解和处理。它主要解决了开发者在向 AI 提交代码上下文时，面临的文件筛选繁琐、格式不统一以及关键信息容易被忽略等痛点。\n\nyek 非常适合软件开发者、AI 研究人员以及需要频繁与代码库交互的技术人员使用。其独特之处在于智能的文件排序策略：利用 Git 历史记录自动推断文件重要性，并将核心代码安排在输出内容的末尾。这一设计巧妙契合了大语言模型“更关注上下文后半部分”的特性，从而显著提升 AI 回答的准确度。此外，yek 默认遵循 `.gitignore` 规则自动过滤无关文件，支持通配符匹配、多目录并行处理，并能根据设定的 Token 数量或文件大小自动裁剪内容，确保输入不超出模型限制。无论是通过命令行快速打包当前项目，还是将结果直接管道传输至剪贴板，yek 都能以极快的速度完成工作，是让代码库“开口说话”的得力助手。","# `yek`\n\nA [fast](#performance) Rust based tool to serialize text-based files in a repository or directory for LLM consumption.[^1]\n\nBy default:\n\n- Uses `.gitignore` rules to skip unwanted files.\n- Uses the Git history to infer what files are more important.\n- Infers additional ignore patterns (binary, large, etc.).\n- Automatically detects if output is being piped and streams content instead of writing to files.\n- Supports processing multiple directories in a single command.\n- Supports glob patterns and individual file selection.\n- Configurable via a `yek.yaml` file.\n\nYek \u003Ca href=\"https:\u002F\u002Ffa.wikipedia.org\u002Fwiki\u002F۱\">يک\u003C\u002Fa> means \"One\" in Farsi\u002FPersian.\n\nConsider having a simple repo like this:\n\n```\n.\n├── README.md\n├── src\n│   ├── main.rs\n│   └── utils.rs\n└── tests\n    └── test.rs\n```\n\nRunning `yek` in this directory will produce a single file and write it to the temp directory with the following content:\n\n```txt\n>>>> README.md\n... content ...\n>>>> tests\u002Ftest.rs\n... content ...\n>>>> src\u002Futils.rs\n... content ...\n>>>> src\u002Fmain.rs\n... content ...\n```\n\n> [!NOTE]  \n> `yek` will prioritize more important files to come last in the output. This is useful for LLM consumption since LLMs tend to pay more attention to content that appears later in the context.\n\n## Installation\n\nChoose the installation method for your platform:\n\n### Unix-like Systems (macOS, Linux)\n\n\u003C!-- UNIX_INSTALLATION_BEGIN -->\n\n```bash\ncurl -fsSL https:\u002F\u002Fazimi.me\u002Fyek.sh | bash\n```\n\n\u003C!-- UNIX_INSTALLATION_END -->\n\nFor Windows (PowerShell):\n\n\u003C!-- WINDOWS_INSTALLATION_BEGIN -->\n\n```powershell\nirm https:\u002F\u002Fazimi.me\u002Fyek.ps1 | iex\n```\n\n\u003C!-- WINDOWS_INSTALLATION_END -->\n\n\u003Cdetails>\n\u003Csummary style=\"cursor: pointer;\">Build from Source\u003C\u002Fsummary>\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\ncd yek\ncargo install --path .\n```\n\n\u003C\u002Fdetails>\n\n## Usage\n\n`yek` has sensible defaults, you can simply run `yek` in a directory to serialize the entire repository. It will serialize all files in the repository and write them into a temporary file. The path to the file will be printed to the console.\n\n### Examples\n\nProcess current directory and write to temp directory:\n\n```bash\nyek\n```\n\nPipe output to clipboard (macOS):\n\n```bash\nyek src\u002F | pbcopy\n```\n\nCap the max output size to 128K tokens:\n\n```bash\nyek --tokens 128k\n```\n\n> [!NOTE]\n> `yek` will remove any files that won't fit in the capped context size. It will try to fit in more important files\n\n```bash\nyek --max-size 100KB --output-dir \u002Ftmp\u002Fyek src\u002F\n```\n\nProcess multiple directories:\n\n```bash\nyek src\u002F tests\u002F\n```\n\nProcess multiple files\n\n```bash\nyek file1.txt file2.txt file3.txt\n```\n\nUse glob patterns:\n\n```bash\nyek \"src\u002F**\u002F*.ts\"\n```\n\n```bash\nyek \"src\u002Fmain.rs\" \"tests\u002F*.rs\" \"docs\u002FREADME.md\"\n```\n\n> [!NOTE]\n> When using glob patterns, make sure to quote them to prevent shell expansion.\n\n### CLI Reference\n\n```bash\nyek --help\nUsage: yek [OPTIONS] [input-paths]...\n\nArguments:\n  [input-paths]...                Input files and\u002For directories to process\n\nOptions:\n      --no-config                              Do not use a config file\n      --config-file \u003CCONFIG_FILE>              Path to the config file\n  -V, --version                                Print version of yek\n      --max-size \u003CMAX_SIZE>                    Max size per chunk. e.g. \"10MB\" or \"128K\" or when using token counting mode, \"100\" or \"128K\" [default: 10MB]\n      --tokens \u003CTOKENS>                        Use token mode instead of byte mode\n      --json                                   Enable JSON output\n      --debug                                  Enable debug output\n      --line-numbers                           Include line numbers in output\n      --output-dir [\u003COUTPUT_DIR>]              Output directory. If none is provided & stdout is a TTY, we pick a temp dir\n      --output-name [\u003COUTPUT_NAME>]            Output filename. If provided, write output to this file in current directory\n      --output-template [\u003COUTPUT_TEMPLATE>]    Output template. Defaults to \">>>> FILE_PATH\\nFILE_CONTENT\"\n      --ignore-patterns \u003CIGNORE_PATTERNS>...  Ignore patterns\n      --unignore-patterns \u003CUNIGNORE_PATTERNS>... Unignore patterns. Yek has some built-in ignore patterns, but you can override them here.\n  -t, --tree-header                            Include directory tree header in output (incompatible with JSON output)\n      --tree-only                              Show only the directory tree (no file contents, incompatible with JSON output)\n  -h, --help                                   Print help\n```\n\n#### CLI Options Detail\n\n- `[input-paths]...` - Files or directories to process. Supports glob patterns (quote them to prevent shell expansion)\n- `--no-config` - Skip loading any configuration file\n- `--config-file \u003CCONFIG_FILE>` - Use a specific configuration file path instead of searching for default config files\n- `-V, --version` - Print version information and exit\n- `--max-size \u003CMAX_SIZE>` - Maximum size limit per output (e.g., \"10MB\", \"128K\"). Used in byte mode\n- `--tokens \u003CTOKENS>` - Use token-based counting instead of bytes (e.g., \"128k\", \"100\"). Enables token mode\n- `--json` - Output results in JSON format instead of text\n- `--debug` - Enable debug logging for troubleshooting\n- `--line-numbers` - Include line numbers in the output for each file\n- `--output-dir [\u003COUTPUT_DIR>]` - Directory to write output files. If not specified and not streaming, uses temp directory\n- `--output-name [\u003COUTPUT_NAME>]` - Specific filename for output. If specified, writes to current directory with this name\n- `--output-template [\u003COUTPUT_TEMPLATE>]` - Template for formatting output. Use `FILE_PATH` and `FILE_CONTENT` placeholders\n- `--ignore-patterns \u003CIGNORE_PATTERNS>...` - Additional patterns to ignore (extends .gitignore and defaults)\n- `--unignore-patterns \u003CUNIGNORE_PATTERNS>...` - Patterns to override built-in ignore rules\n- `-t, --tree-header` - Include a directory tree at the beginning of output (incompatible with JSON)\n- `--tree-only` - Show only the directory tree structure without file contents (incompatible with JSON)\n\n## Configuration File\n\nYou can place a file called `yek.yaml` at your project root or pass a custom path via `--config-file`. The configuration file allows you to:\n\n1. Add custom ignore patterns\n2. Define file priority rules for processing order\n3. Add additional binary file extensions to ignore (extends the built-in list)\n4. Configure Git-based priority boost\n5. Define output directory and output filename\n6. Define output template and other output options\n\n### Configurable Options\n\nMost CLI options can be configured in the config file. The following options can be set:\n\n**File Processing:**\n- `max_size` - Size limit (same as `--max-size`)\n- `tokens` - Token count limit (same as `--tokens`)\n- `ignore_patterns` - Additional ignore patterns (same as `--ignore-patterns`)\n- `unignore_patterns` - Override built-in ignores (same as `--unignore-patterns`)\n\n**Output Configuration:**\n- `json` - Enable JSON output (same as `--json`)\n- `debug` - Enable debug mode (same as `--debug`)\n- `line_numbers` - Include line numbers (same as `--line-numbers`)\n- `output_dir` - Output directory (same as `--output-dir`)\n- `output_name` - Output filename (same as `--output-name`)\n- `output_template` - Output template (same as `--output-template`)\n- `tree_header` - Include directory tree header (same as `--tree-header`)\n- `tree_only` - Show only directory tree (same as `--tree-only`)\n\n**Config-only Options:**\n- `priority_rules` - File priority rules (config file only)\n- `binary_extensions` - Additional binary file extensions (config file only)\n- `git_boost_max` - Maximum Git-based priority boost (config file only)\n\n> [!NOTE]\n> Some CLI options like `--no-config`, `--config-file`, and `--version` are CLI-only and cannot be set in config files.\n\n### Example `yek.yaml`\n\nYou can also use `yek.toml` or `yek.json` instead of `yek.yaml`.\n\nThis is optional, you can configure the `yek.yaml` file at the root of your project.\n\n```yaml\n# Add patterns to ignore (in addition to .gitignore)\nignore_patterns:\n  - \"ai-prompts\u002F**\"\n  - \"__generated__\u002F**\"\n\n# Configure Git-based priority boost (optional)\ngit_boost_max: 50 # Maximum score boost based on Git history (default: 100)\n\n# Define priority rules for processing order\n# Higher scores are processed first\npriority_rules:\n  - score: 100\n    pattern: \"^src\u002Flib\u002F\"\n  - score: 90\n    pattern: \"^src\u002F\"\n  - score: 80\n    pattern: \"^docs\u002F\"\n\n# Add additional binary file extensions to ignore\n# These extend the built-in list (.jpg, .png, .exe, etc.)\nbinary_extensions:\n  - \".blend\" # Blender files\n  - \".fbx\" # 3D model files\n  - \".max\" # 3ds Max files\n  - \".psd\" # Photoshop files\n\n# Output configuration\nmax_size: \"128K\"           # Size limit (can also use tokens: \"100k\")\njson: false                # Enable JSON output\ndebug: false               # Enable debug logging\nline_numbers: false        # Include line numbers in output\ntree_header: false         # Include directory tree at start\n\n# Define output directory\noutput_dir: \u002Ftmp\u002Fyek\n\n# Define output filename (writes to current directory with this name)\noutput_name: yek-output.txt\n\n# Define output template.\n# FILE_PATH and FILE_CONTENT are expected to be present in the template.\noutput_template: \"FILE_PATH\\n\\nFILE_CONTENT\"\n```\n\n## Performance\n\n`yek` is fast. It's written in Rust and does many things in parallel to speed up processing.\n\nHere is a benchmark comparing it to [Repomix](https:\u002F\u002Fgithub.com\u002Fyamadashy\u002Frepomix) serializing the [Next.js](https:\u002F\u002Fgithub.com\u002Fvercel\u002Fnext.js) project:\n\n```bash\ntime yek\nExecuted in    5.19 secs    fish           external\n   usr time    2.85 secs   54.00 micros    2.85 secs\n   sys time    6.31 secs  629.00 micros    6.31 secs\n```\n\n```bash\ntime repomix\nExecuted in   22.24 mins    fish           external\n   usr time   21.99 mins    0.18 millis   21.99 mins\n   sys time    0.23 mins    1.72 millis    0.23 mins\n```\n\n`yek` is **230x faster** than `repomix`.\n\n## Roadmap\n\nSee [proposed features](https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\u002Fissues?q=type:%22Feature%22). I am open to accepting new feature requests. Please write a detailed proposal to discuss new features.\n\n## Alternatives\n\n- [Repomix](https:\u002F\u002Fgithub.com\u002Fyamadashy\u002Frepomix): A tool to serialize a repository into a single file in a similar way to `yek`.\n- [Aider](https:\u002F\u002Faider.chat): A full IDE like experience for coding using AI\n\n## License\n\n[MIT](LICENSE)\n\n[^1]: `yek` is not \"blazingly\" fast. It's just fast, as fast as your computer can be.\n","# `yek`\n\n一款基于 Rust 的快速工具[^1]，用于将仓库或目录中的文本文件序列化，以便供大语言模型使用。\n\n默认情况下：\n\n- 使用 `.gitignore` 规则跳过不需要的文件。\n- 利用 Git 历史记录推断哪些文件更为重要。\n- 自动推断额外的忽略模式（如二进制文件、大文件等）。\n- 自动检测输出是否被管道重定向，并以流式方式输出内容，而非写入文件。\n- 支持在单个命令中处理多个目录。\n- 支持通配符模式和单独选择文件。\n- 可通过 `yek.yaml` 配置文件进行自定义。\n\nYek 在波斯语中意为“一”。\n\n假设你有一个如下简单的仓库结构：\n\n```\n.\n├── README.md\n├── src\n│   ├── main.rs\n│   └── utils.rs\n└── tests\n    └── test.rs\n```\n\n在该目录下运行 `yek` 将生成一个单独的文件，并将其写入临时目录，内容如下：\n\n```txt\n>>>> README.md\n... 内容 ...\n>>>> tests\u002Ftest.rs\n... 内容 ...\n>>>> src\u002Futils.rs\n... 内容 ...\n>>>> src\u002Fmain.rs\n... 内容 ...\n```\n\n> [!NOTE]  \n> `yek` 会优先将较重要的文件放在输出的最后。这对于大语言模型的使用非常有用，因为大语言模型通常更关注上下文中后出现的内容。\n\n## 安装\n\n请根据你的平台选择合适的安装方法：\n\n### 类 Unix 系统（macOS、Linux）\n\n\u003C!-- UNIX_INSTALLATION_BEGIN -->\n\n```bash\ncurl -fsSL https:\u002F\u002Fazimi.me\u002Fyek.sh | bash\n```\n\n\u003C!-- UNIX_INSTALLATION_END -->\n\n适用于 Windows（PowerShell）：\n\n\u003C!-- WINDOWS_INSTALLATION_BEGIN -->\n\n```powershell\nirm https:\u002F\u002Fazimi.me\u002Fyek.ps1 | iex\n```\n\n\u003C!-- WINDOWS_INSTALLATION_END -->\n\n\u003Cdetails>\n\u003Csummary style=\"cursor: pointer;\">从源码构建\u003C\u002Fsummary>\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\ncd yek\ncargo install --path .\n```\n\n\u003C\u002Fdetails>\n\n## 使用\n\n`yek` 具有合理的默认设置，你只需在目录中运行 `yek` 即可序列化整个仓库。它会将仓库中的所有文件序列化并写入一个临时文件，文件路径会在控制台打印出来。\n\n### 示例\n\n处理当前目录并写入临时目录：\n\n```bash\nyek\n```\n\n将输出通过管道复制到剪贴板（macOS）：\n\n```bash\nyek src\u002F | pbcopy\n```\n\n将最大输出大小限制为 128K 个 token：\n\n```bash\nyek --tokens 128k\n```\n\n> [!NOTE]\n> `yek` 会移除任何无法容纳在限制上下文大小内的文件，并尽量保留更重要的文件。\n\n```bash\nyek --max-size 100KB --output-dir \u002Ftmp\u002Fyek src\u002F\n```\n\n处理多个目录：\n\n```bash\nyek src\u002F tests\u002F\n```\n\n处理多个文件：\n\n```bash\nyek file1.txt file2.txt file3.txt\n```\n\n使用通配符模式：\n\n```bash\nyek \"src\u002F**\u002F*.ts\"\n```\n\n```bash\nyek \"src\u002Fmain.rs\" \"tests\u002F*.rs\" \"docs\u002FREADME.md\"\n```\n\n> [!NOTE]\n> 使用通配符模式时，请务必用引号括起来，以防止 shell 展开。\n\n### CLI 参考\n\n```bash\nyek --help\n用法：yek [选项] [输入路径]...\n\n参数：\n  [输入路径]...                要处理的文件和\u002F或目录\n\n选项：\n      --no-config                              不使用配置文件\n      --config-file \u003CCONFIG_FILE>              配置文件路径\n  -V, --version                                打印 yek 版本信息\n      --max-size \u003CMAX_SIZE>                    每个分块的最大大小。例如：“10MB”或“128K”，或者在使用 token 计数模式时，“100”或“128K” [默认值：10MB]\n      --tokens \u003CTOKENS>                        使用 token 模式代替字节模式\n      --json                                   启用 JSON 输出\n      --debug                                  启用调试输出\n      --line-numbers                           在输出中包含行号\n      --output-dir [\u003COUTPUT_DIR>]              输出目录。如果未提供且标准输出是 TTY，则使用临时目录\n      --output-name [\u003COUTPUT_NAME>]            输出文件名。如果指定，则将输出写入当前目录下的该文件\n      --output-template [\u003COUTPUT_TEMPLATE>]    输出模板。默认为 “>>>> 文件路径\\n文件内容”\n      --ignore-patterns \u003CIGNORE_PATTERNS>...  忽略模式\n      --unignore-patterns \u003CUNIGNORE_PATTERNS>... 取消忽略某些模式。yek 有一些内置的忽略模式，但你可以在这里覆盖它们。\n  -t, --tree-header                            在输出中包含目录树头信息（与 JSON 输出不兼容）\n      --tree-only                              只显示目录树结构（不包含文件内容，与 JSON 输出不兼容）\n  -h, --help                                   打印帮助信息\n```\n\n#### CLI 选项详解\n\n- `[输入路径]...` - 要处理的文件或目录。支持通配符模式（请用引号括起来以防止 shell 展开）。\n- `--no-config` - 跳过加载任何配置文件。\n- `--config-file \u003CCONFIG_FILE>` - 使用指定的配置文件路径，而不是搜索默认配置文件。\n- `-V, --version` - 打印版本信息并退出。\n- `--max-size \u003CMAX_SIZE>` - 每次输出的最大大小限制（例如：“10MB”、“128K”）。在字节模式下使用。\n- `--tokens \u003CTOKENS>` - 使用基于 token 的计数方式，而不是字节计数（例如：“128k”、“100”）。启用 token 模式。\n- `--json` - 将结果以 JSON 格式输出，而不是文本格式。\n- `--debug` - 启用调试日志以进行故障排除。\n- `--line-numbers` - 在每个文件的输出中包含行号。\n- `--output-dir [\u003COUTPUT_DIR>]` - 用于写入输出文件的目录。如果未指定且未进行流式输出，则使用临时目录。\n- `--output-name [\u003COUTPUT_NAME>]` - 指定输出文件名。如果指定，则会将输出写入当前目录下的该文件。\n- `--output-template [\u003COUTPUT_TEMPLATE>]` - 用于格式化输出的模板。可以使用 `FILE_PATH` 和 `FILE_CONTENT` 占位符。\n- `--ignore-patterns \u003CIGNORE_PATTERNS>...` - 额外的忽略模式（扩展 .gitignore 和默认规则）。\n- `--unignore-patterns \u003CUNIGNORE_PATTERNS>...` - 用于覆盖内置忽略规则的模式。\n- `-t, --tree-header` - 在输出开头包含目录树结构（与 JSON 不兼容）。\n- `--tree-only` - 只显示目录树结构，不包含文件内容（与 JSON 不兼容）。\n\n## 配置文件\n\n你可以在项目根目录下放置名为 `yek.yaml` 的文件，或者通过 `--config-file` 参数指定自定义路径。配置文件允许你：\n\n1. 添加自定义的忽略模式。\n2. 定义文件优先级规则以控制处理顺序。\n3. 添加额外的二进制文件扩展名以进行忽略（扩展内置列表）。\n4. 配置基于 Git 的优先级提升机制。\n5. 定义输出目录和输出文件名。\n6. 定义输出模板及其他输出选项。\n\n### 可配置选项\n\n大多数 CLI 选项都可以在配置文件中进行配置。以下选项可以设置：\n\n**文件处理：**\n- `max_size` - 大小限制（与 `--max-size` 相同）\n- `tokens` - 令牌数量限制（与 `--tokens` 相同）\n- `ignore_patterns` - 额外的忽略模式（与 `--ignore-patterns` 相同）\n- `unignore_patterns` - 覆盖内置的忽略规则（与 `--unignore-patterns` 相同）\n\n**输出配置：**\n- `json` - 启用 JSON 输出（与 `--json` 相同）\n- `debug` - 启用调试模式（与 `--debug` 相同）\n- `line_numbers` - 包含行号（与 `--line-numbers` 相同）\n- `output_dir` - 输出目录（与 `--output-dir` 相同）\n- `output_name` - 输出文件名（与 `--output-name` 相同）\n- `output_template` - 输出模板（与 `--output-template` 相同）\n- `tree_header` - 包含目录树标题（与 `--tree-header` 相同）\n- `tree_only` - 仅显示目录树（与 `--tree-only` 相同）\n\n**仅限配置的选项：**\n- `priority_rules` - 文件优先级规则（仅限配置文件）\n- `binary_extensions` - 额外的二进制文件扩展名（仅限配置文件）\n- `git_boost_max` - 基于 Git 的最大优先级提升值（仅限配置文件）\n\n> [!NOTE]\n> 某些 CLI 选项，如 `--no-config`、`--config-file` 和 `--version`，仅适用于命令行，无法在配置文件中设置。\n\n### 示例 `yek.yaml`\n\n你也可以使用 `yek.toml` 或 `yek.json` 替代 `yek.yaml`。\n\n这是可选的，你可以在项目的根目录下配置 `yek.yaml` 文件。\n\n```yaml\n# 添加额外的忽略模式（除了 .gitignore）\nignore_patterns:\n  - \"ai-prompts\u002F**\"\n  - \"__generated__\u002F**\"\n\n# 配置基于 Git 的优先级提升（可选）\ngit_boost_max: 50 # 根据 Git 历史的最大分数提升值（默认：100）\n\n# 定义处理顺序的优先级规则\n# 分数越高，越先被处理\npriority_rules:\n  - score: 100\n    pattern: \"^src\u002Flib\u002F\"\n  - score: 90\n    pattern: \"^src\u002F\"\n  - score: 80\n    pattern: \"^docs\u002F\"\n\n# 添加额外的二进制文件扩展名以供忽略\n# 这些扩展名会扩展内置列表（.jpg、.png、.exe 等）\nbinary_extensions:\n  - \".blend\" # Blender 文件\n  - \".fbx\" # 3D 模型文件\n  - \".max\" # 3ds Max 文件\n  - \".psd\" # Photoshop 文件\n\n# 输出配置\nmax_size: \"128K\"           # 大小限制（也可使用 tokens: \"100k\"）\njson: false                # 启用 JSON 输出\ndebug: false               # 启用调试日志\nline_numbers: false        # 在输出中包含行号\ntree_header: false         # 在开头包含目录树\n\n# 定义输出目录\noutput_dir: \u002Ftmp\u002Fyek\n\n# 定义输出文件名（将写入当前目录并以此命名）\noutput_name: yek-output.txt\n\n# 定义输出模板。\n# 模板中应包含 FILE_PATH 和 FILE_CONTENT。\noutput_template: \"FILE_PATH\\n\\nFILE_CONTENT\"\n```\n\n## 性能\n\n`yek` 非常快速。它使用 Rust 编写，并通过并行处理来加速任务。\n\n以下是将其与 [Repomix](https:\u002F\u002Fgithub.com\u002Fyamadashy\u002Frepomix) 对比的基准测试，两者都对 [Next.js](https:\u002F\u002Fgithub.com\u002Fvercel\u002Fnext.js) 项目进行了序列化：\n\n```bash\ntime yek\n执行时间    5.19 秒    fish           外部\n   用户时间    2.85 秒   54.00 微秒    2.85 秒\n   系统时间    6.31 秒  629.00 微秒    6.31 秒\n```\n\n```bash\ntime repomix\n执行时间   22.24 分钟    fish           外部\n   用户时间   21.99 分钟    0.18 毫秒   21.99 分钟\n   系统时间    0.23 分钟    1.72 毫秒    0.23 分钟\n```\n\n`yek` 比 `repomix` 快 **230 倍**。\n\n## 路线图\n\n请参阅 [拟议的功能](https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\u002Fissues?q=type:%22Feature%22)。我欢迎新的功能请求。请提交详细提案以讨论新功能。\n\n## 替代方案\n\n- [Repomix](https:\u002F\u002Fgithub.com\u002Fyamadashy\u002Frepomix)：一款工具，可将仓库序列化为单个文件，方式与 `yek` 类似。\n- [Aider](https:\u002F\u002Faider.chat)：一款使用 AI 的全功能 IDE 式编码体验\n\n## 许可证\n\n[MIT](LICENSE)\n\n[^1]: `yek` 并非“极速”运行。它只是足够快，具体速度取决于你的计算机性能。","# yek 快速上手指南\n\n`yek` 是一个基于 Rust 开发的高性能工具，专为将代码仓库或目录中的文本文件序列化为单个文件而设计，旨在优化大语言模型（LLM）的上下文输入。它默认遵循 `.gitignore` 规则，利用 Git 历史智能排序文件重要性，并支持流式输出。\n\n## 环境准备\n\n- **操作系统**：macOS、Linux 或 Windows (PowerShell)\n- **前置依赖**：\n  - 无需额外依赖，二进制文件开箱即用。\n  - 若选择从源码编译，需安装 [Rust](https:\u002F\u002Frustup.rs\u002F) (`cargo`)。\n- **网络要求**：安装脚本需要访问互联网下载最新释放版本。\n\n## 安装步骤\n\n根据你的操作系统选择以下一种方式进行安装：\n\n### macOS \u002F Linux\n使用官方一键安装脚本：\n```bash\ncurl -fsSL https:\u002F\u002Fazimi.me\u002Fyek.sh | bash\n```\n\n### Windows (PowerShell)\n使用 PowerShell 一键安装脚本：\n```powershell\nirm https:\u002F\u002Fazimi.me\u002Fyek.ps1 | iex\n```\n\n### 从源码编译 (可选)\n如果你希望构建最新版本或使用自定义配置：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\ncd yek\ncargo install --path .\n```\n\n## 基本使用\n\n`yek` 设计了合理的默认值，通常只需一条命令即可开始工作。\n\n### 1. 序列化当前目录\n在当前项目根目录运行以下命令，`yek` 会自动识别文件、忽略无关内容，并将结果写入临时文件，同时在终端打印该文件路径：\n```bash\nyek\n```\n\n### 2. 指定目录或文件\n你可以处理特定目录或多个文件：\n```bash\n# 处理 src 目录\nyek src\u002F\n\n# 处理多个目录\nyek src\u002F tests\u002F\n\n# 处理特定文件\nyek file1.txt file2.rs\n```\n\n### 3. 配合管道使用 (推荐)\n直接将输出传递给剪贴板或其他工具，无需生成中间文件：\n```bash\n# macOS: 直接复制到剪贴板\nyek src\u002F | pbcopy\n\n# Linux (需安装 xclip\u002Fxsel): 复制到剪贴板\nyek src\u002F | xclip -selection clipboard\n```\n\n### 4. 限制输出大小 (适配 LLM 上下文)\n通过 Token 数或文件大小限制输出，`yek` 会优先保留重要文件：\n```bash\n# 限制为 128k tokens\nyek --tokens 128k\n\n# 限制为 100KB\nyek --max-size 100KB\n```\n\n### 5. 查看目录结构\n仅预览将被处理的文件树结构，不包含具体内容：\n```bash\nyek --tree-only\n```\n\n> **提示**：`yek` 会根据 Git 提交历史自动调整文件顺序，将更重要的文件放在输出内容的末尾，以便 LLM 更好地关注核心逻辑。","一位全栈开发者正准备将公司遗留的单体代码库提交给大语言模型，希望获得重构建议并生成技术文档。\n\n### 没有 yek 时\n- **手动筛选耗时费力**：开发者必须手动遍历目录，逐个复制核心业务逻辑文件，同时小心翼翼地避开 `node_modules`、编译产物和大型二进制资源。\n- **上下文窗口浪费**：直接打包整个文件夹会包含大量无关配置和日志文件，迅速占满 LLM 有限的上下文窗口，导致关键代码被截断。\n- **重要信息被淹没**：简单的文件拼接往往按字母顺序排列，导致核心的入口文件（如 `main.rs`）出现在开头，而 LLM 通常对上下文末尾的信息关注度更高，造成理解偏差。\n- **格式混乱难解析**：不同文件的拼接缺乏统一的分隔标记，LLM 难以区分文件边界，容易产生幻觉或混淆不同文件的变量定义。\n\n### 使用 yek 后\n- **智能过滤与排序**：yek 自动依据 `.gitignore` 排除干扰项，并利用 Git 历史智能识别高频修改的核心文件，将其置于输出内容的末尾，完美契合 LLM 的注意力机制。\n- **精准控制输出规模**：通过 `--tokens` 参数，yek 能自动裁剪非关键文件，确保序列化后的内容严格控制在 128K token 以内，既保留精华又避免溢出。\n- **结构化数据流**：yek 生成带有清晰 `>>>> 文件路径` 标记的单一流式文本，让 LLM 能准确识别每个代码块的归属，显著提升代码分析和重构建议的准确性。\n- **一键多目录处理**：只需一条命令即可同时处理 `src\u002F` 和 `tests\u002F` 等多个目录，并将结果直接管道传输给剪贴板或 LLM 接口，极大简化了工作流。\n\nyek 通过将杂乱的代码库转化为大模型“最爱读”的结构化上下文，让开发者从繁琐的数据预处理中解放出来，专注于高价值的架构决策。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmohsen1_yek_dfcfe248.png","mohsen1","Mohsen Azimi","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmohsen1_a0a6c6bf.jpg","♥ Open Source!\r\n\r\nhttps:\u002F\u002Ftwitter.com\u002Fmohsen____",null,"Europe","https:\u002F\u002Fazimi.me","https:\u002F\u002Fgithub.com\u002Fmohsen1",[23,27,31,35,39,43],{"name":24,"color":25,"percentage":26},"Rust","#dea584",93.3,{"name":28,"color":29,"percentage":30},"Shell","#89e051",3.1,{"name":32,"color":33,"percentage":34},"TypeScript","#3178c6",2.7,{"name":36,"color":37,"percentage":38},"PowerShell","#012456",0.6,{"name":40,"color":41,"percentage":42},"Makefile","#427819",0.2,{"name":44,"color":45,"percentage":46},"Ruby","#701516",0.1,2441,65,"2026-04-03T15:55:59","MIT",2,"Linux, macOS, Windows","未说明",{"notes":55,"python":53,"dependencies":56},"该工具是基于 Rust 编写的命令行工具，无需 Python 环境或 GPU。安装方式包括通过脚本一键安装（Unix\u002FWindows）或使用 Cargo 从源码构建。它利用 Git 历史推断文件重要性，并支持 .gitignore 规则。输出默认为文本流，也可配置为 JSON 格式。",[57],"Rust (Cargo)",[59,60,61,62,63],"开发框架","插件","图像","语言模型","Agent",[65,66,67,68,69,70],"ai","cli","large-language-models","llm","rust-lang","serialization","ready","2026-03-27T02:49:30.150509","2026-04-06T08:40:08.097812",[75,80,85,90,95,100],{"id":76,"question_zh":77,"answer_zh":78,"source_url":79},13921,"如何在 yek.yaml 配置文件中启用文件树（--tree-header 或 --tree-only）功能？","该功能已在后续版本中实现。可以通过在配置文件或 CLI 中使用 `--tree-header` 和 `--tree-only` 选项来生成目录树。注意：这两个选项与 JSON 输出格式互斥，且需要经过配置验证。如果您使用的是旧版本二进制文件（如 v0.25.0 之前），可能尚未包含此修复，请尝试更新到最新版本或从源码构建。","https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\u002Fissues\u002F193",{"id":81,"question_zh":82,"answer_zh":83,"source_url":84},13922,"为什么在运行所有测试时 `test_serialize_repo_sort_order` 会失败，但单独运行库测试却通过？","这是一个已知的排序逻辑问题。测试期望文件在优先级相同时按文件名进行字母顺序排序，但当前的 `serialize_repo` 函数仅按优先级和文件索引排序，未处理同优先级下的字母排序。解决方案是修改排序逻辑，将文件名作为次要排序条件。您可以尝试运行 `cargo test lib` 来复现或绕过部分集成测试问题，最终修复需等待代码库更新排序算法。","https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\u002Fissues\u002F100",{"id":86,"question_zh":87,"answer_zh":88,"source_url":89},13923,"Yek 是否支持默认向 LLM 发送文件树结构以增强上下文？","是的，该功能已通过 PR #150 完全实现。现在可以使用两个新的 CLI 标志：`--tree-header`（在输出头部包含文件树）和 `--tree-only`（仅输出文件树）。这些选项也可以写入配置文件，但在配置验证中会强制检查互斥性以及与 JSON 格式的兼容性。注意：目前主要在 MacOS 上经过测试，Windows 用户可能需要自行验证。","https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\u002Fissues\u002F130",{"id":91,"question_zh":92,"answer_zh":93,"source_url":94},13924,"如何指定具体的文件列表（而不是整个目录）让 Yek 处理？","目前 Yek 主要设计用于处理目录，直接指定文件列表的功能尚未完全支持，但已被标记为功能请求。维护者表示添加此功能很简单。临时解决方案是确保输入路径明确，或者等待后续版本更新以支持类似 `yek file1.js file2.md` 的直接文件输入方式。当前版本可能在处理混合文件参数时无法正确识别文件名归属。","https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\u002Fissues\u002F107",{"id":96,"question_zh":97,"answer_zh":98,"source_url":99},13925,"Yek 支持哪些输出格式？是否可以自定义模板？","Yek 现已支持多种输出格式。特别是在 v0.14.0 版本中修复了相关问题，并引入了 JSON 输出选项。维护者认为提供 JSON 格式是最合理的方案，因为用户可以轻松地使用 Unix 工具或其他脚本将 JSON 转换为其他所需格式，从而避免在工具内部进行复杂的字符串解析。您可以通过配置选择输出格式，以便更好地融入管道链（pipe chain）工作流。","https:\u002F\u002Fgithub.com\u002Fmohsen1\u002Fyek\u002Fissues\u002F43",{"id":101,"question_zh":102,"answer_zh":103,"source_url":79},13926,"为什么我在命令行中能用的参数在 yek.yaml 配置文件中不起作用？","这通常是因为您使用的预编译二进制版本过旧，尚未包含最新的配置解析功能。例如，`--tree-header` 等参数在较新版本中才支持写入配置文件。如果您使用的是 v0.25.0 或更早的版本，建议检查是否有更新的 release，或者直接从源代码构建最新版本的 Yek，以确保配置文件功能与 CLI 保持一致。",[105,110,115,120,124,128,132,136,140,144,148,153,157,162,167,172,177,182,187,192],{"id":106,"version":107,"summary_zh":108,"released_at":109},74503,"v0.25.0","## [0.25.0] - 2025年9月25日\n\n","2025-09-25T16:46:17",{"id":111,"version":112,"summary_zh":113,"released_at":114},74504,"v0.24.0","## [0.24.0] - 2025年9月25日\n\n","2025-09-25T05:47:01",{"id":116,"version":117,"summary_zh":118,"released_at":119},74505,"v0.23.0","\r\n## [0.23.0] - 2025-09-17\r\n[0.23.0]: https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.21.0...v0.23.0\r\n### 错误修复\r\n\r\n- 修复 `Windows` 安装脚本\r\n- 改进令牌解析，以处理多字节字符和表情符号\r\n\r\n### 功能特性\r\n\r\n- 添加 `--output-name` 选项，用于指定输出文件名\r\n\r\n### 其他任务\r\n\r\n- 将 serde 从 1.0.217 升级到 1.0.218\r\n- 将 serde_json 从 1.0.138 升级到 1.0.139\r\n- 将 bytesize 从 1.3.2 升级到 2.0.0\r\n- 将 anyhow 从 1.0.95 升级到 1.0.96\r\n- 将 clap 从 4.5.30 升级到 4.5.31\r\n- 将 serde 从 1.0.218 升级到 1.0.219\r\n- 将 config 从 0.15.8 升级到 0.15.11\r\n- 将 anyhow 从 1.0.96 升级到 1.0.97\r\n- 将 chrono 从 0.4.39 升级到 0.4.40\r\n- 将 serde_json 从 1.0.139 升级到 1.0.140\r\n- 将 bytesize 从 2.0.0 升级到 2.0.1\r\n- 将 grcov 从 0.8.20 升级到 0.8.24\r\n- 将 time 从 0.3.37 升级到 0.3.41\r\n- 将 tempfile 从 3.17.1 升级到 3.19.1\r\n\r\n### CI\r\n\r\n- 添加基于版本的发布检查\r\n\r\n## [0.21.0] - 2025-02-23\r\n[0.21.0]: https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.20.0...v0.21.0\r\n### 错误修复\r\n\r\n- e2e 测试中的通配符模式处理\r\n\r\n### 文档\r\n\r\n- 更新 README，加入对通配符模式和文件选择的支持\r\n\r\n### 功能特性\r\n\r\n- 在输入路径中支持通配符模式\r\n\r\n### 测试\r\n\r\n- 添加针对通配符模式支持的全面测试\r\n\r\n### CI\r\n\r\n- 在主分支上运行发布和发布作业\r\n- 仅在标签推送时运行发布和发布\r\n- 当标签合并到主分支时触发发布\r\n\r\n","2025-09-17T17:36:08",{"id":121,"version":122,"summary_zh":18,"released_at":123},74506,"main","2025-02-23T01:51:07",{"id":125,"version":126,"summary_zh":18,"released_at":127},74507,"v0.20.0","2025-02-22T23:54:42",{"id":129,"version":130,"summary_zh":18,"released_at":131},74508,"v0.19.0","2025-02-19T02:08:58",{"id":133,"version":134,"summary_zh":18,"released_at":135},74509,"v0.18.0","2025-02-14T07:08:31",{"id":137,"version":138,"summary_zh":18,"released_at":139},74510,"v0.17.0","2025-02-06T02:08:11",{"id":141,"version":142,"summary_zh":18,"released_at":143},74511,"v0.16.0","2025-01-30T08:23:47",{"id":145,"version":146,"summary_zh":18,"released_at":147},74512,"v0.15.0","2025-01-29T20:05:15",{"id":149,"version":150,"summary_zh":151,"released_at":152},74513,"v0.14.0","## [0.14.0] - 2025-01-29\n[0.14.0]: https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.13.9...v0.14.0\n### Bug修复\n\n- 确保文件仅被处理一次，并修复优先级测试\n- 清理导入并移除重复项\n- 在 is_effectively_absolute 中添加 #[allow(dead_code)]\n- 为 MUSL 目标添加 musl-tools 安装\n- 移除测试中 Windows 驱动器路径的前导斜杠\n- 为 macOS 构建添加 OpenSSL 设置\n- 为 MUSL 构建添加 OpenSSL 设置\n- 使用 muslrust 容器进行 MUSL 构建\n- 为 MUSL 目标添加 OpenSSL 静态构建\n- 为基准测试添加输出目录\n- 改进 macOS 构建的 OpenSSL 配置\n- 从基准测试命令中移除不支持的 --output-dir 标志\n- 为所有 Linux 目标添加 OpenSSL 设置\n- 添加 YEK_OUTPUT_DIR 环境变量用于基准测试\n- 将输出目录配置添加到基准测试中\n- 更新 MUSL 构建的 OpenSSL 设置\n- 解决死代码警告和 MUSL 交叉编译问题\n- 更新 CI 中的基准测试组，使其与实际基准测试定义一致\n- 修正 yek.toml 中的 TOML 格式\n- 在 yek.toml 中添加必需的 pattern 字段\n- 修正 yek.toml 中 priority_rules 的格式\n- 确保 output_dir 具有优先级，并正确设置流标志\n- 在测试中添加 git 配置\n\n### 文档\n\n- 更新 README 以反映 YAML 配置的使用\n- 修复 yek.yaml 示例\n\n### 功能\n\n- 添加多架构支持并修复 OpenSSL 问题\n- 在非流式输出时打印输出目录路径\n- 改进输出信息和日志记录\n- 引入 config.rs 并集成 ClapConfigFile\n- 添加 priority.rs 用于高级文件评分\n\n### 杂项任务\n\n- 将大型列表移至 defaults.rs\n- 整理代码结构\n- 删除死代码\n- 将 git-cliff 从 1.4.0 升级至 2.3.0\n- 将 clap 从 4.5.26 升级至 4.5.27\n- 将 byte-unit 从 4.0.19 升级至 5.1.6\n- 清理 tokenizer 分支遗留的 Git 文件\n- PR 审查\n- 更新 .gitignore 并添加 VSCode 启动配置\n- 重构 Cargo 依赖（支持 config-file、JSON、YAML 等）\n- 添加示例 yek.yaml 配置\n- 修复 parallel.rs 中的 clippy 问题\n- 在发布时添加 majo\u002Fminor 版本号\n\n### 性能\n\n- 添加新的序列化基准测试，使用 FullYekConfig\n\n### 重构\n\n- 将大小解析测试移至专用测试文件\n- 将 normalize_path 测试移至专用文件\n- 移除不必要的 info 日志\n- 精简 defaults.rs，移除旧的二进制检查\n- 更新 lib 和 parallel 代码，使其依赖于 FullYekConfig\n- 更新 main.rs 以使用新的配置系统\n- 将 map_or 替换为 is_some_and\n\n### 测试\n\n- 添加大量端到端和集成测试\n- 移除遗留的集成测试，添加新的端到端配置测试\n\n### 基准测试\n\n- 添加 bench.toml\n- 修复单个小文件基准测试\n\n### Cargo\n\n- 添加 git 2\n\n### CI\n\n- 暂时强制发布\n- 改进发布流程\n- 在发布中复用 ci.yaml 中的构建步骤\n- 第二次尝试，修复发布流程\n- 为构建作业添加 fail-fast: false\n- 允许手动触发发布\n- 合并构建和发布流程\n- 在为每个目标构建之前添加 rustup target add\n- 恢复基准测试\n- 使用 cross","2025-01-29T12:48:05",{"id":154,"version":155,"summary_zh":18,"released_at":156},74514,"v0.13.9","2025-01-29T19:56:56",{"id":158,"version":159,"summary_zh":160,"released_at":161},74515,"v0.13.8","## 变更内容\n* ci：由 @mohsen1 在 https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fpull\u002F22 中提交的更简单的发布脚本\n* 在流式模式下也使用 .gitignore 文件，由 @mohsen1 在 https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fpull\u002F28 中提交\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.13.6...v0.13.8","2025-01-20T18:55:14",{"id":163,"version":164,"summary_zh":165,"released_at":166},74516,"v0.13.6","## 变更内容\n* 修复：@bbrewington 在 https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fpull\u002F21 中修复了指向 repomix 仓库的失效链接。\n* 修复：@mohsen1 在 https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fpull\u002F16 中修复了流模式下的分块优先级问题。\n\n## 新贡献者\n* @bbrewington 在 https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fpull\u002F21 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.13.5...v0.13.6","2025-01-19T17:03:01",{"id":168,"version":169,"summary_zh":170,"released_at":171},74517,"v0.13.5","**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.13.4...v0.13.5","2025-01-19T12:05:27",{"id":173,"version":174,"summary_zh":175,"released_at":176},74518,"v0.13.4","**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.13.3...v0.13.4","2025-01-19T11:31:59",{"id":178,"version":179,"summary_zh":180,"released_at":181},74519,"v0.13.3","## [0.13.3](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.13.2...v0.13.3) (2025-01-19)\n\n\n### 错误修复\n\n* 更新 Formula 版本以匹配项目版本 ([54142a7](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002F54142a797642e8ce3eab8ed9b971ea70cf416f64))\n\n\n\n","2025-01-19T10:35:49",{"id":183,"version":184,"summary_zh":185,"released_at":186},74520,"v0.13.2","## [0.13.2](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.13.1...v0.13.2) (2025-01-19)\n\n\n### 错误修复\n\n* 在 `.gitignore` 匹配中正确处理 Windows 路径 ([78a384c](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002F78a384c0a1ace4e24adabcc3e2a79a8804f6b9d5))\n* 在 `.gitignore` 匹配中正确处理 Windows 路径 ([b21d45a](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002Fb21d45a006ff66279dac30e9319771d69696ae5b))\n\n\n\n","2025-01-19T10:26:42",{"id":188,"version":189,"summary_zh":190,"released_at":191},74521,"v0.13.0","# [0.13.0](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.12.5...v0.13.0) (2025-01-19)\n\n\n### Bug Fixes\n\n* cross-platform SHA256 computation and artifact handling ([c729f28](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002Fc729f28c18266aca021cc26b001f257a1526ecab))\n* improve version parsing and changelog handling ([375c4e2](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002F375c4e2976dfc49b0dc0f74d8da36a53907214e9))\n* include all files in release commit ([e2ce188](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002Fe2ce188b3534713633831f3321082571d04b321b))\n* make tag cleanup cross-platform compatible ([57bdcaf](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002F57bdcaf3618b73488d938c9164dc065b91f2c291))\n* pr feedback ([f1f43f9](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002Ff1f43f928e15a171e0a30a19b3b95ffdf9e5e7ee))\n\n\n### Features\n\n* implement tag-based release workflow ([1c0d386](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002F1c0d3867002ae4a98ba51ee7e76ab05800684453))\n\n\n\n","2025-01-19T09:07:39",{"id":193,"version":194,"summary_zh":195,"released_at":196},74522,"v0.12.5","## [0.12.5](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcompare\u002Fv0.12.4...v0.12.5) (2025-01-19)\n\n\n### Reverts\n\n* Revert \"fix: use GITHUB_TOKEN for authentication in CI workflow\" ([2c8e28a](https:\u002F\u002Fgithub.com\u002Fbodo-run\u002Fyek\u002Fcommit\u002F2c8e28a19ae4327291c8cd46b9fbea887b520b0c))\n\n\n\n","2025-01-19T07:43:24",[198,207,215,223,231,243],{"id":199,"name":200,"github_repo":201,"description_zh":202,"stars":203,"difficulty_score":204,"last_commit_at":205,"category_tags":206,"status":71},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[59,61,63],{"id":208,"name":209,"github_repo":210,"description_zh":211,"stars":212,"difficulty_score":51,"last_commit_at":213,"category_tags":214,"status":71},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,"2026-04-05T23:32:43",[59,63,62],{"id":216,"name":217,"github_repo":218,"description_zh":219,"stars":220,"difficulty_score":51,"last_commit_at":221,"category_tags":222,"status":71},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[59,61,63],{"id":224,"name":225,"github_repo":226,"description_zh":227,"stars":228,"difficulty_score":51,"last_commit_at":229,"category_tags":230,"status":71},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[59,62],{"id":232,"name":233,"github_repo":234,"description_zh":235,"stars":236,"difficulty_score":51,"last_commit_at":237,"category_tags":238,"status":71},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[61,239,240,60,63,241,62,59,242],"数据工具","视频","其他","音频",{"id":244,"name":245,"github_repo":246,"description_zh":247,"stars":248,"difficulty_score":204,"last_commit_at":249,"category_tags":250,"status":71},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[63,61,59,62,241]]