Basic Usage
Quick Start
Pack your entire repository:
repomixCommon Use Cases
Pack Specific Directories
repomix path/to/directoryInclude Specific Files
Use glob patterns:
repomix --include "src/**/*.ts,**/*.md"Exclude Files
repomix --ignore "**/*.log,tmp/"Remote Repositories
# Using GitHub URL
repomix --remote https://github.com/user/repo
# Using shorthand
repomix --remote user/repo
# Specific branch/tag/commit
repomix --remote user/repo --remote-branch main
repomix --remote user/repo --remote-branch 935b695File List Input (stdin)
Pass file paths via stdin for ultimate flexibility:
# Using find command
find src -name "*.ts" -type f | repomix --stdin
# Using git to get tracked files
git ls-files "*.ts" | repomix --stdin
# Using ripgrep (rg) to find files
rg --files --type ts | repomix --stdin
# Using grep to find files containing specific content
grep -l "TODO" **/*.ts | repomix --stdin
# Using ripgrep to find files with specific content
rg -l "TODO|FIXME" --type ts | repomix --stdin
# Using sharkdp/fd to find files
fd -e ts | repomix --stdin
# Using fzf to select from all files
fzf -m | repomix --stdin
# Interactive file selection with fzf
find . -name "*.ts" -type f | fzf -m | repomix --stdin
# Using ls with glob patterns
ls src/**/*.ts | repomix --stdin
# From a file containing file paths
cat file-list.txt | repomix --stdin
# Direct input with echo
echo -e "src/index.ts\nsrc/utils.ts" | repomix --stdinThe --stdin option allows you to pipe a list of file paths to Repomix, giving you ultimate flexibility in selecting which files to pack.
When using --stdin, the specified files are effectively added to the include patterns. This means that the normal include and ignore behavior still applies - files specified via stdin will still be excluded if they match ignore patterns.
NOTE
When using --stdin, file paths can be relative or absolute, and Repomix will automatically handle path resolution and deduplication.
Code Compression
repomix --compress
# You can also use it with remote repositories:
repomix --remote yamadashy/repomix --compressGit Integration
Include Git information to provide development context for AI analysis:
# Include git diffs (uncommitted changes)
repomix --include-diffs
# Include git commit logs (last 50 commits by default)
repomix --include-logs
# Include specific number of commits
repomix --include-logs --include-logs-count 10
# Include both diffs and logs
repomix --include-diffs --include-logsThis adds valuable context about:
- Recent changes: Git diffs show uncommitted modifications
- Development patterns: Git logs reveal which files are typically changed together
- Commit history: Recent commit messages provide insight into development focus
- File relationships: Understanding which files are modified in the same commits
Token Count Optimization
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-treeThis 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+ tokensThis helps you:
- Identify token-heavy files that might exceed AI context limits
- Optimize file selection using
--includeand--ignorepatterns - Plan compression strategies by targeting the largest contributors
- Balance content vs. context when preparing code for AI analysis
Output Formats
XML (Default)
repomix --style xmlMarkdown
repomix --style markdownJSON
repomix --style jsonPlain Text
repomix --style plainAdditional Options
Remove Comments
repomix --remove-commentsShow Line Numbers
repomix --output-show-line-numbersCopy to Clipboard
repomix --copyDisable Security Check
repomix --no-security-checkConfiguration
Initialize configuration file:
repomix --initSee Configuration Guide for detailed options.