名称: repomix 描述: 使用Repomix将整个代码库打包成单个AI友好文件。功能包括:使用可自定义的包含/排除模式打包代码库,生成多种输出格式(XML、Markdown、纯文本),保留文件结构和上下文,通过令牌计数优化AI消费,按文件类型和目录过滤,添加自定义标题和摘要。适用于为AI分析打包代码库、为LLM上下文创建仓库快照、分析第三方库、准备安全审计、生成文档上下文或评估不熟悉的代码库。
Repomix 技能
Repomix将整个仓库打包成单个、AI友好的文件。非常适合将代码库喂给LLM,如Claude、ChatGPT和Gemini。
何时使用
使用时机:
- 为AI分析打包代码库
- 为LLM上下文创建仓库快照
- 分析第三方库
- 准备安全审计
- 生成文档上下文
- 调查大型代码库中的错误
- 创建AI友好的代码表示
快速开始
检查安装
repomix --version
安装
# npm
npm install -g repomix
# Homebrew (macOS/Linux)
brew install repomix
基本用法
# 打包当前目录(生成repomix-output.xml)
repomix
# 指定输出格式
repomix --style markdown
repomix --style json
# 打包远程仓库
npx repomix --remote owner/repo
# 自定义输出与过滤器
repomix --include "src/**/*.ts" --remove-comments -o output.md
核心能力
仓库打包
- AI优化格式,带有清晰分隔符
- 多种输出格式:XML、Markdown、JSON、纯文本
- Git感知处理(尊重.gitignore)
- 用于LLM上下文管理的令牌计数
- 敏感信息的安全检查
远程仓库支持
无需克隆即可处理远程仓库:
# 简写
npx repomix --remote yamadashy/repomix
# 完整URL
npx repomix --remote https://github.com/owner/repo
# 特定提交
npx repomix --remote https://github.com/owner/repo/commit/hash
注释移除
从支持的语言中剥离注释(HTML、CSS、JavaScript、TypeScript、Vue、Svelte、Python、PHP、Ruby、C、C#、Java、Go、Rust、Swift、Kotlin、Dart、Shell、YAML):
repomix --remove-comments
常见用例
代码审查准备
# 为AI审查打包功能分支
repomix --include "src/**/*.ts" --remove-comments -o review.md --style markdown
安全审计
# 打包第三方库
npx repomix --remote vendor/library --style xml -o audit.xml
文档生成
# 打包文档和代码
repomix --include "src/**,docs/**,*.md" --style markdown -o context.md
错误调查
# 打包特定模块
repomix --include "src/auth/**,src/api/**" -o debug-context.xml
实施计划
# 完整代码库上下文
repomix --remove-comments --copy
命令行参考
文件选择
# 包含特定模式
repomix --include "src/**/*.ts,*.md"
# 忽略额外模式
repomix -i "tests/**,*.test.js"
# 禁用.gitignore规则
repomix --no-gitignore
输出选项
# 输出格式
repomix --style markdown # 或 xml, json, plain
# 输出文件路径
repomix -o output.md
# 移除注释
repomix --remove-comments
# 复制到剪贴板
repomix --copy
配置
# 使用自定义配置文件
repomix -c custom-config.json
# 初始化新配置
repomix --init # 创建repomix.config.json
令牌管理
Repomix自动为单个文件、总仓库和每格式输出计数令牌。
典型LLM上下文限制:
- Claude Sonnet 4.5: ~200K 令牌
- GPT-4: ~128K 令牌
- GPT-3.5: ~16K 令牌
令牌计数优化
理解代码库的令牌分布对于优化AI交互至关重要。使用–token-count-tree选项可视化项目中令牌使用:
repomix --token-count-tree
这显示带有令牌计数的代码库层次视图:
🔢 令牌计数树:
────────────────────
└── src/ (70,925 令牌)
├── cli/ (12,714 令牌)
│ ├── actions/ (7,546 令牌)
│ └── reporters/ (990 令牌)
└── core/ (41,600 令牌)
├── file/ (10,098 令牌)
└── output/ (5,808 令牌)
您还可以设置最小令牌阈值以关注较大文件:
repomix --token-count-tree 1000 # 仅显示1000+令牌的文件/目录
这帮助您:
- 识别可能超过AI上下文限制的令牌密集文件
- 使用–include和–ignore模式优化文件选择
- 通过针对最大贡献者规划压缩策略
- 在准备代码进行AI分析时平衡内容与上下文
安全考虑
Repomix使用Secretlint检测敏感数据(API密钥、密码、凭证、私钥、AWS秘密)。
最佳实践:
- 始终在分享前审查输出
- 对敏感文件使用
.repomixignore - 对未知代码库启用安全检查
- 避免打包
.env文件 - 检查硬编码凭证
如果需要,禁用安全检查:
repomix --no-security-check
实施工作流
当用户请求仓库打包时:
-
评估需求
- 识别目标仓库(本地/远程)
- 确定所需输出格式
- 检查敏感数据问题
-
配置过滤器
- 为相关文件设置包含模式
- 为不必要文件添加忽略模式
- 启用/禁用注释移除
-
执行打包
- 运行带适当选项的repomix
- 监控令牌计数
- 验证安全检查
-
验证输出
- 审查生成的文件
- 确认无敏感数据
- 检查目标LLM的令牌限制
-
交付上下文
- 向用户提供打包文件
- 包括令牌计数摘要
- 注意任何警告或问题
参考文档
详细信息,参见:
额外资源
- GitHub: https://github.com/yamadashy/repomix
- 文档: https://repomix.com/guide/
- MCP服务器: 可用于AI助手集成