ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Repomix 使用指南:将整个代码仓库打包成单一 AI 友好文件,高效喂给 Claude、ChatGPT 与 Gemini

2026/9/12 16:56:01 拓冰建站 浏览量
Repomix 使用指南:将整个代码仓库打包成单一 AI 友好文件,高效喂给 Claude、ChatGPT 与 Gemini Repomix 使用指南将整个代码仓库打包成单一 AI 友好文件高效喂给 Claude、ChatGPT 与 Gemini【免费下载链接】repomix Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more.项目地址: https://gitcode.com/GitHub_Trending/rep/repomix导读Repomix 是当前仓库GitHub_Trending/rep/repomix的核心工具它能将本地或远程的整个代码仓库压缩打包为单个XML、Markdown、JSON 或纯文本文件专为大语言模型LLM消费而设计。本文将完整讲解 Repomix 的核心特性、CLI 安装与常用命令、Docker 用法、输出格式与配置文件写法并结合仓库源码深入解释其 Secretlint 安全扫描、Git 兼容、远程仓库处理与 Token 计数等底层实现。读完你即可把 Repomix 接入自己的 AI 编码工作流让 LLM 在完整代码上下文中完成代码审查、重构、Bug 排查与文档生成。Repomix 是什么为 LLM 而生的代码打包器Repomix 是一个将整个代码库打包进单个 AI 友好文件的强大工具。无论你正在进行代码审查、重构还是需要让 AI 助手辅助你的项目Repomix 都能轻松地将仓库的全部上下文共享给 AI 工具Claude、ChatGPT、Gemini、Grok 等。它的核心能力体现在四个设计目标上见 首页文档 的 feature 定义为 AI 优化将代码库格式化得易于 AI 理解与处理Git 兼容自动遵守你的.gitignore规则聚焦安全内置集成 Secretlint检测匹配已知凭据格式的文件并将其排除在输出之外Token 计数提供每个文件及整个仓库的 Token 数量统计帮助你评估 LLM 上下文窗口的占用情况。对应到源码这四个特性分别落在 文件收集与忽略处理、Secretlint 安全检测、Token 计数 与 输出生成 等模块中。快速开始把代码库交给 AI 的完整流程使用 Repomix 生成打包文件默认repomix-output.xml后你可以把它发送给 AI 助手如 ChatGPT、Claude并附上一条这样的指令此文件包含仓库中的所有文件合并为一个文件。 我想对代码进行重构请先审查它。AI 将分析你的整个代码库并给出详细结论当你讨论具体修改时AI 可以帮你生成代码。借助 Claude Artifacts 等功能你甚至能一次性获得多个相互依赖的文件为什么选择 RepomixRepomix 的优势在于它能够与 ChatGPT、Claude、Gemini、Grok 等订阅制服务协同工作而无需顾虑成本同时提供完整的代码库上下文消除了逐一浏览文件的必要让分析更快、往往也更精准。有了完整代码库作为上下文Repomix 可以支撑大量应用场景包括实现规划、Bug 调查、第三方库安全检查、文档自动生成等。使用 CLI 工具Repomix 可作为一个命令行工具使用提供强大的功能与丰富的自定义选项。CLI 工具可以访问私有仓库因为它使用的是你本地安装的 Git。安装与快速启动可以在项目目录中不安装、即刻体验npx repomixlatest或者全局安装以便重复使用# 使用 npm 安装 npm install -g repomix # 或使用 yarn yarn global add repomix # 或使用 bun bun add -g repomix # 或使用 HomebrewmacOS/Linux brew install repomix # 然后在任意项目目录中运行 repomix就这么简单Repomix 会在当前目录生成repomix-output.xml文件其中包含整个仓库、且格式适合 AI 消费的内容。环境前提根据 package.json 的engines字段运行 Repomix 需要 Node.js 22.0.0或 yarn 1.22.22。常用操作命令打包整个仓库repomix打包指定目录repomix path/to/directory使用 glob 模式只打包特定的文件或目录glob 语法遵循 fast-glob 规范repomix --include src/**/*.ts,**/*.md排除特定文件或目录repomix --ignore **/*.log,tmp/打包远程仓库# 使用缩写格式 npx repomix --remote yamadashy/repomix # 使用完整 URL支持指定分支与路径 npx repomix --remote https://github.com/yamadashy/repomix npx repomix --remote https://github.com/yamadashy/repomix/tree/main # 使用某个 commit 的 URL npx repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1初始化新的配置文件repomix.config.jsonrepomix --init生成打包文件后即可配合 Claude、ChatGPT、Gemini 等生成式 AI 工具使用。使用 Docker如果你希望在隔离环境中运行或偏好容器方式也可以用 Docker基本用法当前目录docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix打包指定目录docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix path/to/directory处理远程仓库并保存到output目录docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote https://github.com/yamadashy/repomixCLI 选项的源码视角所有 CLI 选项都在 src/cli/cliRun.ts 中使用 Commander 注册并按“基础选项 / 输入输出选项 / 输出选项 / 文件选择选项 / 远程仓库选项 / 配置选项 / 安全选项 / Token 计数选项 / MCP / Skill 生成 / 监听模式”等分组。值得注意的细节--output支持-表示直接输出到 stdout--stdout与--output互斥--token-count-tree [threshold]可附带阈值只显示 Token 数不低于该值的文件--token-budget number是 CI/Agent 场景下的硬性守卫当打包输出超过 N 个 Token 时以非零退出码失败输入错误选项时Repomix 会给出语义化建议例如输入exclude会提示--ignore、输入format会提示--style映射表同样位于 src/cli/cliRun.ts。选择输出格式Repomix 支持四种输出风格默认是 XML# XML 格式默认 repomix --style xml # Markdown 格式 repomix --style markdown # JSON 格式 repomix --style json # 纯文本格式 repomix --style plain从 配置 Schema 可以看到每种格式对应的默认输出文件名也不同xml → repomix-output.xml、markdown → repomix-output.md、plain → repomix-output.txt、json → repomix-output.json。各格式的具体生成实现位于 输出样式模块如 markdownStyle.ts、xmlStyle.ts 等。使用配置文件进行个性化定制创建repomix.config.json可保存持久化设置{ output: { style: markdown, filePath: custom-output.md, removeComments: true, showLineNumbers: true, topFilesLength: 10 }, ignore: { customPatterns: [*.test.ts, docs/**] } }配置项与默认值详解结合 src/config/configSchema.ts 中的默认 Schema各配置分组的含义与默认值如下配置分组键默认值说明inputmaxFileSize50MB单个文件的大小上限字节超过则跳过outputfilePathrepomix-output.xml输出文件路径outputstylexml输出格式xml / markdown / json / plainoutputfilePathStyletarget-relative输出中文件路径的展示方式outputremoveCommentsfalse打包前剥离所有代码注释outputremoveEmptyLinesfalse删除所有文件中的空行outputcompressfalse使用 Tree-sitter 解析提取核心结构类、函数、接口outputshowLineNumbersfalse为输出中的每行添加行号前缀outputtopFilesLength5摘要中展示的最大文件数量outputfileSummarytrue是否包含文件摘要部分outputdirectoryStructuretrue是否包含目录树可视化outputgit.includeDiffsfalse添加 Git diff 区块工作区与暂存区变更outputgit.includeLogsfalse添加 Git 提交历史outputgit.includeLogsCount50随--include-logs包含的最近提交数include数组[]仅包含匹配这些 glob 模式的文件ignoreuseGitignoretrue使用.gitignore规则过滤文件ignoreuseDotIgnoretrue使用.ignore规则过滤文件ignoreuseDefaultPatternstrue应用内置忽略模式node_modules、.git、构建目录等ignorecustomPatterns[]额外的自定义排除模式securityenableSecurityChecktrue是否扫描 API 密钥、密码等敏感数据tokenCountencodingo200k_baseToken 计数的分词器模型如cl100k_base对应 GPT-3.5/4仓库根目录下现成的 repomix.config.json 就是一份真实配置示例你可以对照它理解每个字段的写法——它开启了git.includeDiffs、git.includeLogs并设置了instructionFilePath自定义指令文件见 repomix-instruction.md与headerText输出头部自定义文本。自定义指令与输出结构控制除上述字段外CLI 与配置还支持更多输出控制能力headerText在输出开头加入自定义文本如仓库背景说明、使用注意事项instructionFilePath指向一个包含自定义指令的文件指令会被包含进输出引导 AI 如何理解代码库--no-file-summary/--no-directory-structure/--no-files分别省略文件摘要、目录树、或只生成元数据适合仓库分析场景--include-full-directory-structure即使使用了--include过滤也在“目录结构”部分展示完整仓库树--parsable-style当输出中的代码破坏格式时转义特殊字符以保证 XML/Markdown 合法--split-output size按大小如500kb、2mb将输出拆分为多个编号文件repomix-output.1.xml、repomix-output.2.xml--include-empty-directories在目录结构中包含空文件夹。内置安全机制Secretlint 凭据扫描Repomix 默认开启安全扫描对应配置security.enableSecurityCheck: true。它的实现是在打包前将每个文件的文本内容交给 Secretlint 进行规则匹配凡是命中已知凭据格式如 API Key、密码的文件都会被标记为可疑并从输出中排除。从源码看src/core/security/securityCheck.ts 会把普通文件、Git diff 内容、Git log 历史三类内容统一成SecurityCheckItem以 50 个为一批分发到 worker 线程并行扫描最多 2 个安全 worker见 securityCheck.ts。真正的匹配逻辑位于 securityCheckWorker.ts它加载secretlint/secretlint-rule-preset-recommend规则集对每个文件执行lintSource一旦产生 message 即返回可疑结果——注意日志中不会输出具体 message以防泄露敏感信息本身见 securityCheckWorker.ts。远程仓库处理的底层原理当使用--remote时remoteAction.ts 会先在临时目录获取仓库再对其执行常规打包流程。获取策略有两条路径GitHub 归档下载优先对于 GitHub 仓库且支持归档下载时优先通过归档 API 下载带 60 秒超时与 2 次重试进度实时显示百分比或已下载 MB失败后自动回退到 Git cloneGit clone 兜底非 GitHub 仓库或归档下载失败时使用本机 Git 做浅克隆需要 Git 已安装且在 PATH 中并支持通过--remote-branch指定分支、标签或 commit。处理完成后输出文件会被复制回当前目录临时目录随即清理见 remoteAction.ts。出于安全考虑远程模式下--config必须使用绝对路径避免从克隆下来的仓库加载未审阅的配置远程仓库自带的配置文件默认不被信任只有在交互终端确认或显式传入--remote-trust-config后才会加载。真实用例社区中已有开发者将 Repomix 应用在实际工作流中以下是文档记载的两类典型场景LLM 代码生成工作流开发者使用 Repomix 从现有代码库提取代码上下文再借助 Claude、Aider 等 LLM 进行增量改进、代码审查与文档自动化生成为 LLM 制作“知识包”作者将博客、文档和书籍等原创内容用 Repomix 打包成 LLM 兼容格式让读者通过 AI 驱动的问答系统与其经验进行交互。更多场景可阅读 用例指南。进阶用户指南Repomix 为高级用例提供了大量强大功能以下是官网首页重点推荐的进阶路线MCP Server 指南 —— 集成 Model Context Protocol让 AI 助手直接调用打包能力GitHub Actions 指南 —— 在 CI/CD 工作流中自动化打包代码库代码压缩指南 —— 基于 Tree-sitter 的智能压缩可减少约 70% 的 Token作为库使用 —— 在 Node.js 应用中集成 Repomix自定义指令指南 —— 向输出中添加自定义提示词与指令安全功能指南 —— 深入了解内置 Secretlint 集成与安全检查最佳实践指南 —— 用经过验证的策略优化你的 AI 工作流。如果还需要更多帮助可以查阅完整的 指南索引含安装、命令行选项、远程仓库处理、监听模式等全部章节或直接阅读仓库内的 README.md 与 官方 CLAUDE.md 获取更多示例与源码说明。【免费下载链接】repomix Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more.项目地址: https://gitcode.com/GitHub_Trending/rep/repomix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考