FEATURED · 精选文章

Repomix 官方指南:将整个代码仓库打包为 AI 友好格式,打通 Claude、ChatGPT 与 Gemini 的代码上下文

发布时间 / 2026/9/11 21:34:00
来源 / 创域科博编辑部
栏目 / 资讯中心
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 官方站点website/client/src/en/index.md的完整内容展开系统讲解如何用 Repomix 把本地或远程代码仓库打包成单个 XML、Markdown、JSON 或纯文本文件直接喂给 Claude、ChatGPT、Gemini 等大语言模型。你将掌握从零安装、CLI 打包、输出格式切换、配置文件持久化到 Docker 隔离运行的全套实操并结合源码理解打包管线、Token 统计与 Secretlint 安全检查的底层原理。Repomix 是一款把整个代码仓库打包成单个 AI 友好文件的命令行工具无论是代码审查、重构还是让 AI 协助理解项目它都能将完整仓库上下文一次性交给 AI 工具处理。本文基于仓库中的 官方首页文档 与 入门指南并对照 配置 Schema、默认打包动作、核心打包器 等源码展开。为什么需要 Repomix在把代码库交给 LLM 时传统的做法是手动复制文件、逐段粘贴代码既低效又容易丢失上下文。Repomix 的核心价值在于与任何订阅服务兼容生成的文件可用于 ChatGPT、Claude、Gemini、Grok 等任意 AI 服务无需担心服务商差异带来的成本与适配问题提供完整代码库上下文AI 无需再逐个探索文件分析更快、通常也更准确覆盖多种应用场景实现规划implementation planning、Bug 调查、第三方库安全审查、文档自动生成等只要把整个代码库作为上下文这些工作都能展开。从源码结构看核心打包器 的pack()函数是整个能力的入口它依次执行文件收集collectFiles、文件处理processFiles、安全校验validateFileSafety、输出生成produceOutput与指标计算calculateMetrics最终产出单一打包文件。快速开始一条命令生成 repomix-output.xml在你的项目目录下无需安装即可直接体验npx repomixlatest执行完毕后当前目录会生成repomix-output.xml里面包含整个仓库的 AI 友好格式内容。随后把它发给 AI 助手如 ChatGPT、Claude并附上提示词This file contains all the files in the repository combined into one. I want to refactor the code, so please review it first.AI 会基于完整代码库进行分析并给出综合洞察例如代码审查、重构建议等当讨论具体改动时AI 可以协助生成代码借助 Claude Artifacts 等能力甚至能一次返回多个相互依赖的文件使用 CLI 工具Repomix 以命令行工具为主力形态功能强大且高度可定制。特别地CLI 工具基于你本地安装的 git 工作因此可以直接访问私有仓库。安装方式方式命令免安装直跑推荐体验npx repomixlatestnpm 全局安装npm install -g repomixyarn 全局安装yarn global add repomixbun 全局安装bun add -g repomixHomebrewmacOS/Linuxbrew install repomix日常运行repomix安装后在任意项目目录运行repomix即可生成repomix-output.xml。基本用法打包整个仓库repomix打包指定目录repomix path/to/directory使用 glob 模式仅打包特定文件或目录glob 语法遵循 fast-glob 的 pattern-syntaxrepomix --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的 URLnpx repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1从 默认动作实现 可以看到远程仓库打包会跳过本地配置迁移skipMigration并默认不信任远程仓库自带的配置文件skipLocalConfig因为临时克隆目录中的repomix.config.*可能是攻击者控制的防止未审查配置被意外执行。初始化配置文件生成repomix.config.json以便持久化你的设置repomix --init通过 stdin 传入文件列表CLI 还支持从标准输入读取待打包的文件路径配合--stdin。此时不能再指定目录参数源码 defaultAction.ts 中会校验directories仅允许默认的.。Docker 用法如果你希望在隔离环境中运行 Repomix或偏好容器化可以直接使用 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/repomix注意镜像路径需以你实际使用的镜像名为准仓库 Dockerfile 与compose.yml中定义了镜像构建方式。输出格式Repomix 支持四种输出风格可按需选择# XML 格式默认 repomix --style xml # Markdown 格式 repomix --style markdown # JSON 格式 repomix --style json # 纯文本格式 repomix --style plain在 configSchema.ts 中可以看到四种风格由repomixOutputStyleSchema的 picklist 严格约束且每种风格对应一个默认输出文件名风格默认输出文件xmlrepomix-output.xmlmarkdownrepomix-output.mdplainrepomix-output.txtjsonrepomix-output.json从输出生成实现看outputGenerate.ts 会按风格选择对应的 Handlebars 模板XML/Markdown/Plain并通过compiledTemplateCache缓存已编译模板以避免重复编译开销。自定义配置repomix.config.json为持久化你的设置可创建repomix.config.json{ output: { style: markdown, filePath: custom-output.md, removeComments: true, showLineNumbers: true, topFilesLength: 10 }, ignore: { customPatterns: [*.test.ts, docs/**] } }对照 配置 Schema 与默认值定义L123-L171常用配置项及其默认值如下配置项默认值说明output.stylexml输出格式取值xml/markdown/json/plainoutput.filePath随 style 变化输出文件路径output.removeCommentsfalse是否移除代码注释output.removeEmptyLinesfalse是否移除空行output.showLineNumbersfalse是否显示行号output.topFilesLength5摘要中列出 top 文件数量output.compressfalse是否启用基于 Tree-sitter 的智能压缩output.copyToClipboardfalse是否复制到剪贴板output.stdout关输出到标准输出而非文件CLI 专用字段output.tokenBudget无不限Token 预算上限超限则以非零退出码失败output.git.sortByChangestrue是否按 Git 变更排序文件output.git.includeDiffsfalse是否在输出中包含 Git diffoutput.git.includeLogsfalse是否包含 Git 提交日志include[]仅包含匹配的 glob 模式ignore.useGitignoretrue是否遵守.gitignoreignore.useDotIgnoretrue是否遵守.git/info/exclude等 dotignoreignore.useDefaultPatternstrue是否应用内置默认忽略模式ignore.customPatterns[]自定义忽略模式security.enableSecurityChecktrue是否启用 Secretlint 安全扫描tokenCount.encodingo200k_baseToken 计数使用的编码input.maxFileSize50MB单文件大小上限配置加载采用「默认配置 → 文件配置 → CLI 参数」三级合并在 buildMergedConfig 中依次执行迁移、加载repomix.config.*、解析 CLI 选项最终通过mergeConfigs合并。值得注意的是CLI 中对--no-*系列参数如--no-file-summary、--no-gitignore采用「显式 false 才覆盖配置文件」的策略保证配置文件拥有更高优先级除非用户在命令行明确覆盖见 buildCliConfig 注释。此外configSchema.ts 还导出了defineConfig辅助函数便于在repomix.config.ts中获得类型安全的配置编写体验仓库 测试夹具 中提供了.ts/.cts/.mts的完整示例。核心特性从源码看四个支柱官方首页在 frontmatter 中声明了四大核心特性这里结合源码逐一验证AI-OptimizedAI 优化输出以 AI 易于理解和处理的方式格式化代码库。四种输出模板、目录树、文件摘要fileSummary、Token 树tokenCountTree等均由 outputGenerate.ts 统一渲染。Git-AwareGit 感知自动遵守.gitignore与.git/info/exclude。默认ignore.useGitignore true、useDotIgnore true并且git.sortByChanges默认开启可按提交活跃度对文件排序帮助 AI 优先关注高频变动的文件。Security-Focused安全优先集成 Secretlint 检测已知凭据格式API Key、Token 等并从输出中剔除。实现位于 securityCheck.ts文件按 50 个一批BATCH_SIZE分发到 worker 线程并行扫描连工作区未提交改动workTree diff与暂存区改动staged diff也会一并检测。Token CountingToken 计数为每个文件以及整个仓库提供 Token 统计便于判断是否超出 LLM 上下文窗口。默认使用o200k_base编码且仓库带有 Token 计数缓存 以加速重复打包。实战场景AI 代码工作流官方文档列举了两类真实世界应用LLM 代码生成工作流开发者从既有代码库中提取代码上下文配合 Claude、Aider 等 LLM 进行增量改进、代码审查与自动化文档生成——这正是「打包 → 审查 → 重构 → 测试」闭环的典型用法。为 LLM 制作知识数据包作者将博客、文档和书籍打包成 LLM 兼容格式让读者通过 AI 问答系统与作者的专业知识交互。更多案例见 用例指南。进阶指南速览面向高阶用户官方还提供了以下专题指南均位于 英文指南目录MCP Server将 Repomix 集成为 AI 助手的 MCP 服务端工具仓库中对应实现位于 src/mcp/mcpServer.tsGitHub Actions在 CI/CD 中自动化代码打包代码压缩基于 Tree-sitter 的智能压缩可实现约 70% 的 Token 缩减底层实现见 src/core/treeSitter/parseFile.ts作为库使用把 Repomix 集成进你自己的 Node.js 应用直接调用 pack()自定义指令向输出中添加自定义提示词与指令安全特性内置 Secretlint 集成与安全检查详解最佳实践用经过验证的策略优化你的 AI 工作流配置详解 与 FAQ覆盖格式、隐私、Token 用量等常见问题。安全提醒Repomix 内置的 Secretlint 检查security.enableSecurityCheck默认开启能大幅降低误把密钥打包进输出的风险但在把任何私有或敏感代码发送给 AI 服务之前仍建议你亲自检查生成的输出文件。安全扫描的批量处理与结果回报逻辑可参考 securityCheck.ts 及其配套测试 securityScanSpec.test.ts。总结Repomix 的价值在于把「喂代码给 AI」这个高频动作标准化一条命令、一个文件、四种格式、三级配置合并、默认开箱即用的 Git 感知与安全扫描。无论是本地快速尝试npx repomixlatest、私有仓库远程打包--remote、CI 自动化GitHub Actions还是作为 Node.js 库深度集成官方文档配合 源码 与 配置 Schema 都能帮你把整个仓库的上下文可靠地交给任意 LLM。【免费下载链接】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),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻