Package entire code repositories into single AI-friendly files using Repomix...
Repomix packs entire repositories into single, AI-friendly files. Perfect for feeding codebases to LLMs like Claude, ChatGPT, and Gemini.
Use when:
repomix --version
# npm
npm install -g repomix
# Homebrew (macOS/Linux)
brew install repomix
# Package current directory (generates repomix-output.xml)
repomix
# Specify output format
repomix --style markdown
repomix --style json
# Package remote repository
npx repomix --remote owner/repo
# Custom output with filters
repomix --include "src/**/*.ts" --remove-comments -o output.md
Process remote repositories without cloning:
# Shorthand
npx repomix --remote yamadashy/repomix
# Full URL
npx repomix --remote https://github.com/owner/repo
# Specific commit
npx repomix --remote https://github.com/owner/repo/commit/hash
Strip comments from supported languages (HTML, CSS, JavaScript, TypeScript, Vue, Svelte, Python, PHP, Ruby, C, C#, Java, Go, Rust, Swift, Kotlin, Dart, Shell, YAML):
repomix --remove-comments
# Package feature branch for AI review
repomix --include "src/**/*.ts" --remove-comments -o review.md --style markdown
# Package third-party library
npx repomix --remote vendor/library --style xml -o audit.xml
# Package with docs and code
repomix --include "src/**,docs/**,*.md" --style markdown -o context.md
# Package specific modules
repomix --include "src/auth/**,src/api/**" -o debug-context.xml
# Full codebase context
repomix --remove-comments --copy
# Include specific patterns
repomix --include "src/**/*.ts,*.md"
# Ignore additional patterns
repomix -i "tests/**,*.test.js"
# Disable .gitignore rules
repomix --no-gitignore
# Output format
repomix --style markdown # or xml, json, plain
# Output file path
repomix -o output.md
# Remove comments
repomix --remove-comments
# Copy to clipboard
repomix --copy
# Use custom config file
repomix -c custom-config.json
# Initialize new config
repomix --init # creates repomix.config.json
Repomix automatically counts tokens for individual files, total repository, and per-format output.
Typical LLM context limits:
Understanding your codebase's token distribution is crucial for optimizing AI interactions. Use the --token-count-tree option to visualize token usage across your project:
repomix --token-count-tree
This displays a hierarchical view of your codebase with token counts:
ð¢ Token Count Tree:
ââââââââââââââââââââ
âââ src/ (70,925 tokens)
âââ cli/ (12,714 tokens)
â âââ actions/ (7,546 tokens)
â âââ reporters/ (990 tokens)
âââ core/ (41,600 tokens)
âââ file/ (10,098 tokens)
âââ output/ (5,808 tokens)
You can also set a minimum token threshold to focus on larger files:
repomix --token-count-tree 1000 # Only show files/directories with 1000+ tokens
This helps you:
Repomix uses Secretlint to detect sensitive data (API keys, passwords, credentials, private keys, AWS secrets).
Best practices:
.repomixignore for sensitive files.env filesDisable security checks if needed:
repomix --no-security-check
When user requests repository packaging:
Assess Requirements
Configure Filters
Execute Packaging
Validate Output
Deliver Context
For detailed information, see: