repomix

Repomix - Codebase Packing for AI

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "repomix" with this command: npx skills add julianobarbosa/claude-code-skills/julianobarbosa-claude-code-skills-repomix

Repomix - Codebase Packing for AI

Pack your entire repository into a single, AI-friendly file optimized for LLMs like Claude, ChatGPT, Gemini, and more.

When to Use This Skill

  • Feeding codebase to AI for analysis or refactoring

  • Generating comprehensive code reviews

  • Creating documentation from code

  • Preparing context for AI-assisted development

  • Analyzing remote repositories without cloning

  • Token counting for LLM context limits

Quick Start

Pack current directory (no install required)

npx repomix@latest

Pack specific directory

npx repomix path/to/directory

Pack with compression (~70% token reduction)

npx repomix --compress

Copy output to clipboard

npx repomix --copy

Default output: ./repomix-output.xml in current directory

Examples

Example: Prepare codebase for Claude review

User: "Pack my src folder for Claude to review the architecture" → npx repomix --include "src/**/*" --style xml --copy → Output copied to clipboard, ready to paste into Claude

Example: Analyze remote repo without cloning

User: "I want to understand how shadcn/ui implements its button" → npx repomix --remote shadcn-ui/ui --include "/button//*" --compress → Generates focused output of button component

Example: Prepare PR diff for review

User: "Pack only the files I changed for a code review" → git diff --name-only main | npx repomix --stdin --compress → Packs only modified files with compression

Example: Check token usage before sending to AI

User: "Is my codebase too large for GPT-4?" → npx repomix --token-count-tree → Shows token breakdown per file/directory

Example: Generate skills reference from library

User: "Create a Claude skill from the zod repository" → npx repomix --remote colinhacks/zod --skill-generate zod-reference → Generates AI-optimized reference documentation

Output Formats

XML (default) - best for Claude

npx repomix --style xml

Markdown - human readable

npx repomix --style markdown

JSON - programmatic processing

npx repomix --style json

Plain text

npx repomix --style plain

Token Optimization

LLM Context Limits Reference

Model Context Window Typical Repo Fit

Claude 3.5/Opus 200K tokens Large monorepos

GPT-4 Turbo/4o 128K tokens Medium projects

Gemini 1.5 Pro 1M tokens Very large codebases

Gemini 1.5 Flash 1M tokens Very large codebases

Token Analysis

Show token count tree

npx repomix --token-count-tree

Filter by minimum tokens (show files with 1000+ tokens)

npx repomix --token-count-tree 1000

Split output for large codebases

npx repomix --split-output 1mb

File Selection

Include Patterns

Include only TypeScript files

npx repomix --include "**/*.ts"

Include multiple patterns

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

Include specific directories

npx repomix --include "src//*,tests//*"

Ignore Patterns

Ignore test files

npx repomix --ignore "**/*.test.ts"

Ignore multiple patterns

npx repomix --ignore "**/*.log,tmp/,dist/"

Combine include and ignore

npx repomix --include "src//*.ts" --ignore "/*.test.ts"

Stdin Input

From find command

find src -name "*.ts" -type f | npx repomix --stdin

From git tracked files

git ls-files "*.ts" | npx repomix --stdin

Interactive selection with fzf

find . -name "*.ts" -type f | fzf -m | npx repomix --stdin

From ripgrep

rg --files --type ts | npx repomix --stdin

Common Workflows

PR Review Preparation

Pack only changed files for review

git diff --name-only main | npx repomix --stdin --compress

Pack with diff context included

npx repomix --include-diffs --compress

Architecture Analysis

Pack structure without implementation details

npx repomix --compress --include "src//*" --ignore "/.test."

Focus on specific layer

npx repomix --include "src/api//*,src/services//*" --compress

Documentation Generation

Pack with full context for docs

npx repomix --include "src//*,/*.md" --style markdown

Include git history for changelog

npx repomix --include-logs --include-logs-count 50

Dependency Analysis

Pack only config and dependency files

npx repomix --include "package.json,tsconfig.json,**/.config."

Remote Repositories

Pack remote repository

npx repomix --remote https://github.com/user/repo

GitHub shorthand

npx repomix --remote user/repo

Specific branch

npx repomix --remote user/repo --remote-branch main

Specific commit

npx repomix --remote user/repo --remote-branch 935b695

Branch URL format

npx repomix --remote https://github.com/user/repo/tree/feature-branch

Code Compression

Tree-sitter powered compression extracts signatures while removing implementation details.

Supported Languages

Tree-sitter compression works with: JavaScript, TypeScript, Python, Ruby, Go, Rust, Java, C, C++, C#, PHP, Swift, Kotlin, and more.

Usage

npx repomix --compress

Combine with remote

npx repomix --remote user/repo --compress

Before compression:

const calculateTotal = (items: Item[]) => { let total = 0; for (const item of items) { total += item.price * item.quantity; } return total; };

After compression:

const calculateTotal = (items: Item[]) => { /* ... */ };

Git Integration

Include git logs (last 50 commits)

npx repomix --include-logs

Specify commit count

npx repomix --include-logs --include-logs-count 20

Include git diffs

npx repomix --include-diffs

Combine logs and diffs

npx repomix --include-logs --include-diffs

Configuration

Initialize Config

Create repomix.config.json

npx repomix --init

Global config

npx repomix --init --global

Configuration File

{ "$schema": "https://repomix.com/schemas/latest/schema.json", "output": { "filePath": "repomix-output.xml", "style": "xml", "compress": false, "removeComments": false, "showLineNumbers": false, "copyToClipboard": false }, "include": ["src//*", "/.md"], "ignore": { "useGitignore": true, "useDefaultPatterns": true, "customPatterns": ["**/.test.ts", "dist/"] }, "security": { "enableSecurityCheck": true } }

Docker Usage

Pack current directory

docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix

Pack specific directory

docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix path/to/directory

Remote repository

docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote user/repo

MCP Server Integration

Run as Model Context Protocol server for AI assistants:

npx repomix --mcp

Configure for Claude Code

claude mcp add repomix -- npx -y repomix --mcp

Available MCP Tools

When running as MCP server, provides:

Tool Description

pack_codebase

Pack local directory into AI-friendly format

pack_remote_repository

Pack GitHub repository without cloning

read_repomix_output

Read contents of generated output file

file_system_tree

Get directory tree structure

Claude Agent Skills Generation

Generate skills format output for Claude:

Generate skills from local directory

npx repomix --skill-generate

Generate with custom name

npx repomix --skill-generate my-project-reference

From remote repository

npx repomix --remote user/repo --skill-generate

CLI Options Reference

Option Description

-o, --output <file>

Output file path

--style <style>

Output format: xml, markdown, json, plain

--compress

Enable Tree-sitter compression

--include <patterns>

Include files matching glob patterns

-i, --ignore <patterns>

Exclude files matching patterns

--remote <url>

Process remote repository

--remote-branch <name>

Branch, tag, or commit for remote

--stdin

Read file paths from stdin

--copy

Copy output to clipboard

--token-count-tree

Show token counts per file

--split-output <size>

Split output by size (e.g., 1mb)

--include-logs

Include git commit history

--include-diffs

Include git diffs

--no-security-check

Skip sensitive data detection

--mcp

Run as MCP server

--skill-generate

Generate Claude skills format

--init

Create configuration file

--help

Show all available options

Troubleshooting

Issue Solution

Output too large for LLM Use --compress or filter with --include

Missing expected files Check .repomixignore , .gitignore , and ignore patterns

Secrets detected (blocking) Review flagged files; use --no-security-check if false positive

Memory issues on large repos Use --split-output 1mb to chunk output

Remote repo access denied Check URL format; ensure repo is public or use SSH

Compression not working Verify language is supported by Tree-sitter

Output not in clipboard Ensure clipboard access; try --output - | pbcopy on macOS

Ignore Files

Repomix respects multiple ignore sources (priority order):

  • ignore.customPatterns in config

  • .repomixignore (Repomix-specific)

  • .ignore (ripgrep compatible)

  • .gitignore

  • Default patterns (node_modules, .git, etc.)

Security

Repomix includes Secretlint for detecting sensitive information:

Security check enabled by default

npx repomix

Disable security check (use with caution)

npx repomix --no-security-check

Detected secret types: API keys, tokens, passwords, private keys, AWS credentials, database connection strings, and more.

Best Practices

  • Use compression for large codebases to reduce token count (~70% reduction)

  • Filter with --include to focus on relevant files

  • Use --token-count-tree to identify large files before packing

  • Split output when hitting AI context limits

  • Include git logs for evolution context when needed

  • Use XML style for Claude (optimized for XML tags)

  • Use Markdown for human-readable output or other LLMs

  • Check token counts against your target LLM's context window

  • Review security warnings before sharing packed output

Requirements

  • Node.js 18.0.0 or higher

  • npm or npx available in PATH

Resources

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

obsidian-vault-management

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

zabbix

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

neovim

No summary provided by upstream source.

Repository SourceNeeds Review