概要
Repomix(https://repomix.com/)は、リポジトリ全体や指定した部分のコードをAI(大規模言語モデル)が理解しやすい単一のファイル(例: repomix-output.xml)にまとめるツールである。特に、「特定画面から参照されるコードを1ファイルに固める」機能は、globパターンやinclude/excludeオプションを使って、特定の機能・画面に関連するファイルだけを選択的に抽出・統合するものである。これが非常に有用である理由を、ユースケースと利点を交えて説明する。

主な有用性
AIに効率的にコンテキストを提供できる
LLM(Claude、ChatGPT、Geminiなど)はコンテキストウィンドウ(入力可能なトークン数)に制限がある。リポジトリ全体を丸ごと入れるとトークンオーバーになりやすいが、特定画面関連のコードだけを絞って1ファイルにまとめることで、必要なコンテキストだけをコンパクトに渡せる。AIが「ファイルを探す」手間なく全体を把握できるため、回答の精度が向上し、ハルシネーション(誤った出力)が減少する。
開発効率の劇的な向上
複数ファイルを手動でコピー&ペーストする煩わしさがなくなる。AIに「この画面のバグを修正して」「リファクタリング提案して」と投げると、依存関係を考慮した正確な提案が得やすくなる。
具体的なユースケースと意味
| シナリオ | どう固めるか | 有用な意味・効果 |
|---|---|---|
| 特定画面のバグ調査/修正(例: Webアプリのログイン画面) | --include "src/components/Login/*.tsx" "src/pages/login/*.js" "src/api/auth/*.ts" などで関連ファイル指定 |
AIが画面のUIコンポーネント、API呼び出し、状態管理コードを一括把握。原因特定が速く、修正コードをArtifacts機能などで複数ファイル出力可能。 |
| コードレビューやリファクタリング | 特定ディレクトリやglobパターンで絞り込み(例: src/features/user-profile/**) |
全体リポではなく関連部分だけレビュー依頼。トークン節約でコスト減、レビュー精度向上。 |
| 新機能追加時の設計相談 | 既存の類似画面コードを抽出 | AIがアーキテクチャの整合性を考慮した提案を出せる。計画立案が効率化。 |
| セキュリティチェック | 特定モジュールのコードを抽出 + Secretlintで機密除外 | 脆弱性スキャンを焦点化。機密漏洩リスク低減。 |
| ドキュメント生成 | 画面関連ファイルだけまとめる | AIに「この画面の動作説明ドキュメントを作成して」と依頼しやすくなる。 |
追加の利点
- トークン管理: ファイルごとのトークンカウント表示で、コンテキスト制限を事前確認可能。
- セキュリティ: .gitignore尊重 + Secretlintで秘密鍵などを自動除外。
- 柔軟性: 出力形式(XML/Markdown/JSON/Plain)選択、コード圧縮(Tree-sitter使用でトークン70%削減可能)、Gitログ/差分包含オプション。
- 手軽さ: CLIで
repomix --include <pattern>や Web版で簡単に実行。
要するに、散らばったコードを「AIが即座に理解できる1つの塊」に変換することで、AIを本格的な開発パートナーに変えるのが最大の価値である。特に大規模プロジェクトで「この画面だけ直したい」場面で威力を発揮し、開発スピードを2〜2.5倍向上させるケースも報告されている。
実際に試すなら、プロジェクトディレクトリでnpx repomix --include "src/screens/TargetScreen/**" のように実行する。