yamadashy/repomix · 上手攻略

  • 仓库:yamadashy/repomix
  • 链接:https://github.com/yamadashy/repomix
  • 分类:ai
  • 作者:Jay
  • 更新:2026-07-08

这是什么

Repomix 是一款将整个代码仓库打包为单个 AI 友好文件的工具(MIT 协议,TypeScript),Stars 26956,周增+140。它解决的核心问题是:当你需要把一个完整项目喂给 LLM(如 Claude、ChatGPT、DeepSeek)时,如何高效、结构化地传递所有代码,同时控制 token 用量、规避敏感信息泄露。

输出格式支持 XML(默认)、Markdown、JSON 三种,内含文件摘要、目录结构、分文件内容和自定义指令区域,AI 读取后能清晰理解项目全貌。


解决什么问题

  • LLM context 溢出:大型项目动辄数万 token,直接复制粘贴会超出上下文窗口,Repomix 用压缩和结构化输出大幅提升效率。
  • 手动复制易遗漏:人工复制文件容易漏掉关键文件或误操作,Repomix 自动扫描尊重 .gitignore 等规则。
  • 敏感信息泄露:内置 Secretlint 安全检查,运行后自动检测是否包含 API Key、Token 等敏感内容。
  • 远程仓库无法 clone:可直接处理 GitHub URL,无需本地 clone 即可打包任意公开仓库。
  • Token 用量可视化:输出包含每个文件及总体的 token 计数,便于在喂给 LLM 前估算成本。
  • 代码压缩(Tree-sitter)--compress 选项使用 Tree-sitter 提取关键代码元素,减少 token 但保留结构,对大仓库效果显著。

快速安装

npx 免安装(最快捷)

npx repomix@latest

无需预先安装,在任意项目目录直接运行,生成 repomix-output.xml

全局安装

# npm
npm install -g repomix

# yarn
yarn global add repomix

# bun
bun add -g repomix

# Homebrew (macOS/Linux)
brew install repomix

安装后全局可用 repomix 命令。

Docker 方式

# 打包当前目录
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix

# 打包远程仓库,输出到本地 output 目录
docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix \
  --remote https://github.com/yamadashy/repomix

在线使用

访问 https://repomix.com,无需安装,直接输入仓库地址即可使用,适合临时查看公开项目。


核心用法

基础打包

# 打包整个仓库(当前目录)
repomix

# 打包指定目录
repomix path/to/directory

# 打包指定文件(glob 模式)
repomix --include "src/**/*.ts,**/*.md"

排除文件

# 排除特定文件或目录
repomix --ignore "**/*.log,tmp/,node_modules/"

Repomix 默认尊重 .gitignore.ignore.repomixignore 文件规则。

远程仓库打包

# GitHub 简写
repomix --remote yamadashy/repomix

# 指定分支
repomix --remote https://github.com/yamadashy/repomix --remote-branch main

# 指定 commit
repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695

管道输入(stdin)

# 用 find 筛选文件
find src -name "*.ts" -type f | repomix --stdin

# 用 git ls-files 取得已跟踪的 TypeScript 文件
git ls-files "*.ts" | repomix --stdin

# 用 ripgrep 搜索包含 TODO 的文件
rg -l "TODO|FIXME" --type ts | repomix --stdin

# 用 fzf 交互式选择
find . -name "*.ts" | fzf -m | repomix --stdin

--stdin 接收文件路径列表,与 --include 行为合并,忽略规则仍然生效。

输出格式

# XML 格式(默认)
repomix

# Markdown 格式
repomix --style markdown

# JSON 格式
repomix --style json

代码压缩(Tree-sitter)

repomix --compress

# 结合远程仓库
repomix --remote yamadashy/repomix --compress

压缩模式对大仓库(>100 文件)效果明显,token 减少约 40-60%。

包含 Git Log

# 默认 50 条 commit
repomix --include-logs

# 指定 commit 数量
repomix --include-logs --include-logs-count 10

# 包含文件 diff
repomix --include-logs --include-diffs

初始化配置文件

repomix --init

生成 repomix.config.json,可预设常用参数、输出格式、忽略规则等。

配置 AI 指令

在配置文件中指定 output.instructionFilePath,可在输出末尾注入自定义提示词:

{
  "output": {
    "instructionFilePath": "./ai-instructions.txt"
  }
}

AI 读取时会看到这段指令,可引导 AI 按特定方式分析代码。


典型使用场景

场景 怎么用
让 LLM 做代码审查 repomix 后发给 Claude:"请审查整体结构并提出改进建议"
生成项目文档 打包后让 LLM 基于代码生成 README、API 文档
生成单元测试 让 AI 分析主要函数并生成测试用例
理解陌生项目 clone 不下来时直接 repomix --remote 快速了解全貌
迁移/重构辅助 打包后让 AI 分析依赖关系、提出重构方案
代码风格审查 让 AI 检查是否符合最佳实践、提出改进点
Codebase Q&A 将整个项目喂给 LLM,进行架构层面的问答

坑与注意

  1. Token 上限依然存在:Repomix 负责打包,但 LLM 上下文窗口仍有限。对于极大仓库(>1000 文件),建议先用 --include 筛选关键模块,或使用 --compress 压缩。

  2. 敏感信息只是提示,非完全过滤:Secretlint 检测到敏感内容时会报警,但不会自动删除。运行后务必检查输出文件,发现 API Key 等内容手动处理后再发给 LLM。

  3. .repomixignore 是独立规则:除了 .gitignore 外,Repomix 还有自己的忽略文件 .repomixignore,需单独维护。

  4. 隐私仓库不要直接用在线版:repomix.com 会处理你的代码,上传前确认仓库隐私级别。对于私有代码,用 npm install -g repomix 本地运行更安全。

  5. Tree-sitter 依赖:代码压缩依赖 Tree-sitter,部分语言支持可能不完整,极少数情况下压缩后语义可能略有差异。

  6. 输出文件命名固定:默认生成 repomix-output.xml(或对应格式),不会自动覆盖已有文件,再次运行前需删除旧文件或指定其他路径。

  7. Windows 路径问题:在 Windows 上使用 --stdin 时注意换行符差异,建议用 Git Bash 或 WSL。

  8. 中文项目名/路径:实测对中文路径支持良好,但建议用英文项目名避免潜在问题。


与同类对比

工具 核心定位 输出格式 Token 控制 安全检查 Stars
Repomix 仓库→AI友好文件 XML/MD/JSON Tree-sitter压缩 + Token计数 ✅ Secretlint 27k
Gitingest 同上,针对 Python/数据科学 结构化文本 简单压缩 9k
GitHub Copilot IDE 内代码补全 - - - 内嵌
Continue / CodeGPT IDE 内 RAG - - - 内嵌

Repomix 定位是独立 CLI 工具,不依赖 IDE,可在任何环境使用。Gitingest 更偏 Python 生态,Repomix 功能更全面(多种格式、安全检查、远程打包、stdin 管道)。


一句话推荐结论

当你需要把一个完整项目交给 LLM 分析、审查或生成代码时,Repomix 是目前最省心的选择——一条命令搞定,中文文档友好,不装 IDE 也能用。


来源:GitHub README(yamadashy/repomix)、repomix.com 官方文档、repo_cards 采集于 2026-07-08