hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
📦 Repomix は、リポジトリ全体を 1 つの AI 対応ファイルにまとめる強力なツールです。
これは、コードベースを大規模言語モデル (LLM) や、Claude、ChatGPT、DeepSeek、Perplexity、Gemini、Gemma、Llama、Grok などの他の AI ツールにフィードする必要がある場合に最適です。
🎉 新機能: Repomix ウェブサイトと Discord コミュニティ!
- repomix.comでブラウザから Repomix をお試しください
- サポートとディスカッションのためにDiscord サーバーに参加してください
皆様にお会いできるのを楽しみにしております!
🌟 特徴
- AI 最適化: AI が理解して処理しやすい方法でコードベースをフォーマットします。
- トークン カウント: 各ファイルとリポジトリ全体のトークン カウントを提供します。LLM コンテキスト制限に役立ちます。
- 使い方は簡単: リポジトリ全体をパックするには、コマンドを 1 つだけ実行します。
- カスタマイズ可能: 何を含めるか、何を除外するかを簡単に設定できます。
- Git 対応:
.gitignore
ファイルと.git/info/exclude
自動的に尊重します。 - セキュリティ重視: 強力なセキュリティ チェックを実現するSecretlintを組み込んでおり、機密情報の混入を検出して防止します。
- コード圧縮:
--compress
オプションはTree-sitterを使用して主要なコード要素を抽出し、構造を維持しながらトークン数を削減します。
🚀 クイックスタート
CLIツールの使用>_
インストールせずにプロジェクト ディレクトリで Repomix をすぐに試すことができます。
または、繰り返し使用するためにグローバルにインストールします。
これで完了です。Repomix は、リポジトリ全体を AI 対応形式で含むrepomix-output.xml
ファイルを現在のディレクトリに生成します。
次に、次のようなプロンプトを使用して、このファイルを AI アシスタントに送信できます。
具体的な変更を提案すると、AIがそれに応じたコードを生成してくれるかもしれません。Claude's Artifactsのような機能を使えば、複数のファイルを出力し、相互に依存する複数のコードを生成することも可能になります。
楽しいコーディングを!🚀
ウェブサイトの使用🌐
すぐに試してみたい方は、公式ウェブサイトrepomix.comにアクセスしてください。リポジトリ名を入力し、必要に応じて詳細を入力し、 **「Pack」**ボタンをクリックするだけで、生成された出力を確認できます。
利用可能なオプション
ウェブサイトには便利な機能がいくつか用意されています:
- カスタマイズ可能な出力形式(XML、Markdown、またはプレーンテキスト)
- トークン数の即時推定
- その他にも多数!
VSCode拡張機能の使用⚡️
コミュニティによってメンテナンスされているVSCode拡張機能「Repomix Runner 」( massdo氏作成)を使えば、わずか数クリックでエディター内でRepomixを実行できます。任意のフォルダーで実行でき、出力をシームレスに管理し、VSCodeの直感的なインターフェースからすべてを制御できます。
出力をファイルとして保存したいですか?それともコンテンツだけを残したいですか?自動クリーンアップが必要ですか?この拡張機能がお手伝いします。さらに、既存のrepomix.config.jsonとスムーズに連携します。
VSCode マーケットプレイスで今すぐお試しください。ソースコードはGitHubで入手できます。
代替ツール 🛠️
Python を使用している場合は、Python エコシステムとデータ サイエンスのワークフローに適したGitingest
を確認することをお勧めします。https ://github.com/cyclotruc/gitingest
📊 使用方法
リポジトリ全体をパックするには:
特定のディレクトリをパックするには:
glob パターンを使用して特定のファイルまたはディレクトリをパックするには:
特定のファイルまたはディレクトリを除外するには:
リモート リポジトリをパックするには:
出力を圧縮するには:
新しい構成ファイル ( repomix.config.json
) を初期化するには:
パックされたファイルを生成すると、ChatGPT、DeepSeek、Perplexity、Gemini、Gemma、Llama、Grok などの Generative AI ツールで使用できるようになります。
Docker の使い方 🐳
Docker を使用して Repomix を実行することもできます。
これは、Repomix を分離された環境で実行したい場合や、コンテナーを使用する場合に便利です。
基本的な使用方法(現在のディレクトリ):
特定のディレクトリをパックするには:
リモート リポジトリを処理してoutput
ディレクトリに出力します。
プロンプトの例
Repomixでパックされたファイルを生成したら、ChatGPT、DeepSeek、Perplexity、Gemini、Gemma、Llama、GrokなどのAIツールで使用できます。以下に、開始するためのプロンプトの例を示します。
コードレビューとリファクタリング
包括的なコードレビューとリファクタリングの提案については、以下をご覧ください。
ドキュメント生成
プロジェクトドキュメントを生成するには:
テストケース生成
テストケースを生成するには:
コード品質評価
コードの品質とベスト プラクティスの遵守を評価します。
ライブラリの概要
ライブラリの概要を理解する
特定のニーズや使用している AI ツールの機能に応じて、これらのプロンプトを自由に変更できます。
コミュニティディスカッション
ユーザーが情報を共有するコミュニティのディスカッションをご覧ください。
- Repomixで使用しているAIツール
- 彼らが発見した効果的なプロンプト
- レポミックスがどのように彼らを助けたか
- AIコード分析を最大限に活用するためのヒントとコツ
ぜひディスカッションに参加して、ご自身の経験を共有してください!あなたの意見は、他のユーザーがRepomixをより有効に活用するのに役立つかもしれません。
出力ファイル形式
Repomix は、コードベースのさまざまな部分を明確に区切った単一のファイルを生成します。
AI の理解力を高めるために、出力ファイルは AI 向けの説明で始まり、AI モデルがパックされたリポジトリのコンテキストと構造を理解しやすくなります。
XML形式(デフォルト)
XML 形式では、コンテンツが階層的に構造化されます。
AI コンテキストにおける XML タグの可能性に興味のある方:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags
プロンプトにコンテキスト、説明、例など複数の要素が含まれる場合、XMLタグは大きな効果を発揮します。XMLタグはClaudeがプロンプトをより正確に解析するのに役立ち、より高品質な出力を実現します。
つまり、Repomix からの XML 出力は単なる異なる形式ではなく、コードベースを AI システムに送り込んで分析やコードレビューなどのタスクを行うための、より効果的な方法となる可能性があります。
マークダウン形式
Markdown 形式で出力を生成するには、 --style markdown
オプションを使用します。
Markdown 形式では、コンテンツが階層的に構造化されます。
この形式は、人間にとって使いやすく、AI システムによって簡単に解析できる、クリーンで読みやすい構造を提供します。
プレーンテキスト形式
プレーンテキスト形式で出力を生成するには、 --style plain
オプションを使用します。
コマンドラインオプション
基本オプション
-v, --version
: ツールのバージョンを表示
出力オプション
-o, --output <file>
: 出力ファイル名を指定する--style <style>
: 出力スタイルを指定する (xml
、markdown
、plain
)--parsable-style
: 選択したスタイルスキーマに基づいて解析可能な出力を有効にします。トークン数が増加する可能性があることに注意してください。--compress
: 重要な関数とクラスのシグネチャに焦点を当ててインテリジェントなコード抽出を実行し、トークン数を削減します。--output-show-line-numbers
: 出力に行番号を表示する--copy
: 生成された出力をシステムクリップボードにコピーします--no-file-summary
: ファイルサマリーセクションの出力を無効にする--no-directory-structure
: ディレクトリ構造セクションの出力を無効にする--remove-comments
: サポートされているファイルタイプからコメントを削除します--remove-empty-lines
: 出力から空行を削除する--header-text <text>
: ファイルヘッダーに含めるカスタムテキスト--instruction-file-path <path>
: 詳細なカスタム指示を含むファイルへのパス--include-empty-directories
: 出力に空のディレクトリを含める--no-git-sort-by-changes
: Gitの変更数によるファイルのソートを無効にする(デフォルトで有効)
フィルターオプション
--include <patterns>
: インクルードパターンのリスト(カンマ区切り)-i, --ignore <patterns>
: 追加の無視パターン(カンマ区切り)--no-gitignore
: .gitignore ファイルの使用を無効にする--no-default-patterns
: デフォルトのパターンを無効にする
リモートリポジトリオプション
--remote <url>
: リモートGitリポジトリを処理する--remote-branch <name>
: リモートブランチ名、タグ、またはコミットハッシュを指定します(デフォルトはリポジトリのデフォルトブランチ)
設定オプション
-c, --config <path>
: カスタム設定ファイルへのパス--init
: 設定ファイルを作成する--global
: グローバル設定を使用する
セキュリティオプション
--no-security-check
: セキュリティチェックを無効にする
トークンカウントオプション
--token-count-encoding <encoding>
: OpenAIのtiktokenトークナイザーで使用されるトークンカウントエンコーディングを指定します(例:GPT-4oの場合はo200k_base
、GPT-4/3.5の場合はcl100k_base
)。エンコーディングの詳細については、 tiktoken model.pyを参照してください。
MCP
--mcp
: MCP (モデルコンテキストプロトコル)サーバーとして実行します
その他のオプション
--top-files-len <number>
: サマリーに表示する上位ファイルの数--verbose
: 詳細なログを有効にする--quiet
: 標準出力へのすべての出力を無効にする
例:
Repomix の更新
グローバルにインストールされた Repomix を更新するには:
常に最新バージョンが使用されるため、 npx repomix
使用する方が通常は便利です。
リモートリポジトリ処理
Repomix は、手動でクローンを作成することなく、リモート Git リポジトリの処理をサポートします。この機能により、単一のコマンドで、あらゆるパブリック Git リポジトリを迅速に分析できます。
リモート リポジトリを処理するには、 --remote
オプションに続けてリポジトリ URL を指定します。
GitHub の短縮形式を使用することもできます。
ブランチ名、タグ、コミット ハッシュを指定できます。
または、特定のコミット ハッシュを使用します。
コード圧縮
--compress
オプションはTree-sitterを活用し、実装の詳細を削除しながら、重要な関数とクラスのシグネチャに焦点を絞ったインテリジェントなコード抽出を実行します。これにより、重要な構造情報を保持しながらトークン数を削減できます。
たとえば、次のコード:
次のように圧縮されます:
[!NOTE] これは実験的な機能であり、ユーザーからのフィードバックと実際の使用状況に基づいて積極的に改善していきます。
MCP サーバー統合
Repomixはモデルコンテキストプロトコル(MCP)をサポートしており、AIアシスタントがコードベースに直接アクセスできるようにします。MCPサーバーとして実行すると、RepomixはAIアシスタントがローカルまたはリモートのリポジトリをパッケージ化して分析できるようにするツールを提供します。これらのツールにより、手動でファイルを準備する必要はありません。
MCP サーバーの構成
Claude のような AI アシスタントを備えた MCP サーバーとして Repomix を使用するには、MCP 設定を構成する必要があります。
VS Codeの場合:
次のいずれかの方法を使用して、VS Code に Repomix MCP サーバーをインストールできます。
Cline (VS Code 拡張機能) の場合:
cline_mcp_settings.json
ファイルを編集します。
カーソルの場合:
Cursor で、 Cursor Settings
> MCP
> + Add new global MCP server
ます。
Claude Desktopの場合:
Cline の設定と同様の設定でclaude_desktop_config.json
ファイルを編集します。
設定が完了すると、AI アシスタントは Repomix の機能を直接使用して、手動でファイルを準備することなくコードベースを分析できるようになり、コード分析ワークフローがより効率的になります。
利用可能なMCPツール
MCP サーバーとして実行する場合、Repomix は次のツールを提供します。
- pack_codebase : ローカルコードディレクトリをAI分析用の統合ファイルにパッケージ化します
- パラメータ:
directory
: パックするディレクトリへの絶対パスcompress
: (オプション、デフォルト: true) インテリジェントコード抽出を実行するかどうかincludePatterns
: (オプション) カンマ区切りの include パターンのリストignorePatterns
: (オプション) 無視パターンのコンマ区切りリスト
- pack_remote_repository : GitHub リポジトリを取得、クローン、パッケージ化する
- パラメータ:
remote
: GitHubリポジトリのURLまたはユーザー/リポジトリ形式(例:yamadashy/repomix)compress
: (オプション、デフォルト: true) インテリジェントコード抽出を実行するかどうかincludePatterns
: (オプション) カンマ区切りの include パターンのリストignorePatterns
: (オプション) 無視パターンのコンマ区切りリスト
- read_repomix_output : 直接ファイルにアクセスできない環境でRepomix出力ファイルの内容を読み取ります
- パラメータ:
outputId
: 読み取るRepomix出力ファイルのID
- 特徴:
- Webベースの環境やサンドボックスアプリケーション向けに特別に設計されています
- IDを使用して、以前に生成された出力の内容を取得します。
- ファイルシステムへのアクセスを必要とせずに、パックされたコードベースへの安全なアクセスを提供します。
- file_system_read_file : セキュリティ検証付きの絶対パスを使用してファイルを読み取る
- パラメータ:
path
: 読み込むファイルへの絶対パス
- セキュリティ機能:
- Secretlintを使用してセキュリティ検証を実装する
- 機密情報を含むファイルへのアクセスを防止します
- ディレクトリトラバーサル攻撃を防ぐために絶対パスを検証します
- file_system_read_directory : 絶対パスを使用してディレクトリの内容を一覧表示する
- パラメータ:
path
: リストするディレクトリへの絶対パス
- 特徴:
- ファイルとディレクトリを明確なインジケータで表示します(
[FILE]
または[DIR]
) - 適切なエラー処理による安全なディレクトリトラバーサルを提供します
- パスを検証し、絶対パスであることを確認します
- ファイルとディレクトリを明確なインジケータで表示します(
⚙️ 構成
カスタム構成用に、プロジェクト ルートにrepomix.config.json
ファイルを作成します。
設定オプションの説明は次のとおりです。
オプション | 説明 | デフォルト |
---|---|---|
output.filePath | 出力ファイルの名前 | "repomix-output.xml" |
output.style | 出力のスタイル( xml 、 markdown 、 plain ) | "xml" |
output.parsableStyle | 選択したスタイルスキーマに基づいて出力をエスケープするかどうか。これによりトークン数が増加する可能性があることに注意してください。 | false |
output.compress | トークン数を減らすためにインテリジェントコード抽出を実行するかどうか | false |
output.headerText | ファイルヘッダーに含めるカスタムテキスト | null |
output.instructionFilePath | 詳細なカスタム指示を含むファイルへのパス | null |
output.fileSummary | 出力の先頭に要約セクションを含めるかどうか | true |
output.directoryStructure | 出力にディレクトリ構造を含めるかどうか | true |
output.removeComments | サポートされているファイル形式からコメントを削除するかどうか | false |
output.removeEmptyLines | 出力から空行を削除するかどうか | false |
output.showLineNumbers | 出力の各行に行番号を追加するかどうか | false |
output.copyToClipboard | ファイルを保存するだけでなく、出力をシステムクリップボードにコピーするかどうか | false |
output.topFilesLength | サマリーに表示する上位ファイルの数。0に設定するとサマリーは表示されません。 | 5 |
output.includeEmptyDirectories | リポジトリ構造に空のディレクトリを含めるかどうか | false |
output.git.sortByChanges | git の変更数でファイルを並べ替えるかどうか(変更の多いファイルは下に表示されます) | true |
output.git.sortByChangesMaxCommits | Git の変更を分析するコミットの最大数 | 100 |
include | 含めるファイルのパターン( globパターンを使用) | [] |
ignore.useGitignore | プロジェクトの.gitignore ファイルのパターンを使用するかどうか | true |
ignore.useDefaultPatterns | デフォルトの無視パターンを使用するかどうか | true |
ignore.customPatterns | 無視する追加パターン( globパターンを使用) | [] |
security.enableSecurityCheck | ファイルのセキュリティチェックを実行するかどうか | true |
tokenCount.encoding | OpenAIのtiktokenトークナイザーで使用されるトークンカウントエンコーディング(例:GPT-4oの場合はo200k_base 、GPT-4/3.5の場合はcl100k_base )。エンコーディングの詳細については、 tiktoken model.pyを参照してください。 | "o200k_base" |
構成ファイルはJSON5構文をサポートしており、次のことが可能です。
- コメント(1行と複数行の両方)
- オブジェクトと配列の末尾のカンマ
- 引用符で囲まれていないプロパティ名
- より緩和された文字列構文
構成例:
グローバル構成
グローバル構成ファイルを作成するには:
グローバル構成ファイルは、次の場所に作成されます。
- Windows:
%LOCALAPPDATA%\Repomix\repomix.config.json
- macOS/Linux:
$XDG_CONFIG_HOME/repomix/repomix.config.json
または~/.config/repomix/repomix.config.json
注意: ローカル構成 (存在する場合) はグローバル構成よりも優先されます。
含める、無視する
パターンを含める
Repomix は、 glob パターンを使用して含めるファイルを指定する機能をサポートするようになりました。これにより、より柔軟で強力なファイル選択が可能になります。
**/*.js
を使用して、任意のディレクトリ内のすべての JavaScript ファイルを含めます。src/**/*
を使用して、src
ディレクトリとそのサブディレクトリ内のすべてのファイルを含めます。["src/**/*.js", "**/*.md"]
のような複数のパターンを組み合わせて、src
内の JavaScript ファイルとすべての Markdown ファイルを含めます。
パターンを無視する
Repomix は、パック処理中に特定のファイルまたはディレクトリを除外するための無視パターンを設定する複数の方法を提供します。
- .gitignore : デフォルトでは、プロジェクトの
.gitignore
ファイルと.git/info/exclude
にリストされているパターンが使用されます。この動作は、ignore.useGitignore
設定または--no-gitignore
CLI オプションで制御できます。 - デフォルトパターン:Repomix には、一般的に除外されるファイルとディレクトリ(例:node_modules、.git、バイナリファイル)のデフォルトリストが含まれています。この機能は、
ignore.useDefaultPatterns
設定または CLI オプション--no-default-patterns
で制御できます。詳細はdefaultIgnore.tsをご覧ください。 - .repomixignore : プロジェクトルートに
.repomixignore
ファイルを作成して、Repomix 固有の無視パターンを定義できます。このファイルは.gitignore
と同じ形式です。 - カスタムパターン: 設定ファイルの
ignore.customPatterns
オプションを使用して、追加の無視パターンを指定できます。この設定は、コマンドラインオプション-i, --ignore
で上書きできます。
優先順位(最高から最低の順):
- カスタムパターン
ignore.customPatterns
.repomixignore
.gitignore
および.git/info/exclude
(ignore.useGitignore
が true で、--no-gitignore
が使用されていない場合)- デフォルトのパターン(
ignore.useDefaultPatterns
がtrueで、--no-default-patterns
が使用されていない場合)
このアプローチにより、プロジェクトのニーズに応じて柔軟なファイル除外設定が可能になります。セキュリティ上重要なファイルや大きなバイナリファイルを除外することで、生成されるパックファイルのサイズを最適化し、機密情報の漏洩を防ぎます。
注: デフォルトではバイナリファイルはパックされた出力に含まれませんが、出力ファイルの「リポジトリ構造」セクションにそのパスがリストされます。これにより、パックされたファイルは効率的でテキストベースの形式を維持しながら、リポジトリ構造の全体像を把握できます。
カスタム指示
output.instructionFilePath
オプションを使用すると、プロジェクトに関する詳細な指示やコンテキストを含む別のファイルを指定できます。これにより、AIシステムはプロジェクトの具体的なコンテキストと要件を理解し、より適切でカスタマイズされた分析や提案を行えるようになります。
この機能の使用方法の例を次に示します。
- プロジェクト ルートに
repomix-instruction.md
という名前のファイルを作成します。
repomix.config.json
にinstructionFilePath
オプションを追加します。
Repomix が出力を生成すると、 repomix-instruction.md
の内容が専用のセクションに含められます。
注: 命令の内容は出力ファイルの末尾に追加されます。この配置は特にAIシステムに効果的です。これがなぜ有益なのかを理解したい方のために、Anthropicのドキュメントでいくつかの説明が提供されています。
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips
長文データを先頭に配置する:長文のドキュメントや入力(約2万トークン以上)は、プロンプトの上部、クエリ、説明、例の上に配置してください。これにより、Claude のすべてのモデルのパフォーマンスが大幅に向上します。クエリを末尾に配置すると、特に複雑な複数ドキュメントの入力の場合、テストでの応答品質が最大30%向上します。
コメントの削除
output.removeComments
がtrue
に設定されている場合、Repomix はサポートされているファイル形式からコメントを削除しようとします。この機能により、出力ファイルのサイズを縮小し、重要なコードコンテンツに集中できるようになります。
サポートされている言語は次のとおりです:
HTML、CSS、JavaScript、TypeScript、Vue、Svelte、Python、PHP、Ruby、C、C#、Java、Go、Rust、Swift、Kotlin、Dart、Shell、YAML。
注: コメントの削除プロセスは、誤ってコードを削除してしまうのを防ぐため、慎重に行われます。複雑なケースでは、一部のコメントが残されることがあります。
🔍 セキュリティチェック
Repomixには、 Secretlintを使用してファイル内の機密情報を検出するセキュリティチェック機能が搭載されています。この機能は、圧縮されたリポジトリを共有する前に、潜在的なセキュリティリスクを特定するのに役立ちます。
パック処理が完了すると、セキュリティチェックの結果がCLI出力に表示されます。疑わしいファイルが検出された場合は、警告メッセージとともにそれらのファイルのリストが表示されます。
出力例:
Repomix のセキュリティチェック機能はデフォルトで有効になっています。設定ファイルでsecurity.enableSecurityCheck
をfalse
に設定することで無効にできます。
または、 --no-security-check
コマンドライン オプションを使用します。
[!NOTE] セキュリティチェックを無効にすると、機密情報が漏洩する可能性があります。このオプションは慎重に使用し、必要な場合にのみ使用してください。例えば、テストファイルやサンプルの資格情報を含むドキュメントを扱う場合などです。
🤝 貢献
コミュニティからの貢献を歓迎します。始めるには、貢献ガイドを参照してください。
寄稿者
🔒 プライバシーポリシー
Repomix CLI ツール
- データ収集: Repomix CLI ツールは、ユーザー データ、テレメトリ、リポジトリ情報を収集、送信、または保存しません。
- ネットワークの使用:Repomix CLIはインストール後、完全にオフラインで動作します。インターネット接続が必要なのは、以下の場合のみです。
- npm/yarn 経由でインストールします。
--remote
フラグを使用してリモート リポジトリを処理します。- 更新を確認しています (手動でトリガー)。
- セキュリティに関する考慮事項: すべての処理はローカルで行われるため、Repomix CLI はプライベート リポジトリや内部リポジトリでも安全に使用できます。
レポミックスウェブサイト( repomix.com )
- データ収集:Repomixウェブサイトでは、 Google Analyticsを使用して、ページビューやユーザーインタラクションなどの使用状況データを収集しています。これは、ウェブサイトの利用状況を把握し、ユーザーエクスペリエンスを向上させるために役立てられています。
免責事項
Repomix (CLI ツールと Web サイトの両方) は、いかなる保証も保証もなく「現状のまま」提供されます。
当社は、生成された出力の使用方法(その正確性、合法性、またはその使用から生じる可能性のある結果を含みますが、これらに限定されません)については責任を負いません。
📜 ライセンス
このプロジェクトはMIT ライセンスに基づいてライセンスされています。
This server cannot be installed
Repomix MCP Server を使用すると、ローカルまたはリモートのリポジトリを最適化された単一ファイルにパッケージ化し、Tree-sitter によるインテリジェントな圧縮によりコード構造と重要な署名を保持しながらトークンの使用を大幅に削減することで、AI モデルがコードベースを効率的に分析できるようになります。
- 🌟 Features
- 🚀 Quick Start
- 📊 Usage
- ⚙️ Configuration
- 🔍 Security Check
- 🤝 Contribution
- 🔒 Privacy Policy
- 📜 License
Related Resources
Appeared in Searches
- Tool or method for automating code refactoring and finding similar code in a codebase
- Information about Repomix Architect
- A server for indexing public GitHub repositories and answering questions using the data
- A tool for finding relevant files in a Git project based on questions
- Using Sourcegraph APIs to search a codebase