欣淇
发布于 2026-05-17 / 0 阅读
0
0

📦 Repomix:25k Stars,一行命令把代码库喂给 AI,不再手动复制

项目地址:yamadashy/repomix | ⭐ 25k Stars | 🛠 TypeScript | 作者 Yamada Shy


🇺🇸 This article is also available in Chinese. 🌐


老实说,每次要把整个项目丢给 AI 分析的时候,我都挺头疼的。一个一个复制文件?太慢。写个脚本拼起来?又要折腾。拖文件夹进去?Context 窗口不够用,token 还浪费。

Repomix 就是来解决这个问题的 —— 一命令把你整个代码库打包成一个 AI 友好格式的 XML/Markdown 文件,还自动统计 token 数。25k Stars,JSNation Open Source Awards 2025 提名,不是玩具。


一、一行命令就够了

安装都不用,直接跑:

npx repomix@latest

在当前目录生成 repomix-output.xml,然后丢给 Claude/ChatGPT/DeepSeek 说 "帮我 review 一下代码" 就行。

想全局装一个也简单:

npm install -g repomix
# 或者 brew install repomix

repomix 敲一下,完事儿。


二、最骚的操作

远程仓库直接打包

不需要 clone 就能打包 GitHub 上的项目:

repomix --remote yamadashy/repomix

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

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

只选自己关心的文件

# 只打包 src 下的 TS 和 MD 文件
repomix --include "src/**/*.ts,**/*.md"

# 排除日志和临时目录
repomix --ignore "**/*.log,tmp/"

# 最强的是 --stdin 模式,可以组合任意查找工具
find src -name "*.ts" -type f | repomix --stdin

# 或者用 git 只选被追踪的文件
git ls-files "*.ts" | repomix --stdin

# fzf 交互式选择
fzf -m | repomix --stdin

带 Git 历史

# 带上最近 50 条 commit 信息
repomix --include-logs

# 再加 diff 对比
repomix --include-logs --include-diffs

压缩模式

用 Tree-sitter 提取关键代码结构,大幅减少 token 数:

repomix --compress

三、我踩过的坑

不设 .repomixignore 的话,node_modules 也会被打包。 虽然默认会尊重 .gitignore,但项目里有些测试数据文件还是得手动排除。建议在项目根目录加一个:

echo "test/fixtures/" >> .repomixignore
echo "*.snapshot" >> .repomixignore

另外,输出文件默认是 XML 格式,AI 理解最好。但如果你更习惯 Markdown,加个 --output-style markdown 就行。


四、总结

  • 一行命令打包整个代码库给 AI,npx repomix 都不用安装
  • 远程仓库直打包,不 clone 也能分析别人的项目
  • --stdin 模式可以跟 find/git/fzf 任意组合,只选需要的文件
  • 内置 token 统计,不会超 context 窗口
  • JSNation 2025 提名,社区验证过的东西

有啥想把整个项目塞给 AI 分析的场景,就用它。别一个一个文件复制了。


评论