This is the official recommended usage guide for repomix-rs— repomix-rs is a high-performance Rust rewriting of the original Repomix (TypeScript), fully compatible with the original usage pattern, and Faster, Safer, and better suited for AI Agent scenarios.
repomix-rs is a tool that packages an entire codebase into a single, AI-friendly file. It works seamlessly with all major LLM application scenarios including Hermes Agent, Claude, ChatGPT, and Gemini. Through repomix-rs, your codebase is presented to AI in a structured, token-controllable format, enabling AI to perform code reviews, documentation generation, and vulnerability audits more accurately.
Compared to the original Repomix, repomix-rs rewrites all core logic in Rust, bringing a qualitative leap in performance, security, and embedding capabilities.
| Feature | repomix-rs (Rust) | Original Repomix (TypeScript) |
|---|---|---|
| Core Language | Rust | TypeScript |
| Runtime Speed | ||
| Millisecond-level (parallel file scanning) | ||
| Second-level (single-threaded Node.js) | ||
| Memory Safety | Compile-time guaranteed | Runtime checking |
| Built-in MCP Support | ✅ Official MCP Server included | ❌ Additional configuration required |
| Secretlint Integration | ✅ | ✅ |
| Tree-sitter | ✅ 10 languages | ✅ 10 languages |
| Token Counting | tiktoken-rs (o200k_base ) |
|
| tiktoken (JS) | ||
| Remote Repository Packing | ✅ git clone + cleanup | ✅ |
| Parallel Processing | rayon + tokio | No parallelism |
Have you noticed a trend? More and more developer ecosystem infrastructure is moving from TypeScript/Node.js to Rust. This is no accident — Rust's language characteristics are a perfect match for the demands of the AI era:
Rust-based high-performance runtime Bun uses Rust to rewrite the JavaScript engine, delivering:
Bun's success proves the feasibility of Rust as a JS engine底层, and repomix-rs leverages Rust's high-performance characteristics to achieve a repomix rewrite.
How Vite ditched Webpack and used Rust to refactor frontend builds Webpack was the ruler of frontend builds, but it suffered from:
The Vue.js team decided to ditch Webpack and rewrite Vite in Rust:
Vite's success proves that Rust is the core choice for the next generation of frontend build engines.
Open your terminal, navigate to the project root directory, and execute any of the following:
npx repomix-rs .
npm install -g repomix-rs
repomix .
After execution, an output file (default repomix-output.xml
) will be generated in the current directory. Drag that file into the Hermes Agent chat window and send the message: "Please read this project structure file first".
💡
Why repomix-rs?In AI Agent scenarios like Hermes Agent, we recommend the Rust version repomix-rs over the TypeScript original:
Smaller image size: Rust binary ~15MB vs Node.js runtime 50+MBFaster startup: Rust ~0.05s vs Node.js ~200msSmaller memory footprint: Rust ~50MB vs Node.js ~150MBBetter native MCP support: repomix-rs includes a built-in MCP Server
This is a technology choice problem— The success of Bun and Vite has already proven:
In the AI era, Rust is the better infrastructure choice.
No cloning required — one command to pack a remote GitHub repository:
npx repomix-rs --remote https://github.com/username/project-name
Specify a branch (safer):
npx repomix-rs --remote https://github.com/username/project-name --branch main
repomix-rs's remote packing is based on the system
git
command. The first run pulls the full repository snapshot.
If git is unavailable, this step is skipped with a warning and the main process continues uninterrupted.
Create a .repomixrc
configuration file:
{
"include": ["src/**/*", "tests/**/*", "pyproject.toml", "README.md"],
"exclude": ["**/*.log", "**/dist/**", "**/.git/**", "node_modules/**"]
}
Enable compression (extracts function signatures, compression ratio up to 50%-90%):
npx repomix-rs --compress --remove-comments --remove-empty-lines .
Include only specific language files and ignore test directories:
npx repomix-rs --include "*.rs,*.toml,Cargo.*" --ignore "target/**,tests/**" .
repomix-rs supports four output formats, switchable via the --style
parameter:
npx repomix-rs --style markdown --output output.md .
npx repomix-rs --style json --output output.json .
npx repomix-rs --style plain --output output.txt .
Hermes Agent does not automatically scan attachment content — it must be triggered manually. The correct process is:
npx repomix-rs .
to generate the packed filerepomix-output.xml
(or .md
/ .txt
) into the Hermes Agent chat windowNote: Hermes only supports
.md
/.xml
/.txt
plain text files.
If you accidentally send a compressed archive or binary file, the AI side will not be able to parse it.
repomix-rs includes a built-in MCP Server that can be directly embedded into any AI Agent supporting the Model Context Protocol (including Hermes Agent, Cursor, and Claude Desktop):
repomix --mcp
After startup, the following MCP tools are exposed:
| Tool Name | Purpose |
|---|---|
pack_codebase |
|
| Pack a local codebase directory | |
pack_remote_repository |
|
| Fetch and pack a remote Git repository | |
read_repomix_output |
|
| Read a previously generated repomix output file | |
grep_repomix_output |
|
| Search content within the output file |
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"repomix": {
"command": "repomix",
"args": ["--mcp"]
}
}
}
Go to Settings → MCP → Add new global MCP server:
Command: repomix
Args: --mcp
| Scenario | Original Repomix (Node.js) | repomix-rs (Rust) | Speedup |
|---|---|---|---|
| Small-to-medium projects (< 500 files) | ~3-8 seconds | ~0.3-0.8 seconds | 5-10× |
| Medium projects (500-5,000 files) | ~30-120 seconds | ~2-8 seconds | 15-40× |
| Large projects (5,000+ files) | Risk of OOM | Stable completion | Unbounded |
| Remote repository packing | Slow (Node.js clone) | Extremely fast (git + rayon) | 10-20× |
repomix --mcp
directly integrates with Hermes, Claude, Cursor, and more with no additional wrapper layer needed.tiktoken-rs
uses OpenAI's official o200k_base
encoding, consistent with GPT-4o, with far less counting bias than the JS version.Q: What's the difference between npx repomix-rs and npx repomix?
A: npx repomix-rs
invokes repomix-rs (Rust implementation), which is faster and more stable; npx repomix
invokes the original TypeScript implementation. Their command-line parameters are largely compatible.
Q: Can repomix-rs handle my Node.js project?
A: Absolutely — it is language-agnostic. repomix-rs identifies file types through file extensions and glob rules.
Q: How do I verify that exclude rules are working?
A: After generating the output, run a grep check: grep -i "secrets\|password\|API_KEY" repomix-output.xml
. If sensitive words appear, check whether your glob rules are correct (e.g., **/.env
, not .env
).
Q: Does repomix-rs support Windows?
A: Yes, Windows x64 precompiled binaries have been released. The npm package also covers Linux/macOS/Windows.
👉 https://github.com/sopaco/repomix-rs
This guide is adapted from the original Hermes Agent Repomix usage guide, with all content migrated to repomix-rs.
repomix-rs project: https://github.com/sopaco/repomix-rs
repomix-rs
, CLI command: repomix