repomix について
repomixは、LLM分析用のコードコンテキストを準備するAgent向けスキルです。ローカルまたはリモートのリポジトリを、ファイル選択やトークン数の集計、機密情報チェック付きでまとめます。
主な機能
- 01ローカル・リモートリポジトリのパッケージ化
- 02XML、Markdown、JSON、プレーンテキストで出力
- 03包含・除外パターンによるファイル選択
- 04トークン数の集計と機密情報の検出
- 05対応言語のコメント削除
活用シーン
- 01AIレビューや計画用のコードベース準備
- 02対象モジュールにまたがるバグ調査
- 03ドキュメント用リポジトリスナップショットの作成
- 04サードパーティリポジトリの監査
MCP 対応
READMEでは、AIアシスタント連携用のMCPサーバーが利用可能とされています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ samhvw8/ dotfiles --skill repomixインストール後、Claude Code で/repomixを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/configuration.mdusage-patterns.mdscripts/dot_coverageREADME.mdrepomix_batch.pyrepos.example.jsonrequirements.txtscripts/tests/test_repomix_batch.py詳細
Repomix スキル
Repomix は、リポジトリ全体を AI が扱いやすい単一ファイルにまとめる強力なツールです。コードベースを大規模言語モデル(LLM)や、Claude、ChatGPT、Gemini などの AI ツールに渡す必要がある場合に最適です。
このスキルを使用する場面
次のような場合にこのスキルを使用します:
- ユーザーが AI による分析のためにコードベースをまとめる必要がある場合
- LLM で利用するリポジトリのコンテキストを準備する場合
- ドキュメント作成用にコードベースのスナップショットを生成する場合
- サードパーティーのライブラリやリポジトリを分析する場合
- AI が扱いやすいコードプロジェクトの表現を作成する場合
- 大規模なコードベース全体にわたってバグを調査する場合
- リポジトリのセキュリティ監査を実施する場合
- 実装計画用のコンテキストを生成する場合
主な機能
1. リポジトリのパッケージ化
Repomix は、リポジトリ全体を次の機能を備えた単一ファイルにまとめます:
- 明確な区切りを備えた、AI に最適化された形式
- 複数の出力形式(XML、Markdown、JSON、プレーンテキスト)
- Git を考慮した処理(.gitignore を尊重)
- LLM のコンテキスト管理に役立つトークン数のカウント
- 機密情報のセキュリティチェック
2. リモートリポジトリのサポート
クローンせずにリモートリポジトリを処理できます:
- 短縮形式:
npx repomix --remote yamadashy/repomix - 完全な URL:
npx repomix --remote https://github.com/owner/repo - 特定のコミット:
npx repomix --remote https://github.com/owner/repo/commit/hash
3. コメントの削除
必要に応じて、サポート対象の言語からコメントを削除します:
- 対応言語:HTML、CSS、JavaScript、TypeScript、Vue、Svelte、Python、PHP、Ruby、C、C#、Java、Go、Rust、Swift、Kotlin、Dart、Shell、YAML
--remove-commentsまたは設定ファイルで有効化します
インストール
まずインストール済みか確認します:
repomix --version
お好みの方法でインストールします:
# npm
npm install -g repomix
# yarn
yarn global add repomix
# bun
bun add -g repomix
# Homebrew (macOS/Linux)
brew install repomix
基本的な使い方
現在のディレクトリをパッケージ化
# Basic packaging (generates repomix-output.xml)
repomix
# Specify output format
repomix --style markdown
repomix --style json
repomix --style plain
# Custom output path
repomix -o custom-output.xml
特定のディレクトリをパッケージ化
repomix /path/to/directory
リモートリポジトリをパッケージ化
# Shorthand format
npx repomix --remote owner/repo
# Full URL
npx repomix --remote https://github.com/owner/repo
# Specific commit
npx repomix --remote https://github.com/owner/repo/commit/abc123
コマンドラインオプション
ファイルの選択
# Include specific patterns
repomix --include "src/**/*.ts,*.md"
# Ignore additional patterns
repomix -i "tests/**,*.test.js"
# Disable .gitignore rules
repomix --no-gitignore
# Disable default ignore patterns
repomix --no-default-patterns
出力の設定
# Output format
repomix --style markdown # or xml, json, plain
# Output file path
repomix -o output.md
# Remove comments
repomix --remove-comments
# Show line numbers
repomix --no-line-numbers # disable line numbers
セキュリティと分析
# Run security checks
repomix --no-security-check # disable security scanning
# Copy to clipboard
repomix --copy # copy output to clipboard
# Verbose output
repomix --verbose
設定
# Use custom config file
repomix -c custom-config.json
# Initialize new config
repomix --init # creates repomix.config.json
設定ファイル
プロジェクトのルートに repomix.config.json を作成します:
{
"output": {
"filePath": "repomix-output.xml",
"style": "xml",
"removeComments": false,
"showLineNumbers": true,
"copyToClipboard": false
},
"include": ["**/*"],
"ignore": {
"useGitignore": true,
"useDefaultPatterns": true,
"customPatterns": [
"additional-folder",
"**/*.log",
"**/tmp/**"
]
},
"security": {
"enableSecurityCheck": true
}
}
除外パターン
.repomixignore ファイル
Repomix 専用の除外パターンを指定するには、.repomixignore を作成します(形式は .gitignore と同じです):
# Build artifacts
dist/
build/
*.min.js
# Test files
**/*.test.ts
**/*.spec.ts
coverage/
# Large files
*.mp4
*.zip
# Sensitive files
.env*
secrets/
優先順位
- CLI の除外パターン(
-iフラグ) .repomixignoreファイル- 設定ファイルのカスタムパターン
.gitignoreファイル(有効な場合)- デフォルトパターン(有効な場合)
出力形式
XML 形式(デフォルト)
構造化された AI での利用に最適です:
repomix --style xml
Markdown 形式
構文ハイライト付きで、人間が読みやすい形式です:
repomix --style markdown
JSON 形式
プログラムで処理する場合に適しています:
repomix --style json
プレーンテキスト
シンプルに連結した形式です:
repomix --style plain
活用例
1. コードレビューの準備
# Package feature branch for AI review
repomix --include "src/**/*.ts" --remove-comments -o feature-review.md --style markdown
2. セキュリティ監査
# Package third-party library for analysis
npx repomix --remote vendor/library --style xml -o audit.xml
3. ドキュメントの生成
# Package with docs and code
repomix --include "src/**,docs/**,*.md" --style markdown -o context.md
4. バグの調査
# Package specific modules
repomix --include "src/auth/**,src/api/**" -o debug-context.xml
5. 実装計画
# Full codebase context for planning
repomix --remove-comments --copy
トークンの管理
Repomix は次のトークン数を自動的にカウントします:
- 個別のファイル
- リポジトリ全体
- 形式ごとの出力
トークン数を参考に、LLM のコンテキスト上限を管理します:
- Claude:約 200K トークン
- GPT-4:約 128K トークン
- GPT-3.5:約 16K トークン
セキュリティに関する考慮事項
機密データの検出
Repomix は Secretlint を使用して、次の情報を検出します:
- API キーとトークン
- パスワードと認証情報
- 秘密鍵
- AWS のシークレット
- データベース接続文字列
必要に応じて無効化します:
repomix --no-security-check
ベストプラクティス
- 共有する前に、必ず出力を確認します
- 機密ファイルには
.repomixignoreを使用します - 未知のコードベースではセキュリティチェックを有効にします
.envファイルのパッケージ化は避けます- ハードコードされた認証情報がないか確認します
パフォーマンスの最適化
大規模なリポジトリ
Repomix は並列処理にワーカースレッドを使用します:
- 大規模なコードベースを効率的に処理します
- 例:facebook/react の処理が 29 倍高速化(123 秒 → 4 秒)
最適化のヒント
# Exclude unnecessary files
repomix -i "node_modules/**,dist/**,*.min.js"
# Process specific directories only
repomix --include "src/**/*.ts"
# Disable line numbers for smaller output
repomix --no-line-numbers
ワークフローへの統合
Claude Code との連携
# Package and analyze in one workflow
repomix --style markdown --copy
# Then paste into Claude for analysis
CI/CD との連携
# Generate codebase snapshot for releases
repomix --style markdown -o release-snapshot.md
Git フックとの連携
# Pre-commit hook to generate context
repomix --include "src/**" -o .context/latest.xml
よく使うパターン
リポジトリ全体のパッケージ化
repomix --remove-comments --style markdown -o full-repo.md
ソースコードのみ
repomix --include "src/**/*.{ts,tsx,js,jsx}" -i "**/*.test.*"
ドキュメントバンドル
repomix --include "**/*.md,docs/**" --style markdown
TypeScript プロジェクト
repomix --include "**/*.ts,**/*.tsx" --remove-comments --no-line-numbers
リモート分析
npx repomix --remote owner/repo --style xml -o analysis.xml
トラブルシューティング
問題:出力が大きすぎる
# Exclude unnecessary files
repomix -i "node_modules/**,dist/**,coverage/**"
# Process specific directories
repomix --include "src/**"
問題:ファイルが見つからない
# Disable .gitignore rules
repomix --no-gitignore
# Check ignore patterns
cat .repomixignore
問題:機密データに関する警告
# Review flagged files
# Add to .repomixignore
# Or disable checks: --no-security-check
実装ワークフロー
ユーザーからリポジトリのパッケージ化を依頼された場合:
-
要件を評価する
- 対象のリポジトリ(ローカル/リモート)を特定する
- 必要な出力形式を判断する
- 機密データに関する懸念を確認する
-
フィルターを設定する
- 関連ファイルの包含パターンを設定する
- 不要なファイルの除外パターンを追加する
- コメントの削除を有効または無効にする
-
パッケージ化を実行する
- 適切なオプションを指定して repomix を実行する
- トークン数を監視する
- セキュリティチェックを確認する
-
出力を検証する
- 生成されたファイルを確認する
- 機密データが含まれていないことを確認する
- 対象の LLM のトークン数制限を確認する
-
コンテキストを提供する
- パッケージ化したファイルをユーザーに提供する
- トークン数の概要を含める
- 警告や問題があれば記載する
ベストプラクティス
- デフォルトから始める:まず基本的な
repomixを実行し、その後調整します - .repomixignore を使用する:複雑なパターンには CLI フラグよりも適しています
- セキュリティチェックを有効にする:特にサードパーティ製コードで有効にします
- 適切な形式を選ぶ:AI 向けには XML、人間向けには Markdown を使用します
- トークン数を監視する:LLM の制限内に収めます
- コメントを削除する:ドキュメントよりもロジックを重視する場合に削除します
- 出力をバージョン管理する:.gitignore に追加し、必要に応じて再生成します
- パターンをテストする:包含/除外が想定どおりに機能することを確認します
関連ツール
- Context7:最新のライブラリドキュメントを参照するため
- Git:リポジトリの履歴を分析するため
- Secretlint:セキュリティスキャンを行うため
- トークンカウンター:LLM のコンテキストを管理するため
追加リソース
- GitHub:https://github.com/yamadashy/repomix
- ドキュメント:https://repomix.com/guide/
- MCP サーバー:AI アシスタントとの連携に利用可能
- Claude Code プラグイン:公式連携を利用可能