MCPcopy
hub / github.com/yamadashy/repomix

github.com/yamadashy/repomix @v1.16.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.16.0 ↗
915 symbols 2,849 edges 354 files 35 documented · 4%
README

Special thanks to:

Warp sponsorship

Warp, built for coding with multiple AI agents

Available for MacOS, Linux, & Windows

     <img alt="CodeRabbit sponsorship" width="400" src="https://github.com/yamadashy/repomix/raw/v1.16.0/website/client/src/public/images/sponsors/coderabbit/light.png">

CodeRabbit | AI Code Reviews

Cut code review time & bugs in half, instantly.


Repomix

<b>Pack your codebase into AI-friendly formats</b>

Use Repomix online! 👉 repomix.com

Need discussion? Join us on Discord!

Share your experience and tips

Stay updated on new features

Get help with configuration and usage


npm npm Actions Status codecov CodeRabbit Pull Request Reviews Sponsors Discord

DeepWiki

📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file.
It is perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more.

Please consider sponsoring me.

Sponsor

Sponsors

🏆 Open Source Awards Nomination

We're honored! Repomix has been nominated for the Powered by AI category at the JSNation Open Source Awards 2025.

This wouldn't have been possible without all of you using and supporting Repomix. Thank you!

🎉 New: Repomix Website & Discord Community!

We look forward to seeing you there!

🌟 Features

  • 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 .repomixignore files.
  • Security-Focused: Incorporates Secretlint for robust security checks to detect and prevent inclusion of sensitive information.
  • Code Compression: The --compress option uses Tree-sitter to extract key code elements, reducing token count while preserving structure.

🚀 Quick Start

Using the CLI Tool >_

You can try Repomix instantly in your project directory without installation:

npx repomix@latest

Or install globally for repeated use:

# 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 a repomix-output.xml file 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.

Repomix File Usage 1

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.

Repomix File Usage 2

Happy coding! 🚀

Using The Website 🌐

Want to try it quickly? Visit the official website at repomix.com. Simply enter your repository name, fill in any optional details, and click the Pack button to see your generated output.

Available Options

The website offers several convenient features:

  • Customizable output format (XML, Markdown, or Plain Text)
  • Instant token count estimation
  • Much more!

Using The Browser Extension 🧩

Get instant access to Repomix directly from any GitHub repository! Our Chrome extension adds a convenient "Repomix" button to GitHub repository pages.

Repomix Browser Extension

Install

Features

  • One-click access to Repomix for any GitHub repository
  • More exciting features coming soon!

Using The VSCode Extension ⚡️

A community-maintained VSCode extension called Repomix Runner (created by massdo) 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 the VSCode Marketplace! Source code is available on GitHub.

Alternative Tools 🛠️

If you're using Python, you might want to check out Gitingest, which is better suited for Python ecosystem and data science workflows: https://github.com/cyclotruc/gitingest

📊 Usage

To pack your entire repository:

repomix

To pack a specific directory:

repomix path/to/directory

To pack specific files or directories using glob patterns:

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

To exclude specific files or directories:

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

To pack a remote repository:

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

To include git logs in the output:

# 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.

To compress the output:

repomix --compress

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

To initialize a new configuration file (repomix.config.json):

repomix --init

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.

Docker Usage 🐳

You can also run Repomix using Docker.
This is useful if you want to run Repomix in an isolated environment or prefer using containers.

Basic usage (current directory):

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

To pack a specific directory:

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

Process a remote repository and output to a output directory:

docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote https://github.com/yamadashy/repomix

Prompt Examples

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:

Code Review and Refactoring

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.

Documentation Generation

To generate project documentation:

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.

Test Case Generat

Extension points exported contracts — how you extend this code

ParseStrategy (Interface)
(no doc) [6 implementers]
src/core/treeSitter/parseStrategies/BaseParseStrategy.ts
SearchOptions (Interface)
* Search options for grep functionality
src/mcp/tools/grepRepomixOutputTool.ts
BackgroundDefinition (Interface)
(no doc)
browser/types.d.ts
RepositoryInfo (Interface)
(no doc)
browser/entrypoints/content.ts
GitUrl (Interface)
(no doc)
src/types/git-url-parse.d.ts
ReportOptions (Interface)
(no doc)
src/cli/cliReport.ts
MemoryStats (Interface)
(no doc)
src/shared/memoryUtils.ts
MemoryUsage (Interface)
(no doc)
scripts/memory/src/types.ts

Core symbols most depended-on inside this repo

log
called by 136
src/shared/logger.ts
trace
called by 135
src/shared/logger.ts
parseFile
called by 77
src/core/treeSitter/parseFile.ts
error
called by 60
src/shared/logger.ts
get
called by 51
website/server/src/domains/pack/utils/cache.ts
runCli
called by 45
src/cli/cliRun.ts
searchFiles
called by 43
src/core/file/fileSearch.ts
toString
called by 36
src/types/git-url-parse.d.ts

Shape

Function 635
Interface 133
Method 87
Class 57
Enum 3

Languages

TypeScript100%

Modules by API surface

src/core/skill/skillTechStack.ts24 symbols
tests/core/treeSitter/parseFile.typescript.test.ts19 symbols
src/shared/logger.ts18 symbols
src/core/file/fileSearch.ts18 symbols
src/core/file/fileManipulate.ts17 symbols
website/client/composables/useFileUpload.ts16 symbols
src/core/metrics/tokenCountCache.ts16 symbols
website/client/components/api/client.ts14 symbols
src/core/file/fileTreeGenerate.ts14 symbols
website/client/composables/useTurnstileTokenCache.ts13 symbols
src/shared/errorHandle.ts13 symbols
src/mcp/tools/mcpToolRuntime.ts13 symbols

Dependencies from manifests, versioned

@biomejs/biome2.5.0 · 1×
@clack/prompts0.11.0 · 1×
@hono/node-server2.0.5 · 1×
@modelcontextprotocol/sdk1.29.0 · 1×
@repomix/strip-comments2.4.2 · 1×
@repomix/tree-sitter-wasms0.1.17 · 1×
@secretlint/core13.0.2 · 1×
@secretlint/secretlint-rule-preset-recommend13.0.2 · 1×
@secretlint/types13.0.2 · 1×
@swc/core1.15.41 · 1×
@types/asciichart1.5.8 · 1×
@types/chrome0.1.43 · 1×

Datastores touched

dbDatabase · 1 repos

For agents

$ claude mcp add repomix \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact