Repomix 是一款将整个代码仓库打包成单个 AI 友好文件的工具。支持 XML、Markdown、JSON、Plain Text 四种输出格式,提供 Token 统计、代码压缩(约 70% 压缩率)、敏感信息检测等功能。可通过 npx 一键运行,支持 GitHub 远程仓库处理和 MCP 服务器模式,可与 Claude、Cursor 等 AI 工具无缝集成。
核心功能#
- 多格式输出:支持 XML(Claude 推荐)、Markdown、JSON、Plain Text 四种格式
- 代码压缩:基于 Tree-sitter 提取关键代码元素(类、函数、接口),减少约 70% token 数量
- Token 管理:精确的 token 计数和统计树展示,帮助管理 LLM 上下文限制
- 安全检查:集成 Secretlint 检测 API Key、密码等敏感信息泄露
- 远程处理:无需克隆即可处理 GitHub 远程仓库,支持指定分支
- MCP 集成:支持 Model Context Protocol,与 Claude、Cursor 等 AI 工具互通
- 输出分割:支持将大输出分割为多个文件(如 --split-output 1mb)
- Git 历史:可包含 git commit 历史和 diff 信息
快速开始#
# 方式1: 无需安装,直接使用 npx(推荐)
npx repomix@latest
# 方式2: npm 全局安装
npm install -g repomix
# 方式3: Homebrew (macOS/Linux)
brew install repomix
# 方式4: Docker
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix
常用命令#
repomix # 打包当前目录
repomix path/to/directory # 打包指定目录
repomix --include "src/**/*.ts,**/*.md" # 包含特定文件
repomix --ignore "**/*.log,tmp/" # 排除特定文件
repomix --remote https://github.com/user/repo # 处理远程仓库
repomix --style markdown # 指定输出格式
repomix --compress # 启用代码压缩
repomix --split-output 20mb # 分割大输出
repomix --token-count-tree # 显示 token 统计树
repomix --mcp # 作为 MCP 服务器运行
配置文件示例#
{
"$schema": "https://repomix.com/schemas/latest/schema.json",
"output": {
"filePath": "repomix-output.xml",
"style": "xml",
"compress": false,
"removeComments": false,
"tokenCountTree": false
},
"ignore": {
"useGitignore": true,
"useDefaultPatterns": true,
"customPatterns": ["additional-folder", "**/*.log"]
},
"security": {
"enableSecurityCheck": true
}
}
典型应用场景#
- 代码审查与质量评估:将整个代码库发送给 AI 进行结构和质量分析
- 重构建议与架构分析:AI 分析代码后提供重构和优化建议
- 文档与测试用例自动生成:基于代码库自动生成项目 README、技术文档和单元测试
- 第三方库架构快速理解:快速理解第三方库的架构和核心功能
- AI 编码助手上下文准备:从远程仓库生成 Agent Skills,用于 AI 编码助手参考
核心依赖#
@modelcontextprotocol/sdk- MCP 服务器支持tiktoken- OpenAI 官方 Token 计数web-tree-sitter- 代码结构解析@secretlint/core- 安全扫描commander- CLI 框架globby- 文件模式匹配
运行要求#
- Node.js >= 20.0.0
- 或 Docker 环境