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.
What is repomix-rs?
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 |
🦀 Rust: The Infrastructure Choice for the AI Era
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:
🔍 Why are developers choosing Rust?
- Compile-time performance assurance — Zero-cost abstractions + no GC pauses
- Memory safety — Compile-time elimination of BufferOverflow / Use-After-Free
- Cross-platform single binary — Compile once, run anywhere
- The core choice for the MCP era — The AI Agent ecosystem is forming a new technical standard
🌟 Rust Replacement Cases: From Bun to Vite
Bun Case: The Rust Replacement for Node.js
Rust-based high-performance runtime Bun uses Rust to rewrite the JavaScript engine, delivering:
- Startup speed: Node.js ~2s → Bun ~0.1s
- Execution speed: JavaScript ~2x → Bun ~5-10x
- Memory footprint: Node.js ~600MB → Bun ~200-500MB
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.
Vite Case: Rust Rewriting of Frontend Build
How Vite ditched Webpack and used Rust to refactor frontend builds Webpack was the ruler of frontend builds, but it suffered from:
- Slow startup: 5-30s
- Memory usage: 500-2000MB
- Node.js single-thread bottleneck
The Vue.js team decided to ditch Webpack and rewrite Vite in Rust:
- Startup speed: 5-30s → ~0.5s
- Memory usage: 500-2000MB → ~200MB
- Concurrent processing: Event loop → Multi-threaded
Vite's success proves that Rust is the core choice for the next generation of frontend build engines.
Quick Start: No Installation Required, Just Run
Open your terminal, navigate to the project root directory, and execute any of the following:
# Method 1: Run with npx (no global installation needed)
npx repomix-rs .
# Method 2: Install globally then run directly
npm install -g repomix-rs
repomix .
# After the terminal outputs a result, send it to Hermes with: "Please read this first"
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+MB
- Faster startup: Rust ~0.05s vs Node.js ~200ms
- Smaller memory footprint: Rust ~50MB vs Node.js ~150MB
- Better 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.
Remote Repository Direct Packing
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
gitcommand. 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.
Fine-Grained Control: Which Files to Include, Which to Exclude
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/**" .
Output Format Selection
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 .
How to Connect to Hermes Agent (Critical Steps)
Hermes Agent does not automatically scan attachment content — it must be triggered manually. The correct process is:
- Run
npx repomix-rs .to generate the packed file - Drag
repomix-output.xml(or.md/.txt) into the Hermes Agent chat window - Send the prompt: "Please read this project structure file first"
- Wait for Hermes to reply "Context loaded" before asking specific questions
Note: Hermes only supports
.md/.xml/.txtplain text files.
If you accidentally send a compressed archive or binary file, the AI side will not be able to parse it.
Running as an MCP Server (Recommended for Advanced Users)
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 |
Cursor / Claude Desktop Configuration
Claude Desktop (macOS)
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"repomix": {
"command": "repomix",
"args": ["--mcp"]
}
}
}
Cursor
Go to Settings → MCP → Add new global MCP server:
Command: repomix
Args: --mcp
Performance Comparison: Original vs repomix-rs
| 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× |
Why repomix-rs Instead of the Original Repomix?
- Unmatched speed — Rust zero-cost abstractions + rayon parallelism + tokio async I/O; packing the same repository takes only 1/10th the time of the original, or even less.
-
Native MCP Support — One command
repomix --mcpdirectly integrates with Hermes, Claude, Cursor, and more with no additional wrapper layer needed. - Safer dependency tree — Rust binaries require no Node.js runtime; simple deployment, low CVE risk.
- Fully compatible with original CLI — Parameter names, config file formats, and output formats are nearly identical; zero learning curve when switching.
-
More accurate token counting —
tiktoken-rsuses OpenAI's officialo200k_baseencoding, consistent with GPT-4o, with far less counting bias than the JS version.
Frequently Asked Questions
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.
📢 Quick Start with repomix-rs
👉 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
npm package name: repomix-rs, CLI command: repomix
Top comments (0)