name: repomix description: 使用Repomix的指南 - 一个强大工具,可将整个仓库打包成单个AI友好文件。适用于为AI分析打包代码库、为LLM生成上下文、创建代码库快照、分析第三方库或准备仓库进行安全审计。
Repomix 技能
Repomix 是一个强大工具,可将整个仓库打包成单个AI友好文件。完美适用于需要将代码库输入大型语言模型(LLM)或其他AI工具(如Claude、ChatGPT和Gemini)的场景。
何时使用此技能
在以下情况下使用此技能:
- 用户需要为AI分析打包代码库
- 为LLM消费准备仓库上下文
- 生成代码库快照用于文档
- 分析第三方库或仓库
- 创建代码项目的AI友好表示
- 调查大型代码库中的错误
- 对仓库进行安全审计
- 为实施计划生成上下文
核心能力
1. 仓库打包
Repomix 将整个仓库打包成单个文件,具有:
- AI优化的格式化,带清晰分隔符
- 多种输出格式(XML、Markdown、JSON、纯文本)
- Git感知处理(尊重.gitignore)
- 用于LLM上下文管理的令牌计数
- 敏感信息安全检查
2. 远程仓库支持
无需克隆即可处理远程仓库:
- 简写:
npx repomix --remote yamadashy/repomix - 完整URL:
npx repomix --remote https://github.com/owner/repo - 特定提交:
npx repomix --remote https://github.com/owner/repo/commit/hash
3. 注释移除
在需要时从支持的语言中剥离注释:
- 支持:HTML、CSS、JavaScript、TypeScript、Vue、Svelte、Python、PHP、Ruby、C、C#、Java、Go、Rust、Swift、Kotlin、Dart、Shell、YAML
- 启用方式:
--remove-comments或配置文件
安装
首先检查是否安装:
repomix --version
使用首选方法安装:
# npm
npm install -g repomix
# yarn
yarn global add repomix
# bun
bun add -g repomix
# Homebrew (macOS/Linux)
brew install repomix
基本用法
打包当前目录
# 基本打包(生成 repomix-output.xml)
repomix
# 指定输出格式
repomix --style markdown
repomix --style json
repomix --style plain
# 自定义输出路径
repomix -o custom-output.xml
打包特定目录
repomix /path/to/directory
打包远程仓库
# 简写格式
npx repomix --remote owner/repo
# 完整URL
npx repomix --remote https://github.com/owner/repo
# 特定提交
npx repomix --remote https://github.com/owner/repo/commit/abc123
命令行选项
文件选择
# 包含特定模式
repomix --include "src/**/*.ts,*.md"
# 忽略额外模式
repomix -i "tests/**,*.test.js"
# 禁用.gitignore规则
repomix --no-gitignore
# 禁用默认忽略模式
repomix --no-default-patterns
输出配置
# 输出格式
repomix --style markdown # 或 xml、json、plain
# 输出文件路径
repomix -o output.md
# 移除注释
repomix --remove-comments
# 显示行号
repomix --no-line-numbers # 禁用行号
安全与分析
# 运行安全检查
repomix --no-security-check # 禁用安全扫描
# 复制到剪贴板
repomix --copy # 将输出复制到剪贴板
# 详细输出
repomix --verbose
配置
# 使用自定义配置文件
repomix -c custom-config.json
# 初始化新配置
repomix --init # 创建 repomix.config.json
配置文件
在项目根目录创建 repomix.config.json:
{
"output": {
"filePath": "repomix-output.xml",
"style": "xml",
"removeComments": false,
"showLineNumbers": true,
"copyToClipboard": false
},
"include": ["**/*"],
"ignore": {
"useGitignore": true,
"useDefaultPatterns": true,
"customPatterns": [
"additional-folder",
"**/*.log",
"**/tmp/**"
]
},
"security": {
"enableSecurityCheck": true
}
}
忽略模式
.repomixignore 文件
创建 .repomixignore 用于Repomix特定忽略模式(格式同.gitignore):
# 构建产物
dist/
build/
*.min.js
# 测试文件
**/*.test.ts
**/*.spec.ts
coverage/
# 大文件
*.mp4
*.zip
# 敏感文件
.env*
secrets/
优先级顺序
- CLI忽略模式(
-i标志) .repomixignore文件- 配置文件中的自定义模式
.gitignore文件(如果启用)- 默认模式(如果启用)
输出格式
XML 格式(默认)
最适合结构化AI消费:
repomix --style xml
Markdown 格式
人类可读,带语法高亮:
repomix --style markdown
JSON 格式
用于程序化处理:
repomix --style json
纯文本
简单拼接:
repomix --style plain
使用案例与示例
1. 代码审查准备
# 为AI审查打包功能分支
repomix --include "src/**/*.ts" --remove-comments -o feature-review.md --style markdown
2. 安全审计
# 打包第三方库进行分析
npx repomix --remote vendor/library --style xml -o audit.xml
3. 文档生成
# 打包文档和代码
repomix --include "src/**,docs/**,*.md" --style markdown -o context.md
4. 错误调查
# 打包特定模块
repomix --include "src/auth/**,src/api/**" -o debug-context.xml
5. 实施计划
# 用于计划的完整代码库上下文
repomix --remove-comments --copy
令牌管理
Repomix 自动为以下计数令牌:
- 单个文件
- 总仓库
- 每种格式输出
使用令牌计数管理LLM上下文限制:
- Claude: ~200K 令牌
- GPT-4: ~128K 令牌
- GPT-3.5: ~16K 令牌
安全考虑
敏感数据检测
Repomix 使用 Secretlint 检测:
- API密钥和令牌
- 密码和凭据
- 私钥
- AWS秘密
- 数据库连接字符串
如需禁用:
repomix --no-security-check
最佳实践
- 共享前始终审查输出
- 使用
.repomixignore处理敏感文件 - 对未知代码库启用安全检查
- 避免打包
.env文件 - 检查硬编码凭据
性能优化
大型仓库
Repomix 使用工作线程进行并行处理:
- 高效处理大型代码库
- 示例:facebook/react 处理速度提升29倍(123秒 → 4秒)
优化技巧
# 排除不必要文件
repomix -i "node_modules/**,dist/**,*.min.js"
# 仅处理特定目录
repomix --include "src/**/*.ts"
# 禁用行号以减小输出
repomix --no-line-numbers
工作流集成
与 Claude Code
# 打包并分析在一个工作流中
repomix --style markdown --copy
# 然后粘贴到Claude进行分析
与 CI/CD
# 为发布生成代码库快照
repomix --style markdown -o release-snapshot.md
与 Git Hooks
# 预提交钩子生成上下文
repomix --include "src/**" -o .context/latest.xml
常见模式
完整仓库打包
repomix --remove-comments --style markdown -o full-repo.md
仅源代码
repomix --include "src/**/*.{ts,tsx,js,jsx}" -i "**/*.test.*"
文档包
repomix --include "**/*.md,docs/**" --style markdown
TypeScript 项目
repomix --include "**/*.ts,**/*.tsx" --remove-comments --no-line-numbers
远程分析
npx repomix --remote owner/repo --style xml -o analysis.xml
故障排除
问题:输出太大
# 排除不必要文件
repomix -i "node_modules/**,dist/**,coverage/**"
# 处理特定目录
repomix --include "src/**"
问题:缺少文件
# 禁用.gitignore规则
repomix --no-gitignore
# 检查忽略模式
cat .repomixignore
问题:敏感数据警告
# 审查标记文件
# 添加到 .repomixignore
# 或禁用检查:--no-security-check
实施工作流
当用户请求仓库打包时:
-
评估需求
- 识别目标仓库(本地/远程)
- 确定所需输出格式
- 检查敏感数据问题
-
配置过滤器
- 设置相关文件的包含模式
- 添加不必要文件的忽略模式
- 启用/禁用注释移除
-
执行打包
- 使用适当选项运行repomix
- 监控令牌计数
- 验证安全检查
-
验证输出
- 审查生成的文件
- 确认无敏感数据
- 检查目标LLM的令牌限制
-
交付上下文
- 向用户提供打包文件
- 包含令牌计数摘要
- 注意任何警告或问题
最佳实践
- 从默认开始:先运行基本
repomix,然后细化 - 使用 .repomixignore:对于复杂模式比CLI标志更好
- 启用安全检查:特别是第三方代码
- 选择正确格式:AI用XML,人类用Markdown
- 监控令牌计数:保持在LLM限制内
- 移除注释:当专注于逻辑而非文档时
- 版本化输出:包含在.gitignore中,按需重新生成
- 测试模式:验证包含/排除按预期工作
相关工具
- Context7:用于最新库文档
- Git:用于仓库历史分析
- Secretlint:用于安全扫描
- 令牌计数器:用于LLM上下文管理
附加资源
- GitHub:https://github.com/yamadashy/repomix
- 文档:https://repomix.com/guide/
- MCP 服务器:可用于AI助手集成
- Claude Code 插件:官方集成可用