资讯详情

Repomix 快速入门:一条命令把整个仓库打包成 AI 友好的上下文文件

📅 2026/9/12 3:02:18 | 华诺云谱 👁 阅读
Repomix 快速入门:一条命令把整个仓库打包成 AI 友好的上下文文件
Repomix 快速入门一条命令把整个仓库打包成 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/repomixRepomix 是一款将整个代码仓库打包进单个 AI 友好文件的开源工具专为把代码库喂给 ChatGPT、Claude、Gemini、Grok、DeepSeek、Perplexity、Gemma、Llama 等大语言模型LLM与 AI 工具而设计。阅读本文后你将掌握 Repomix 的安装与一键打包方法、输出格式选择策略、--include/--ignore/--compress/--remove-comments等关键参数以及配置文件的初始化与优先级规则并能理解其底层打包管线的实现原理。快速开始一条命令打包整个仓库在项目目录下直接运行npx repomixlatest无需提前安装任何全局依赖npx会自动拉取 Repomix 最新版本并执行。命令完成后你会在当前目录得到一个repomix-output.xml文件它包含整个仓库的 AI 友好格式内容。这个默认文件名对应xml输出风格可以在 configSchema.ts 的defaultFilePathMap中看到每种风格对应的默认文件名xml→repomix-output.xml、markdown→repomix-output.md、plain→repomix-output.txt、json→repomix-output.json。拿到输出文件后把它交给 AI 助手并附带类似这样的提示词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 等功能甚至可以一次返回多个相互依赖的文件。根据场景选择正确的使用方式Repomix 提供多种运行方式按需取用即可一次性本地打包免安装使用npx repomixlatest适合临时处理某个本地仓库。公共 GitHub 仓库使用repomix --remote owner/repo直接处理远程仓库无需先 clone 到本地。对应的 CLI 实现位于 remoteAction.ts远程处理还支持--remote-branch、--remote-trust-config等选项。可重复的项目专属配置运行repomix --init生成repomix.config.json把项目特定的规则固化到配置文件里后续每次都按同一套规则打包。输出格式按目标模型选择Claude 或需要结构化解析时用 XML需要可读对话体验的 ChatGPT 场景用 Markdown自动化流水线用 JSON追求最大兼容性用纯文本plain。当仓库体积超出目标模型的上下文窗口时组合使用以下参数控制输出体量--include只打包指定 glob 匹配的文件--ignore短选项-i排除指定 glob 匹配的文件--compress基于 Tree-sitter 的智能代码压缩大幅削减 token 数--remove-comments移除支持语言中的注释减少噪音与 token 数。需要强调的安全前提Repomix 内置基于 Secretlint 的安全检查security.enableSecurityCheck默认开启但在把任何私有或敏感代码分享给 AI 服务之前你仍应亲自检查生成的输出文件。为什么选择 RepomixRepomix 的核心优势在于它能与 ChatGPT、Claude、Gemini、Grok 等任何订阅制服务配合使用无需担心额外成本同时为 AI 提供完整的代码库上下文省去了 AI 逐步探索文件的过程使分析更快、往往也更准确。当整个代码库都成为可用上下文后Repomix 可以支撑一系列应用场景实现规划implementation planning让 AI 基于全量代码设计新功能的实现方案Bug 调查AI 能跨文件追踪调用链快速定位问题根因第三方库安全检查把依赖代码纳入上下文让 AI 协助审计文档生成基于真实代码自动产出项目文档。核心特性一览AI 优化输出将代码库整理成易于 AI 处理的格式覆盖 XML、Markdown、JSON、纯文本四种风格Token 计数跟踪输出 token 用量便于对照 LLM 上下文上限默认使用o200k_baseGPT-4o编码可通过tokenCount.encoding切换实现在 TokenCounter.tsGit 感知尊重项目的.gitignore与.git/info/exclude文件并可输出 git diff 与 commit 历史安全优先通过 Secretlint 检测 API 密钥、访问令牌、私钥等敏感信息防止泄露多种输出格式在纯文本、XML、Markdown 间自由选择。源码视角一次打包背后的完整管线理解打包流程有助于你用好各项参数。核心入口是 packager.ts 中的pack()函数它按以下阶段串联整个管线搜索文件searchFiles按 include/ignore 规则收集文件路径同时尊重.gitignore、.ignore及默认忽略清单路径排序sortPaths对文件路径排序若启用git.sortByChanges还会按提交改动次数调整顺序收集文件collectFiles从磁盘读取内容并在此阶段应用文件处理器input.processors对外部命令做内容变换安全检测与处理并行validateFileSafetySecretlint 安全扫描worker 线程与processFiles主线程内容处理并发执行检测出的可疑文件会被过滤不进入最终输出。安全检测的批处理实现见 securityCheck.ts它以每批 50 个文件分发到 worker 线程并同时覆盖工作区改动与 git 历史内容生成与写入输出produceOutput按所选风格生成最终文件随后calculateMetrics计算 token 数等指标。从 index.ts 可以看到Repomix 同时对外暴露了pack()库 API、runCli()CLI 入口以及defineConfig、loadFileConfig等编程接口既可作为命令行工具使用也能作为 Node 库集成到自己的流水线中。配置入门从 --init 到 defineConfig配置文件格式与优先级Repomix 支持 TypeScript、JavaScript、JSON含 JSON5/JSONC三类配置文件自动搜索顺序为TypeScriptrepomix.config.ts、repomix.config.mts、repomix.config.ctsJavaScript/ES Modulerepomix.config.js、repomix.config.mjs、repomix.config.cjsJSONrepomix.config.json5、repomix.config.jsonc、repomix.config.json上述顺序对应 configLoad.ts 中defaultConfigPaths的实际查找逻辑先找本地配置找不到再回退到全局配置目录macOS/Linux 为~/.config/repomix/Windows 为%LOCALAPPDATA%\Repomix\。TS/JS 配置文件通过jiti动态加载因此可以使用动态值时间戳、环境变量等JSON 系列则用 JSON5 解析天然支持注释与尾逗号。命令行选项的优先级始终高于配置文件。初始化配置文件repomix --init将在项目目录生成带默认设置的repomix.config.json。若需要创建全局兜底配置使用repomix --init --globalTypeScript 配置与 defineConfigTypeScript 配置可享受完整的类型检查与 IDE 智能提示是开发体验最好的方式。使用前需要把 Repomix 安装为开发依赖npm install -D repomix然后在项目根目录创建repomix.config.ts// repomix.config.ts import { defineConfig } from repomix; export default defineConfig({ output: { filePath: output.xml, style: xml, removeComments: true, }, ignore: { customPatterns: [**/node_modules/**, **/dist/**], }, });defineConfig的类型定义在 configSchema.ts 中它只是对配置对象做类型约束并原样返回配合 Valibot 的 schema 校验能在加载阶段就拦截非法配置。TypeScript/JavaScript 配置还支持动态值例如生成带时间戳的文件名// repomix.config.ts import { defineConfig } from repomix; // 生成基于时间戳的文件名 const timestamp new Date().toISOString().slice(0, 19).replace(/[:.]/g, -); export default defineConfig({ output: { filePath: output-${timestamp}.xml, style: xml, }, });配置合并机制从 configLoad.ts 的mergeConfigs实现可以看到三层合并逻辑默认值defaultConfig→ 配置文件 → CLI 参数后者逐层覆盖前者。一个值得注意的细节是当没有显式指定output.filePath时Repomix 会根据output.style自动调整默认文件名例如把风格切换为markdown时输出文件自动变为repomix-output.md。关键配置项速查配置项说明默认值input.maxFileSize单文件最大处理字节数超限跳过适合排除大型二进制/数据文件5000000050MBinput.processors按{ pattern, command, timeout?, onError? }运行外部命令变换匹配文件内容未设置output.filePath输出文件名xml/markdown/plain/json 均支持repomix-output.xmloutput.style输出风格xml/markdown/json/plainxmloutput.compress是否用 Tree-sitter 做智能代码提取以降低 tokenfalseoutput.patterns按 glob 设置逐文件包含级别compress/directoryStructureOnly首个匹配生效未设置output.headerText写入文件头部的自定义文本可给 AI 提供上下文或指令nulloutput.fileSummary是否在开头输出文件数、大小等统计摘要trueoutput.directoryStructure是否输出目录结构trueoutput.files是否输出文件内容设为 false 则只输出结构与元数据trueoutput.removeComments是否移除支持类型文件中的注释falseoutput.removeEmptyLines是否移除空行以降低 tokenfalseoutput.showLineNumbers是否给每行加行号falseoutput.splitOutput按单文件大小上限拆分输出为多个编号文件CLI 接受500kb、2mb等可读大小未设置output.tokenBudget打包结果超过该 token 数即以非零码失败可作为 CI/Agent 上下文上限的守护未设置include使用 glob 模式指定要包含的文件[]ignore.useGitignore是否使用项目.gitignore规则trueignore.useDotIgnore是否使用项目.ignore规则trueignore.useDefaultPatterns是否使用默认忽略清单node_modules、.git 等trueignore.customPatterns附加的自定义忽略 glob 模式[]security.enableSecurityCheck是否用 Secretlint 做敏感信息检测truetokenCount.encodingOpenAI 兼容的 token 编码o200k_base对应 GPT-4ocl100k_base对应 GPT-4/3.5o200k_base以上默认值与 configSchema.ts 中repomixConfigDefaultSchema的实现完全一致。一个完整的示例配置文件repomix.config.json{ $schema: https://repomix.com/schemas/latest/schema.json, input: { maxFileSize: 50000000 }, output: { filePath: repomix-output.xml, style: xml, filePathStyle: target-relative, parsableStyle: false, compress: false, headerText: Custom header information for the packed file., fileSummary: true, directoryStructure: true, files: true, removeComments: false, removeEmptyLines: false, topFilesLength: 5, showLineNumbers: false, truncateBase64: false, copyToClipboard: false, includeEmptyDirectories: false, git: { sortByChanges: true, sortByChangesMaxCommits: 100, includeDiffs: false, includeLogs: false, includeLogsCount: 50 } }, include: [**/*], ignore: { useGitignore: true, useDefaultPatterns: true, customPatterns: [additional-folder, **/*.log] }, security: { enableSecurityCheck: true }, tokenCount: { encoding: o200k_base } }JSON 系列配置支持 JSON5 语法可以写注释单行与多行、尾逗号、不带引号的属性名和更宽松的字符串。若编辑器支持 JSON Schema可在配置中加入$schema字段获得自动补全与校验。include 与 ignore精确控制打包范围Include 模式使用 glob 模式精确挑选要打包的文件例如**/*.js包含任意目录下所有 JavaScript 文件src/**/*包含src目录及其子目录下全部文件[src/**/*.js, **/*.md]组合多个模式同时包含src下的 JS 与全部 Markdown 文件。既可以在配置文件中声明include: [src/**/*, tests/**/*.test.js]也可以用--include命令行选项做一次性过滤。Ignore 模式Repomix 提供多层次的忽略机制.gitignore默认使用项目.gitignore文件与.git/info/exclude中的规则可用ignore.useGitignore或--no-gitignore关闭.ignore项目根目录的.ignore文件格式同.gitignore被 ripgrep、silver searcher 等工具共同尊重可用ignore.useDotIgnore或--no-dot-ignore控制默认模式内置常见排除清单node_modules、.git、二进制文件等完整清单见 defaultIgnore.ts可用ignore.useDefaultPatterns或--no-default-patterns控制.repomixignore项目根目录下 Repomix 专属的忽略文件格式同.gitignore自定义模式配置中的ignore.customPatterns可用-i, --ignore命令行选项覆盖。优先级从高到低自定义模式ignore.customPatterns忽略文件.repomixignore、.ignore、.gitignore、.git/info/exclude嵌套目录中的文件优先级更高同一目录下的多个忽略文件按任意顺序合并默认模式当ignore.useDefaultPatterns为 true 且未使用--no-default-patterns。.repomixignore示例# 缓存目录 .cache/ tmp/ # 构建输出 dist/ build/ # 日志 *.log这套机制既保证了打包文件足够精简也防止敏感文件与大体积二进制文件混入输出。二进制文件处理图片、PDF、编译产物、压缩包等二进制文件默认不写入打包文件但其路径会出现在输出文件的 Repository Structure目录结构部分让 AI 了解项目里存在这些文件而不必处理二进制内容。单个文件的大小上限由input.maxFileSize控制默认 50MB超过该阈值的文件会被整体跳过。进阶压缩、逐文件级别与文件处理器代码压缩Code Compression开启output.compress: true后Repomix 使用 Tree-sitter 智能提取代码的骨架结构显著降低 token 数的同时保留关键信息保留类与函数签名保留 import/export保留类型定义与接口移除函数体与实现细节。逐文件包含级别Per-file Inclusion Levelsoutput.compress对所有文件统一生效而output.patterns允许按 glob 逐文件控制细节级别并覆盖全局output.compress。每个文件最终落入三种级别之一完整内容默认包含文件全部内容压缩compress: true走 Tree-sitter 压缩管线仅目录结构directoryStructureOnly: true文件只出现在目录结构中内容块整体省略。规则为模式按数组顺序求值首个匹配生效命中的模式标志覆盖全局output.compress同一模式上directoryStructureOnly优先于compress无匹配时回退到全局行为。其核心判定逻辑resolveFileLevel位于 fileLevelResolve.ts该选项仅支持配置文件没有对应 CLI 标志。{ output: { compress: false, // 全局默认作为兜底 patterns: [ { pattern: docs/**/*, compress: true }, { pattern: website/**/*, directoryStructureOnly: true } ] } }文件处理器File Processorsinput.processors在打包之前运行外部命令变换文件内容适合做 token 精简或格式转换例如把 JSON 转成紧凑的 TOON 格式、压缩 SVG、把 Jupyter notebook 转成纯 Python 脚本{ input: { processors: [ { pattern: **/*.json, command: npx toon-format/cli {file} } ] } }工作原理与约束Repomix 把每个匹配文件的内容写入临时文件并用其路径替换命令中的{file}占位符占位符必填命令通过 shell 执行支持管道与npx等工具其标准输出成为该文件的新内容继续走后续的安全检查、token 计数与输出生成管线模式按数组顺序求值首个匹配生效一个文件最多被一个处理器变换不串联每条处理器可设timeout默认60000毫秒即 60 秒注意npx冷缓存首次下载可能需要额外时间与onErrorfail默认中止整个打包skip记录警告并回退到原始内容常用命令示例jq -c . {file}压缩 JSON、npx svgo -i {file} -o -压缩 SVG、jupyter nbconvert --to script --stdout {file}转换 notebook。安全警告文件处理器会执行任意命令因此采用严格信任模型。实现细节见 fileProcessorRun.ts其中enableFileProcessors这个运行时开关只由真正的 CLI 入口注入库 APIpack()/runCli()、MCP 服务器与托管网站默认关闭处理器远程仓库只有在显式传入--remote-trust-config时才会加载并信任其配置中的处理器。运行不熟悉的仓库前务必先审查它的repomix.config.json。处理器启用时会在启动日志中打印出来便于发现异常配置。Git 集成output.git提供一组 Git 感知能力sortByChanges按 Git 改动次数排序文件改动多的文件排在输出末尾帮助 AI 优先关注活跃开发的文件。默认truesortByChangesMaxCommits统计改动次数时最多分析的提交数。默认100includeDiffs在输出中包含 Git 差异工作区改动与暂存改动分开展示。默认falseincludeLogs在输出中包含提交历史日期、消息、文件路径。默认falseincludeLogsCount纳入输出的最近提交数。默认50。注释移除与安全检查output.removeComments: true会移除支持类型文件中的注释适用于注释密集、需要削减 token 或聚焦代码结构逻辑的场景。security.enableSecurityCheck默认开启利用 Secretlint 在文件进入输出前检测敏感信息防止以下内容意外泄露API 密钥、访问令牌、私钥、密码及其他敏感凭据。扫描同样覆盖 git diff 与 git log 内容见 securityCheck.ts。下一步继续深入 Repomix安装指南了解全局安装、Homebrew 等不同安装方式使用指南学习基础与高级用法输出格式为你的 AI 模型挑选最合适的输出格式配置详解完整配置项参考与示例安全特性了解安全检查的更多细节MCP 服务器把 Repomix 直接集成进 AI 助手命令行选项完整 CLI 参考CLI 选项会覆盖配置文件FAQ 与排障关于格式、隐私、token 用量与常见问题的解答。【免费下载链接】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),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。