
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/repomixRepomix 是一款将整个代码仓库本地或远程打包为单一 AI 友好文件的命令行工具输出支持 XML、Markdown、JSON、纯文本四种格式专为 Claude、ChatGPT、Gemini、DeepSeek、Perplexity 等大语言模型LLM设计。本文将基于官方日文首页文档结合仓库源码系统讲解 Repomix 的安装、CLI 用法、Docker 运行方式、输出格式、配置定制、高级功能以及底层打包流水线帮助你快速上手并深入理解其工作原理。Repomix 是什么Repomix 的核心使命只有一句话把代码库打包成一个文件默认生成repomix-output.xml方便你把整个仓库的上下文一次性交给 AI 工具。无论是代码审查、重构还是围绕项目提问你都不再需要逐个文件地复制粘贴而是将整个代码库的上下文直接共享给 AI 助手。官方首页文档概括了 Repomix 的四大核心能力见 website/client/src/ja/index.mdAI 优化将代码库格式化为 AI 易于理解与处理的形式Git 友好自动识别.gitignore文件并据此排除相应文件安全优先内置 Secretlint检测与已知凭据格式匹配的文件并从输出中剔除Token 计数统计每个文件及整个代码库的 token 数帮助管理 LLM 上下文窗口限制。这些能力在源码中均有对应实现.gitignore解析在 src/config/defaultIgnore.ts 与文件收集逻辑 src/core/file/fileSearch.ts 中安全检测基于secretlint/core与secretlint/secretlint-rule-preset-recommend依赖见 package.json实现在 src/security 目录Token 计数使用gpt-tokenizer库默认编码o200k_base对应 GPT-4o相关代码见 src/core/metrics/TokenCounter.ts。快速开始一分钟生成 AI 可读的仓库文件在任意项目目录下执行npx repomixlatest该命令会在当前目录生成repomix-output.xml之后的工作流程完全一致——把这个文件直接发给 ChatGPT、Claude 等 AI 助手并附上如下提示词这个文件是将代码库中的文件汇总到一个文件中的产物。 我想进行代码重构请先帮我进行代码审查。AI 读取完整内容后即可展开重构等后续工作。你可以针对具体内容提出需求AI 会据此生成高质量代码在 Claude 中还可以借助 Artifacts 功能一次性输出多个相互依赖的代码文件。为什么选择 RepomixRepomix 的优势在于它可以在你已有的 ChatGPT、Claude、Gemini、Grok 等订阅服务中直接使用无需额外付费由于 AI 掌握了完整代码代码调研不再需要逐个文件探索往往能更快、更准确地给出结果。当整个代码库都作为上下文可用时几乎任何开发任务都可以借助 AI 完成实现方案讨论、Bug 排查、第三方依赖安全性检查、文档生成等。此外从源码结构看Repomix 打包流水线经过并行化设计——文件搜索、收集、安全检测、输出生成与指标计算相互重叠执行见 src/core/packager.ts即使大型仓库也能高效处理。CLI 安装与基本用法CLI 工具可以直接访问私有仓库因为它使用本地安装的 git。安装方式推荐使用npx无需安装直接运行npx repomixlatest也可以全局安装以便重复使用# 使用 npm 安装 npm install -g repomix # 或者使用 yarn yarn global add repomix # 或者使用 bun bun add -g repomix # 或者使用 HomebrewmacOS/Linux brew install repomix # 安装后在任意项目目录下执行 repomix注意根据 package.json 中engines字段Repomix 要求 Node.js 版本不低于 22.0.0。基本操作打包当前目录repomix打包指定目录repomix path/to/directory使用 glob 模式仅包含特定文件或目录语法见 fast-glob 模式规范repomix --include src/**/*.ts,**/*.md排除特定文件或目录repomix --ignore **/*.log,tmp/远程仓库打包CLI 支持直接打包 GitHub 远程仓库需要本地 git 支持# 使用简写形式 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远程处理逻辑位于 src/cli/actions/remoteAction.ts。从 src/cli/cliRun.ts 的实现可以看出位置参数中的owner/repo简写会被自动探测先确认本地路径不存在再通过git ls-remote探针确认仓库可达因此你也可以直接执行repomix user/repo还可以通过--remote-branch指定分支、标签或 commit。初始化配置文件repomix --init该命令生成默认的repomix.config.json配置文件实现见 src/cli/actions/initAction.ts。生成的打包文件可直接用于 Claude、ChatGPT、Gemini 等生成式 AI 工具。使用 Docker 运行Docker 运行适合需要在隔离环境中执行 Repomix 的场景容器镜像为ghcr.io/yamadashy/repomix# 基本用法将当前目录挂载到容器 /app 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/repomix输出格式XML / Markdown / JSON / PlainRepomix 支持四种输出格式通过--style参数选择。不同 LLM 对格式的适应度不同请按需选用# XML 格式默认 repomix --style xml # Markdown 格式 repomix --style markdown # JSON 格式 repomix --style json # 纯文本格式 repomix --style plain默认输出文件名为repomix-output.xml可通过-o, --output参数指定其他文件名如-o custom-output.md。四种风格的渲染实现分别位于 src/core/output/outputStyles/markdownStyle.ts、plainStyle.ts、xmlStyle.ts 以及 JSON 样式测试对应的 tests/core/output/outputStyles/jsonStyle.test.ts。配置文件定制对于需要按文件夹持久化配置的场景使用repomix --init创建repomix.config.json{ output: { style: markdown, filePath: custom-output.md, removeComments: true, showLineNumbers: true, topFilesLength: 10 }, ignore: { customPatterns: [*.test.ts, docs/**] } }仓库根目录的 repomix.config.json 是一个真实的完整示例展示了全部配置域input.maxFileSize50MB 上限、output的 20 余项参数parsableStyle、compress、headerText、fileSummary、directoryStructure、tokenCountTree等、git相关开关sortByChanges、includeDiffs、includeLogs等、security.enableSecurityCheck与tokenCount.encoding。值得关注的配置要点完整参数表详见 website/client/src/ja/guide/configuration.md配置项说明默认值input.maxFileSize最大处理文件大小字节超限文件跳过50000000output.filePath输出文件名repomix-output.xmloutput.style输出格式xml / markdown / json / plainxmloutput.compress使用 Tree-sitter 智能提取代码结构以降低 tokenfalseoutput.removeComments从支持的文件类型中移除注释falseoutput.showLineNumbers每行加行号便于引用具体代码位置falseoutput.topFilesLength摘要中展示的 Top 文件数0 表示不展示摘要5output.splitOutput按最大尺寸分割为多个编号文件如1000000约 1MB未设置output.tokenBudget超出 token 数即以非零退出码失败用作 CI/Agent 守卫未设置ignore.useGitignore是否使用项目.gitignore规则trueignore.useDefaultPatterns是否使用内置默认排除模式node_modules、.git 等truesecurity.enableSecurityCheck是否使用 Secretlint 检测敏感信息truetokenCount.encodingtoken 计数编码GPT-4o 用o200k_baseGPT-4/3.5 用cl100k_baseo200k_base配置文件的优先级为TypeScriptrepomix.config.ts/.mts/.cts JavaScript.js/.mjs/.cjs JSON.json5/.jsonc/.json命令行参数优先级高于配置文件。文件搜索与 glob 匹配的核心实现可参考 src/core/file/fileSearch.ts配置加载与校验位于 src/config/configLoad.ts 和 src/config/configSchema.ts。实用场景进阶大仓库输出分割当打包输出超过 AI 工具的文件大小限制例如 Google AI Studio 的 1MB 限制时可使用--split-output自动分割repomix --split-output 1mb将生成repomix-output.1.xml、repomix-output.2.xml、repomix-output.3.xml等编号文件。尺寸支持带单位写法500kb、1mb、2mb、1.5mb等也支持小数。为保持上下文完整文件会按顶层目录分组单个文件或目录不会被拆分到多个输出文件中。Git 集成为 AI 分析提供开发上下文可以加入 Git 信息# 包含 Git 差异未提交的更改 repomix --include-diffs # 包含 Git 提交日志默认最近 50 条 repomix --include-logs # 指定包含的提交数量 repomix --include-logs --include-logs-count 10 # 同时包含差异与日志 repomix --include-diffs --include-logs这些信息为 AI 提供未提交的最近变更diff、常一起修改的文件模式log、近期提交信息揭示的开发焦点、以及文件间的关联关系。Git 相关实现见 src/core/git/gitDiffHandle.ts 与 src/core/git/gitLogHandle.ts。Token 数优化使用--token-count-tree可视化整个项目的 token 分布repomix --token-count-tree输出形如 Token Count Tree: ──────────────────── └── src/ (70,925 tokens) ├── cli/ (12,714 tokens) │ ├── actions/ (7,546 tokens) │ └── reporters/ (990 tokens) └── core/ (41,600 tokens) ├── file/ (10,098 tokens) └── output/ (5,808 tokens)还可以设置最小 token 阈值聚焦大文件repomix --token-count-tree 1000 # 只显示 token 数 ≥ 1000 的文件/目录借此可以识别可能超出 AI 上下文限制的大文件、用--include/--ignore优化文件选择、针对最大消耗源制定压缩策略、在内容与上下文之间取得平衡。树形结构的构建与展示实现见 src/core/tokenCount/buildTokenCountStructure.ts 和 src/cli/reporters/tokenCountTreeReporter.ts。其他实用选项# 删除注释减少噪声与 token repomix --remove-comments # 显示行号 repomix --output-show-line-numbers # 复制到剪贴板 repomix --copy # 禁用安全检测 repomix --no-security-check文件列表输入stdin通过 stdin 传入文件路径列表实现对打包文件的极致控制find src -name *.ts -type f | repomix --stdin git ls-files *.ts | repomix --stdin rg --files --type ts | repomix --stdin grep -l TODO **/*.ts | repomix --stdin fd -e ts | repomix --stdin fzf -m | repomix --stdin cat file-list.txt | repomix --stdin--stdin指定的文件会追加到 include 模式中同样受 ignore 规则约束支持相对或绝对路径Repomix 自动处理路径解析与去重。实现见 src/core/file/fileStdin.ts。底层实现一次打包的完整流水线从 src/core/packager.ts 的pack()实现可以看到一次打包依次经历文件搜索searchFiles→ 路径排序sortPaths→ 文件收集collectFiles→ 处理器应用applyFileProcessors→ 安全校验validateFileSafety→ 文件处理processFiles→ 输出排序sortOutputFiles→ 输出生成produceOutput→ 指标计算calculateMetrics。其中多处环节并行执行git 差异/日志获取与文件收集同时进行安全检测运行在 worker 线程、文件处理在主线程互不争抢 CPUtoken 计数缓存与 git 变更频次数据在打包开始时即后台预取。安全检测结果会过滤掉疑似敏感文件后再进入输出suspiciousPathSet过滤逻辑这正是文档宣称的Secretlint 内置检测的实现细节。CLI 层在 src/cli/cliRun.ts 中使用 Commander 定义全部参数还内置了语义化建议机制如输入--exclude会提示--ignore输入--format会提示--style降低新手的使用门槛。高级玩法面向资深用户的能力矩阵Repomix 为高级场景提供了丰富的能力官方文档对应的深度指南如下均可在仓库中直接阅读MCP 服务器指南面向 AI 助手的 Model Context Protocol 集成源码见 src/mcp/mcpServer.ts可将 Repomix 作为 MCP 工具供 AI 直接调用打包GitHub Actions 指南在 CI/CD 工作流中自动打包代码库代码压缩指南基于 Tree-sitter 的智能压缩可显著减少 token实现见 src/core/treeSitter 目录及其多种语言解析策略TypeScript、Python、Go、Vue 等作为库使用指南将 Repomix 集成进 Node.js 应用pack()/runCli()API自定义指令指南向输出中添加自定义提示词与指令headerText/instructionFilePath安全功能指南内置 Secretlint 集成与安全检测机制最佳实践指南用经过验证的策略优化 AI 工作流使用案例真实工作流示例包括开发者在既有代码库上利用 Repomix 提取代码上下文、结合 Claude/Aider 做增量改进与代码审查以及作者将博客、文档、书籍等写作内容打包为 LLM 兼容格式、供读者通过 AI 驱动的问答系统交互的实践。完整的中文及其他语言指南索引见 website/client/src/ja/guide/index.md命令行全部参数的权威参考见 website/client/src/ja/guide/command-line-options.md。Repomix 还提供 watch 模式-w, --watch监听文件变化自动重新打包与 Agent Skills 生成--skill-generate等实验性能力。结语Repomix 把让 AI 读懂整个代码库这一需求压缩为一条命令。无论是本地目录、远程仓库还是需要精细化控制的 glob 选择、token 预算、Git 上下文它都提供了从开箱即用到深度定制的完整梯度。结合 测试套件 中针对文件收集、gitignore 规则、Tree-sitter 解析、安全检测等的系统验证可以确信它能在各种规模的仓库中稳定产出高质量、可被 AI 直接消费的打包文件。现在就在你的项目里执行npx repomixlatest把整个代码库装进一个文件交给 AI 吧。【免费下载链接】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),仅供参考