TopGit
Đánh giá repo GitHub

Repomix: đóng gói codebase cho LLM

yamadashy/repomix
RTopGit review image for yamadashy/repomix
Review by Topgit.dev for yamadashy/repomix, with GitHub repository stats and README context.
Nhận định nhanh

Repomix là công cụ dòng lệnh gộp toàn bộ một repository thành một file XML, Markdown, JSON hoặc plain-text duy nhất, để bạn đưa cả codebase vào context window của LLM thay vì copy-paste từng file. Luồng làm việc cốt lõi chỉ là một lệnh, không cần cấu hình, và --compress dùng Tree-sitter để thu nhỏ repo lớn thay vì tự chọn file. Đáng dùng khi review hay refactor toàn repo bằng AI là việc thường xuyên; dán một file nhỏ thì copy-paste vẫn nhanh hơn.

Sao
★ 28.9k
Fork
⑂ 1.6k
Ngôn ngữ
TypeScript
Giấy phép
MIT
Chủ đề
AI Tools
Cập nhật
Oct 2026
Trang chủ
GitHub

Repomix làm gì

Repomix là một CLI viết bằng Node.js, có sẵn bản Docker image, quét một thư mục cục bộ hoặc một GitHub repository từ xa rồi gộp mọi file khớp vào một file đầu ra định dạng sẵn cho AI. Nó viết header hướng dẫn AI và cây thư mục, rồi đến nội dung từng file, bọc trong thẻ XML, tiêu đề Markdown, key JSON, hoặc dấu phân cách plain-text tùy cờ --style. Nó cũng đếm token từng file để bạn biết trước output chiếm bao nhiêu context window.

Các tính năng cốt lõi giúp codebase sẵn sàng cho AI

  • ✓Lọc file theo git: tự động tôn trọng .gitignore, .ignore và file .repomixignore riêng, nên build output hay node_modules không bao giờ lọt vào file đã đóng gói.
  • ✓Tích hợp Secretlint: quét từng file theo các định dạng credential đã biết trước khi đóng gói và loại bỏ file khớp, giúp chặn API key hay token lọt vào prompt.
  • ✓Nén bằng Tree-sitter: cờ --compress trích xuất chữ ký hàm và class thay vì toàn bộ thân hàm, giảm số token mà vẫn giữ được cấu trúc code dễ đọc.
  • ✓Đếm token theo từng file và tổng thể ở mỗi lần chạy, để bạn biết trước khi dán liệu output có vừa context window của model hay không.
  • ✓Bốn định dạng đầu ra chọn bằng --style: XML (mặc định), Markdown, JSON và plain text, mỗi định dạng đều có phần tóm tắt file, cây thư mục và nội dung file.
  • ✓Đóng gói repo từ xa: trỏ --remote vào một URL GitHub, cú pháp rút gọn owner/repo, hoặc một branch/commit cụ thể, Repomix tự clone và đóng gói mà bạn không cần clone trước.
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao ↗

Cài đặt Repomix

Cách nhanh nhất để thử Repomix là không cần cài gì cả: chạy `npx repomix@latest` trong thư mục project, nó sẽ đóng gói thư mục hiện tại thành file repomix-output.xml. Nếu dùng thường xuyên, cài global bằng `npm install -g repomix`, hoặc thay bằng yarn (`yarn global add repomix`), bun (`bun add -g repomix`), hay Homebrew (`brew install repomix`) trên macOS/Linux, sau đó chỉ cần gõ `repomix`. Nếu không muốn cài cả toolchain Node, Docker image cũng làm y hệt: `docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix` mount thư mục hiện tại và đóng gói ngay trong container. Ngoài ra còn có bản web tại repomix.com nếu bạn chỉ muốn dán URL repo và tải output về, cùng extension Chrome/Firefox thêm nút Repomix vào trang GitHub repo, và một extension VS Code cộng đồng tên Repomix Runner.

Đóng gói repository cục bộ và từ xa

Chạy `repomix` không kèm tham số sẽ đóng gói toàn bộ thư mục hiện tại; `repomix path/to/directory` thu hẹp về một thư mục, còn `--include "src/**/*.ts,**/*.md"` hoặc `--ignore "**/*.log,tmp/"` thu hẹp thêm bằng glob pattern. Để đóng gói một project không phải của bạn mà không cần clone, `--remote` nhận một URL GitHub đầy đủ hoặc cú pháp rút gọn owner/repo, và `--remote-branch` ghim vào tên branch, tag, hoặc commit hash. `--stdin` đọc danh sách đường dẫn file từ standard input, nên bạn có thể pipe kết quả của `git ls-files`, `rg --files`, hay một lượt chọn bằng `fzf` thẳng vào Repomix thay vì tự gõ include pattern. `--include-logs` thêm lịch sử commit git (mặc định 50 commit, hoặc tùy chỉnh bằng `--include-logs-count`) để có ngữ cảnh code đã tiến hóa ra sao, còn `--compress` chạy bước Tree-sitter để thu nhỏ repo lớn. Chạy `repomix --init` sẽ tạo file repomix.config.json để bạn không phải gõ lại flag mỗi lần.

Điểm mạnh

  • ✓Một lệnh duy nhất, không cần cấu hình bắt buộc, là đủ để đi từ repo đến file đã đóng gói — `npx repomix@latest` không cần cài gì trước.
  • ✓Tôn trọng git theo mặc định: .gitignore, .ignore và .repomixignore được áp dụng tự động, khỏi phải tự chọn tay để loại bỏ build artifact.
  • ✓Bốn định dạng output có thể hoán đổi cho nhau (XML, Markdown, JSON, plain text) nghĩa là file đóng gói khớp với bất kỳ LLM hay script downstream nào đang cần.
  • ✓Quét Secretlint và bước nén Tree-sitter đều chạy sẵn trong luồng bình thường, không phải bước phụ bạn phải nhớ bật.

Bảo mật: Repomix bảo vệ gì và không bảo vệ gì

  • △Secretlint chỉ bắt các mẫu credential đã biết trước, không phải mọi dữ liệu nhạy cảm — một password hardcode ở định dạng lạ hay comment chứa thông tin nhạy cảm vẫn có thể lọt qua, nên vẫn cần tự xem lại output trước khi gửi đi.
  • △Đóng gói chỉ là chọn file cục bộ, không phải một lớp kiểm soát quyền truy cập: nếu bạn đọc được file của một repo riêng tư, Repomix sẽ đưa chúng vào output, nghĩa là ai nhận file đã đóng gói cũng nhận toàn bộ nội dung đó.
  • △Cờ --compress giữ cấu trúc chứ không giữ toàn bộ logic, nên bản nén hợp để hỏi về kiến trúc chứ không hợp cho một review bảo mật cần thấy từng dòng trong thân hàm.
  • △Extension trình duyệt và extension VS Code (Repomix Runner) là các dự án tách riêng khỏi CLI lõi, và bản VS Code được ghi rõ là do cộng đồng duy trì chứ không phải đội ngũ chính.

Gitingest và các công cụ tương tự

Gitingest — chính README của Repomix gợi ý đây là lựa chọn thay thế phù hợp hơn cho codebase thiên về Python và data science; một công cụ chạy trên web, biến URL GitHub thành bản text digest mà không cần cài gì.files-to-prompt — một CLI nhẹ hơn của Simon Willison gộp một thư mục thành một file prompt duy nhất; nó không có phần nén, quét secret hay đếm token theo từng file như Repomix, nên hợp cho việc dùng một lần hơn là dùng lặp lại thường xuyên.

Câu hỏi thường gặp

Repomix có miễn phí và mã nguồn mở không?

Có, Repomix miễn phí và mã nguồn mở, phát hành theo giấy phép MIT, nên bạn có thể dùng, chỉnh sửa và phân phối lại mà không phải trả phí.

Repomix có phát hiện và loại bỏ secret khỏi output không?

Repomix chạy Secretlint trên từng file trước khi đóng gói và loại bỏ file khớp với các định dạng credential đã biết, nên API key hay token phổ biến không bị lọt vào output sẵn sàng cho AI.

Repomix có hỗ trợ private GitHub repository không?

Không được nêu rõ — README chỉ cho thấy --remote đóng gói URL GitHub công khai và cú pháp rút gọn, chứ không mô tả cách xác thực vào repository riêng tư, nên hãy coi việc hỗ trợ private repo là chưa được xác nhận.

Repomix hỗ trợ những định dạng output nào?

Repomix hỗ trợ bốn định dạng output chọn bằng cờ --style: XML (mặc định), Markdown, JSON và plain text, mỗi định dạng đều tổ chức thành phần tóm tắt file, cấu trúc thư mục và nội dung file.

Repomix xử lý codebase lớn và giới hạn token như thế nào?

Repomix báo số token cho từng file và cho toàn bộ output đã đóng gói, còn cờ --compress dùng Tree-sitter để rút gọn codebase lớn xuống còn chữ ký hàm và class, giúp vừa với context window của LLM.

Tôi có thể dùng Repomix trong Docker container không?

Có, Repomix cung cấp sẵn Docker image tại ghcr.io/yamadashy/repomix; chạy `docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix` sẽ mount thư mục hiện tại và đóng gói mà không cần cài Node.js cục bộ.

Vấn đề mà Repomix giải quyết

Đưa một codebase vào LLM thường có nghĩa là mở từng file một rồi dán vào cửa sổ chat, cách này gãy ngay khi câu hỏi trải rộng qua nhiều file và tốn context vào việc model phải tự xử lý các định dạng dán không đồng nhất. Repomix nhắm đúng điểm nghẽn đó: nó biến cả một repo, kể cả một GitHub repo từ xa qua `--remote` mà bạn còn chưa clone, thành một file có cấu trúc nhất quán kèm cây thư mục và số token, để model nhận được toàn cảnh chỉ trong một lần dán.

Các trường hợp sử dụng tốt nhất

  • •Lấy nhanh một bản review kiến trúc cho một repo bạn vừa tiếp quản, bằng cách đóng gói toàn bộ rồi nhờ LLM tóm tắt cấu trúc và chỉ ra chỗ rủi ro.
  • •Tạo README hay tài liệu onboarding cho một project sẵn có dựa trên code thật, thay vì viết theo trí nhớ.
  • •Review một repo mã nguồn mở từ xa trước khi phụ thuộc vào nó, dùng --remote để đóng gói một URL GitHub mà không cần clone về máy.
  • •Đưa lịch sử commit qua --include-logs kèm theo code để LLM suy luận được một bug hay pattern đã tiến hóa ra sao, chứ không chỉ thấy trạng thái hiện tại.
  • •Đóng gói một repo lớn bằng --compress khi tập file gốc sẽ vượt quá context window của model.

Ai nên dùng — và ai nên bỏ qua

Hãy thử Repomix nếu bạn thường xuyên nhờ LLM suy luận về cả một project — refactor, review kiến trúc, viết tài liệu onboarding — và đã chán việc tự tay gom context từ từng file; CLI, Docker image và bản web repomix.com đều làm cùng một việc đóng gói, nên chọn cái nào hợp workflow của bạn. Bỏ qua nếu bạn chỉ từng dán một, hai file mỗi lần, vì phần cài đặt và các flag không mang lại lợi ích gì hơn copy file trực tiếp; các repo data-science thiên về Python cũng được README của chính Repomix khuyên nên dùng Gitingest thay thế.

Repo liên quan

Nguồn & ghi công

Các thông tin và trích dẫn trong bài này lấy từ repository GitHub yamadashy/repomix và README của nó (github.com/yamadashy/repomix).

Dữ liệu GitHub · đồng bộ lần cuối 15 thg 8, 2026Đánh giá bởi Henry
← Về TopGit

Chưa chắc repomix có hợp với bạn?

Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về repomix.

GitHub