
Repomix 命令行选项完全指南从输入输出、文件筛选到 MCP 与 Agent Skills【免费下载链接】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 CLI 的完整参数参考手册覆盖输入/输出、文件选择、远程仓库、配置、安全、Token 计数、MCP 服务器与 Agent Skills 生成等全部选项并结合仓库源码src/cli/cliRun.ts、src/cli/actions/defaultAction.ts解释每个参数背后的解析与生效逻辑。读完本文你将能熟练编排 Repomix 命令在本地目录、远程 GitHub 仓库、CI 流水线与 AI Agent 工作流中输出符合需求的单文件代码包。基本选项-v, --version显示版本信息后退出。在 src/cli/cliRun.ts 中该选项会动态加载versionAction执行版本号取自项目自身的package.json。CLI 输入/输出选项选项说明--verbose开启详细调试日志显示文件处理过程、Token 数量与配置细节--quiet除错误外抑制所有控制台输出适合脚本场景--stdout将打包结果直接写入 stdout 而非文件并抑制全部日志--stdin从 stdin 逐行读取文件路径指定的文件会被直接处理--copy处理完成后将生成的输出复制到系统剪贴板--token-count-tree [threshold]显示带 Token 数的文件树可传可选阈值仅显示 Token 数 ≥N 的文件如--token-count-tree 100--top-files-len number摘要中显示的最大文件数量默认5几个值得注意的实现细节--verbose与--quiet互斥源码通过 Commander 的.conflicts(quiet)/.conflicts(verbose)声明二者不能同时使用日志级别在 src/cli/cliRun.ts 中统一设置——quiet为 SILENT、verbose为 DEBUG、默认 INFO且--stdout模式下日志级别被强制设为 SILENT以保证 stdout 输出纯净。--token-count-tree阈值校验阈值必须是非负整数否则直接抛出Invalid token count threshold错误。--stdin模式限制使用--stdin时不能附带目录参数defaultAction.ts文件路径完全由标准输入提供同时会跳过版本头打印避免干扰 fzf 等交互式管道工具。Repomix 输出选项选项说明-o, --output file输出文件路径默认repomix-output.xml传-表示输出到 stdout--style style输出格式xml、markdown、json或plain默认xml--output-file-path-style style输出中文件路径的显示方式target-relative或cwd-relative默认target-relative--parsable-style转义特殊字符以确保 XML/Markdown 合法当输出中含有破坏格式的代码时必需--compress使用 Tree-sitter 解析提取核心代码结构类、函数、接口--output-show-line-numbers为输出中的每一行添加行号前缀--no-file-summary从输出中移除文件摘要部分--no-directory-structure从输出中移除目录树可视化--no-files仅生成元数据、不含文件内容适合仓库分析--remove-comments打包前去除所有代码注释--remove-empty-lines删除所有文件中的空行--truncate-base64截断过长的 base64 数据串以减小输出体积--header-text text在输出开头加入自定义文本--instruction-file-path path指定包含自定义指令的文件路径并写入输出--split-output size将输出拆分为多个编号文件如repomix-output.1.xml尺寸写法如500kb、2mb或1.5mb--include-empty-directories在目录结构中包含无文件的空文件夹--include-full-directory-structure即使使用了--include模式也在 Directory Structure 部分显示完整仓库树--no-git-sort-by-changes不按 git 变更频率排序文件默认变更最多的文件排在前面--include-diffs增加 git diff 部分显示工作区与暂存区变更--include-logs增加 git 提交历史含提交信息与变更文件--include-logs-count count配合--include-logs使用的最近提交数量默认50源码侧的关键行为CLI 参数 → 配置对象的映射集中在 buildCliConfig--style会被转小写后写入output.style--split-output经parseHumanSizeToBytes解析为字节数后存入output.splitOutput--include-diffs/--include-logs/--include-logs-count统一汇入output.git子配置。--no-*开关的合并语义由于 Commander 对--no-*标志的特殊行为--no-file-summary、--no-directory-structure、--no-files、--no-git-sort-by-changes等仅在显式设为false时才覆盖配置文件defaultAction.ts 注释从而保证配置文件拥有默认控制权。--stdout的别名路径-o -会被自动识别为 stdout 模式cliRun.ts与--stdout等效。冲突校验validateConflictingOptions 会拒绝--split-output与--stdout/--skill-generate/--copy的组合、--skill-generate与--stdout/--copy的组合避免生成多文件输出时出现无法落盘或复制的情况。文件选择选项选项说明--include patterns仅包含匹配这些 glob 模式的文件逗号分隔如src/**/*.js,*.md-i, --ignore patterns额外排除的模式逗号分隔如*.test.js,docs/**--no-gitignore不使用.gitignore规则过滤文件--no-dot-ignore不使用.ignore规则过滤文件--no-default-patterns不应用内置忽略模式node_modules、.git、构建目录等从源码看--include与--ignore通过 splitPatterns 按逗号切分后分别写入include与ignore.customPatterns而三个--no-*开关则分别映射到ignore.useGitignore、ignore.useDotIgnore、ignore.useDefaultPatterns同样遵循仅在显式关闭时覆盖配置文件的合并原则。三套忽略规则gitignore、dot ignore、内置默认模式叠加生效因此针对测试文件、文档目录等场景可以精确圈定打包范围。远程仓库选项选项说明--remote url克隆并打包远程仓库支持 GitHub URL 或user/repo简写格式--remote-branch name指定分支、标签或提交默认仓库默认分支--remote-trust-config信任并加载远程仓库中的配置文件。被信任的配置可执行命令并读取本地文件因此仅应将其用于完全信任的仓库默认出于安全原因关闭。在交互式终端中会展示配置并请求确认远程模式的实际执行流程在 src/cli/actions/remoteAction.ts 中非常清晰获取方式优先级GitHub 仓库优先尝试归档下载downloadGitHubArchive带 60 秒超时与 2 次重试失败后回退到 git 浅克隆execGitShallowClone全程在临时目录中进行打包完成后输出文件会被复制回当前目录临时目录随即清理。--config必须是绝对路径远程模式下相对路径的--config会被拒绝以防意外加载克隆仓库中的配置文件。远程配置信任链仅当传入--remote-trust-config或设置环境变量REPOMIX_REMOTE_TRUST_CONFIGtrue时才加载克隆仓库内的配置此时会在交互终端展示配置内容并请求确认remoteConfigTrustPrompt.ts--force可跳过该确认。未信任时通过skipLocalConfig完全跳过仓库内配置且input.processors这类可执行外部命令的处理器也不会被启用。位置参数自动识别repomix user/repo无需--remote也能触发远程打包——但仅当该参数本地路径不存在、且通过git ls-remote探测确认 GitHub 上确实存在该仓库时才会走远程分支cliRun.ts避免把笔误的本地路径误判为远程仓库。配置选项选项说明-c, --config path使用自定义配置文件替代默认的repomix.config.json--init以默认值创建新的repomix.config.json--global配合--init在用户主目录而非当前目录创建配置--init是一个交互式向导src/cli/actions/initAction.ts首先询问是否创建repomix.config.json然后引导选择输出风格XML/Markdown/JSON/Plain与输出路径并额外询问是否创建.repomixignore文件。--global模式则把配置写入由 globalDirectory.ts 确定的全局目录且不创建.repomixignore。配置的完整加载顺序buildMergedConfig为先执行旧版 Repopack 配置的自动迁移再加载文件配置然后解析 CLI 参数最后以「默认配置 → 文件配置 → CLI 参数」的优先级合并。CLI 参数优先级最高但如前所述--no-*开关不会无谓覆盖配置文件中的显式设置。安全选项--no-security-check跳过对 API 密钥、密码等敏感数据的扫描请谨慎使用可能将密钥泄露到输出中。该选项映射到security.enableSecurityCheck: falsedefaultAction.ts底层实现为 src/core/security/securityCheck.ts 中的安全扫描由工作线程执行securityCheckWorker.ts。若输出内容必须保留疑似机密占位符可用此开关显式关闭扫描但官方强烈建议仅在受信任环境中使用。Token 计数选项--token-count-encoding encoding计数的分词器模型o200k_baseGPT-4o、cl100k_baseGPT-3.5/4等默认o200k_base--token-budget number当打包输出超过 N 个 Token 时以非零退出码结束。适合作为 CI 流水线与 Agent 工作流中的防护确保输出不超过目标模型的上下文窗口。输出仍会正常生成仅通过退出码提示超限。--token-count-encoding映射到tokenCount.encodingToken 计数器按编码在工作线程内缓存复用src/core/metrics/tokenCounterFactory.ts保证同编码只初始化一个计数实例以节省内存。--token-budget映射到output.tokenBudget其校验实现位于 src/cli/cliTokenBudget.ts预算未超限时静默通过超限时抛出含当前 Token 数与预算值的错误并提示可用--compress、--include/--ignore或提高--token-budget三种方式解决。本地模式在校验前已完成输出写入远程模式则先复制输出再校验deferTokenBudgetCheck确保超限时产物不丢失。MCP 选项--mcp以 Model Context Protocol 服务器模式运行供 AI 工具集成--sandbox [dir]需配合--mcp将 MCP 服务器的文件工具限制在工作目录内默认取当前工作目录例如--sandbox path/to/project。所有路径均相对该根目录解析绝对路径与宿主机路径会被拒绝远程仓库打包、Skill 生成与附加外部输出均被禁用。参见 MCP 服务器指南沙箱根目录会先经realpath规范化canonicalizeSandboxRoot使路径守卫、输出虚拟化与错误信息脱敏共用同一基准避免符号链接绕过若realpath失败但目录真实存在如 Windows 8.3 短路径则回退到词法根目录。注意不带--mcp单独使用--sandbox时程序会提示该选项没有效果。Agent Skills 生成选项选项说明--skill-generate [name]以 Claude Agent Skills 格式生成输出到.claude/skills/name/目录省略名称时自动生成--skill-project-name name覆盖生成的 Skills 描述中使用的项目名--skill-output path直接指定 Skills 输出目录路径跳过位置询问-f, --force跳过所有确认提示Skill 目录覆盖、远程配置信任在 defaultAction.ts 中有一组前置校验--skill-output、--force、--skill-project-name均只能在--skill-generate存在时使用且路径不能为空Skill 名称缺失时由 skillUtils.ts 的generateDefaultSkillName基于目标目录推导。远程模式下名称则由仓库 URL 推导并在生成的 SKILL.md 中写入脱敏后的来源 URLremoteAction.ts。若未提供--skill-output交互式终端会询问 Skill 存放位置。Watch 模式选项-w, --watch监听文件变化并自动重新打包。可检测新增、修改与删除的文件高频变化通过 300 ms 防抖合并每次重建完成后打印时间戳。按CtrlC停止。Watch 模式只支持本地目录因此不能与--remote、位置参数远程 URL、--stdout、--stdin、--split-output、--skill-generate或--copy组合使用。这些限制无论选项来自命令行还是配置文件都会生效。实现细节src/cli/actions/watchAction.ts防抖与写稳定REBUILD_DEBOUNCE_MS 300将突发变更合并为一次重建awaitWriteFinish的stabilityThreshold100 ms确保文件在保存中途不会被半成品状态触发打包。监视目录而非文件这样新文件也能被捕获忽略谓词watchIgnore.ts与打包器保持一致让 chokidar 避开node_modules、.git与 gitignore 目录防止大项目出现 EMFILE。并发防护重建期间到达的新变更会排队重建完成后立即补跑一次避免事件丢失。CLI 层与配置层双重校验validateWatchOptions 负责命令行标志冲突runWatchAction再基于合并后的配置复查如配置文件里的output.stdout或copyToClipboard保证错误信息始终明确指向--watch。使用示例以下示例完整覆盖日常高频场景可直接复制使用# 基本使用 repomix # 自定义输出文件与格式 repomix -o my-output.md --style markdown repomix -o my-output.json --style json # 输出到 stdout repomix --stdout custom-output.txt # 输出到 stdout 后通过管道交给其他命令例如 simonw/llm repomix --stdout | llm Please explain what this code does. # 自定义输出并开启代码压缩 repomix --compress # 按模式处理特定文件 repomix --include src/**/*.ts,*.md --ignore *.test.js,docs/** # 按大小拆分输出每份上限 20MB repomix --split-output 20mb # 远程仓库 指定分支 repomix --remote https://github.com/user/repo/tree/main # 远程仓库 指定提交 repomix --remote https://github.com/user/repo/commit/836abcd7335137228ad77feb28655d85712680f1 # 远程仓库简写 repomix --remote user/repo # 远程仓库简写自动识别无需 --remote repomix user/repo # 通过 stdin 传入文件列表 find src -name *.ts -type f | repomix --stdin git ls-files *.js | repomix --stdin echo -e src/index.ts\nsrc/utils.ts | repomix --stdin # Git 集成 repomix --include-diffs # 包含未提交变更的 git diff repomix --include-logs # 包含 git 提交历史默认最近 50 条 repomix --include-logs --include-logs-count 10 # 只包含最近 10 条提交 repomix --include-diffs --include-logs # 同时包含 diff 与日志 # Token 数量分析 repomix --token-count-tree repomix --token-count-tree 1000 # 只显示 Token 数 1000 的文件/目录 # Watch 模式文件变化时自动重新打包 repomix --watch repomix -w --include src/**/*.ts相关资源配置指南 - 在配置文件中设置选项代替 CLI 标志输出格式指南 - XML、Markdown、JSON 与纯文本格式详解代码压缩指南 ---compress与 Tree-sitter 的工作原理安全指南 ---no-security-check关闭了哪些防护【免费下载链接】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),仅供参考