Skip to content

Basic Usage

Quick Start

Pack your entire repository:

bash
repomix

Common Use Cases

Pack Specific Directories

bash
repomix path/to/directory

Include Specific Files

Use glob patterns:

bash
repomix --include "src/**/*.ts,**/*.md"

Exclude Files

bash
repomix --ignore "**/*.log,tmp/"

Remote Repositories

bash
# 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 935b695

File List Input (stdin)

Pass file paths via stdin for ultimate flexibility:

bash
# 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 --stdin

The --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

bash
repomix --compress

# You can also use it with remote repositories:
repomix --remote yamadashy/repomix --compress

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:

bash
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:

bash
repomix --token-count-tree 1000  # Only show files/directories with 1000+ tokens

This helps you:

  • Identify token-heavy files that might exceed AI context limits
  • Optimize file selection using --include and --ignore patterns
  • Plan compression strategies by targeting the largest contributors
  • Balance content vs. context when preparing code for AI analysis

Output Formats

XML (Default)

bash
repomix --style xml

Markdown

bash
repomix --style markdown

Plain Text

bash
repomix --style plain

Additional Options

Remove Comments

bash
repomix --remove-comments

Show Line Numbers

bash
repomix --output-show-line-numbers

Copy to Clipboard

bash
repomix --copy

Disable Security Check

bash
repomix --no-security-check

Configuration

Initialize configuration file:

bash
repomix --init

See Configuration Guide for detailed options.

Released under the MIT License.