Repomix
About
Packs repository contents into a single file for AI consumption.
Explore
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
RepomixCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"repomix": {
"server": {
"command": "npx",
"args": [
"-y",
"repomix"
]
}
}
}
}
McpServers
{
"server": {
"command": "npx",
"args": [
"-y",
"repomix"
]
}
}
Transport
"stdio"
Package
"repomix"
Registry
"npm"
🎉 New: Repomix Website & Discord Community!
- Try Repomix in your browser at](https://osawards.com/javascript/)repomix.com
- Join ourDiscord Serverfor support and discussion
- AI-Optimized: Formats your codebase in a way that's easy for AI to understand and process.
- Token Counting: Provides token counts for each file and the entire repository, useful for LLM context limits.
- Simple to Use: You need just one command to pack your entire repository.
- Customizable: Easily configure what to include or exclude.
- Git-Aware: Automatically respects your.gitignore,.ignore, and.repomixignorefiles.
- Security-Focused: IncorporatesSecretlintto detect files matching known credential formats and leave them out of the output.
- Code Compression: The--compressoption usesTree-sitterto extract key code elements, reducing token count while preserving structure.
You can try Repomix instantly in your project directory without installation:
# Install using npm npm install -g repomix # Alternatively using yarn yarn global add repomix # Alternatively using bun bun add -g repomix # Alternatively using Homebrew (macOS/Linux) brew install repomix # Then run in any project directory repomix
That's it! Repomix will generate arepomix-output.xmlfile in your current directory, containing your entire repository in an AI-friendly format.
You can then send this file to an AI assistant with a prompt like:
This file contains all the files in the repository combined into one. I want to refactor the code, so please review it first.
When you propose specific changes, the AI might be able to generate code accordingly. With features like Claude's Artifacts, you could potentially output multiple files, allowing for the generation of multiple interdependent pieces of code.
Want to try it quickly? Visit the official website atrepomix.com. Simply enter your repository name, fill in any optional details, and click thePackbutton to see your generated output.
The website offers several convenient features:
- Customizable output format (XML, Markdown, or Plain Text)
- Instant token count estimation
- Much more!
Get instant access to Repomix directly from any GitHub repository! Our Chrome extension adds a convenient "Repomix" button to GitHub repository pages.
- Chrome Extension:Repomix - Chrome Web Store
- Firefox Add-on:Repomix - Firefox Add-ons
- One-click access to Repomix for any GitHub repository
- More exciting features coming soon!
A community-maintained VSCode extension calledRepomix Runner(created bymassdo) lets you run Repomix right inside your editor with just a few clicks. Run it on any folder, manage outputs seamlessly, and control everything through VSCode's intuitive interface.
Want your output as a file or just the content? Need automatic cleanup? This extension has you covered. Plus, it works smoothly with your existing repomix.config.json.
Try it now on theVSCode Marketplace! Source code is available onGitHub.
If you're using Python, you might want to check outGitingest, which is better suited for Python ecosystem and data science workflows:https://github.com/cyclotruc/gitingest
To pack specific files or directories usingglob patterns:
repomix --include "src//.ts,/.md"
To exclude specific files or directories:
repomix --ignore "/.log,tmp/"
repomix --remote https://github.com/yamadashy/repomix # You can also use GitHub shorthand: repomix --remote yamadashy/repomix # You can specify the branch name, tag, or commit hash: repomix --remote https://github.com/yamadashy/repomix --remote-branch main # Or use a specific commit hash: repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695 # Another convenient way is specifying the branch's URL repomix --remote https://github.com/yamadashy/repomix/tree/main # Commit's URL is also supported repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1
To pack files from a file list (pipe via stdin):
# Using find command find src -name ".ts" -type f | repomix --stdin # Using git to get tracked files git ls-files ".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 ripgrep (rg) to find files rg --files --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--stdinoption 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.
# Include git logs with default count (50 commits) repomix --include-logs # Include git logs with specific commit count repomix --include-logs --include-logs-count 10 # Combine with diffs for comprehensive git context repomix --include-logs --include-diffs
The git logs include commit dates, messages, and file paths for each commit, providing valuable context for AI analysis of code evolution and development patterns.
repomix --compress # You can also use it with remote repositories: repomix --remote yamadashy/repomix --compress
To initialize a new configuration file (repomix.config.json):
Once you have generated the packed file, you can use it with Generative AI tools like ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more.
You can also run Repomix using Docker.
This is useful if you want to run Repomix in an isolated environment or prefer using containers.
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix path/to/directory
Process a remote repository and output to aoutputdirectory:
docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote https://github.com/yamadashy/repomix
Once you have generated the packed file with Repomix, you can use it with AI tools like ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more. Here are some example prompts to get you started:
For a comprehensive code review and refactoring suggestions:
This file contains my entire codebase. Please review the overall structure and suggest any improvements or refactoring opportunities, focusing on maintainability and scalability.
Based on the codebase in this file, please generate a detailed README.md that includes an overview of the project, its main features, setup instructions, and usage examples.
Analyze the code in this file and suggest a comprehensive set of unit tests for the main functions and classes. Include edge cases and potential error scenarios.
Evaluate code quality and adherence to best practices:
Review the codebase for adherence to coding best practices and industry standards. Identify areas where the code could be improved in terms of readability, maintainability, and efficiency. Suggest specific changes to align the code with best practices.
Get a high-level understanding of the library
This file contains the entire codebase of library. Please provide a comprehensive overview of the library, including its main purpose, key features, and overall architecture.
Feel free to modify these prompts based on your specific needs and the capabilities of the AI tool you're using.
Check out ourcommunity discussionwhere users share:
- Which AI tools they're using with Repomix
- Effective prompts they've discovered
- How Repomix has helped them
- Tips and tricks for getting the most out of AI code analysis
Feel free to join the discussion and share your own experiences! Your insights could help others make better use of Repomix.
Repomix generates a single file with clear separators between different parts of your codebase.
To enhance AI comprehension, the output file begins with an AI-oriented explanation, making it easier for AI models to understand the context and structure of the packed repository.
The XML format structures the content in a hierarchical manner:
This file is a merged representation of the entire codebase, combining all repository files into a single document. <file_summary> (Metadata and usage AI instructions) </file_summary> <directory_structure> src/ cli/ cliOutput.ts index.ts (...remaining directories) </directory_structure> <files> <file path="src/index.js"> // File contents here </file> (...remaining files) </files> <instruction> (Custom instructions from output.instructionFilePath) </instruction>
For those interested in the potential of XML tags in AI contexts:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags
When your prompts involve multiple components like context, instructions, and examples, XML tags can be a game-changer. They help Claude parse your prompts more accurately, leading to higher-quality outputs.
This means that the XML output from Repomix is not just a different format, but potentially a more effective way to feed your codebase into AI systems for analysis, code review, or other tasks.
To generate output in Markdown format, use the--style markdownoption:
The Markdown format structures the content in a hierarchical manner:
This file is a merged representation of the entire codebase, combining all repository files into a single document. # File Summary (Metadata and usage AI instructions) # Repository Structure src/ cli/ cliOutput.ts index.ts ` (...remaining directories) # Repository Files ## File: src/index.js ` // File contents here ` (...remaining files) # Instruction (Custom instructions from output.instructionFilePath)
This format provides a clean, readable structure that is both human-friendly and easily parseable by AI systems.
To generate output in JSON format, use the--style jsonoption:
The JSON format structures the content as a hierarchical JSON object with camelCase property names:
{ "fileSummary": { "generationHeader": "This file is a merged representation of the entire codebase, combined into a single document by Repomix.", "purpose": "This file contains a packed representation of the entire repository's contents...", "fileFormat": "The content is organized as follows...", "usageGuidelines": "- This file should be treated as read-only...", "notes": "- Some files may have been excluded based on .gitignore, .ignore, and .repomixignore rules..." }, "userProvidedHeader": "Custom header text if specified", "directoryStructure": "src/\n cli/\n cliOutput.ts\n index.ts\n config/\n configLoader.ts", "files": { "src/index.js": "// File contents here", "src/utils.js": "// File contents here" }, "instruction": "Custom instructions from instructionFilePath" }
- Programmatic processing: Easy to parse and manipulate with JSON libraries
- API integration: Direct consumption by web services and applications
- AI tool compatibility: Structured format for machine learning and AI systems
- Data analysis**: Straightforward extraction of specific information using tools likejq
The JSON format makes it easy to extract specific information programmatically:
# List all file paths cat repomix-output.json | jq -r '.files | keys[]' # Count total number of files cat repomix-output.json | jq '.files | keys | length' # Extract specific file content cat repomix-output.json | jq -r '.files["README.md"]' cat repomix-output.json | jq -r '.files["src/index.js"]' # Find files by extension cat repomix-output.json | jq -r '.files | keys[] | select(endswith(".ts"))' # Get files containing specific text cat repomix-output.json | jq -r '.files | to_entries[] | select(.value | contains("function")) | .key' # Extract directory structure cat repomix-output.json | jq -r '.directoryStructure' # Get file summary information cat repomix-output.json | jq '.fileSummary.purpose' cat repomix-output.json | jq -r '.fileSummary.generationHeader' # Extract user-provided header (if exists) cat repomix-output.json | jq -r '.userProvidedHeader // "No header provided"' # Create a file list with sizes cat repomix-output.json | jq -r '.files | to_entries[] | "\(.key): \(.value | length) characters"'
To generate output in plain text format, use the--style plainoption:
This file is a merged representation of the entire codebase, combining all repository files into a single document. ================================================================ File Summary ================================================================ (Metadata and usage AI instructions) ================================================================ Directory Structure ================================================================ src/ cli/ cliOutput.ts index.ts config/ configLoader.ts (...remaining directories) ================================================================ Files ================================================================ ================ File: src/index.js ================ // File contents here ================ File: src/utils.js ================ // File contents here (...remaining files) ================================================================ Instruction ================================================================ (Custom instructions from output.instructionFilePath)``
-
-v, --version`: Show version information and exitSign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



