mcpField
R
repomix

repomix

github.com/samhvw8エージェントワークフロー1155 回インストール47 週間前に更新
リポジトリ

repomix について

ローカルまたはリモートのコードベースを、LLM 分析用の単一ファイルにまとめるリポジトリ梱包スキルです。開発者やエージェントに、ファイルの絞り込み、形式選択、トークン数の確認、機密情報の検査方法を案内します。

主な機能

  1. 01ローカル・リモートリポジトリの梱包
  2. 02XML、Markdown、JSON、プレーンテキスト出力
  3. 03ファイルの包含・除外パターン
  4. 04トークン数の計測と機密情報検査
  5. 05任意のコメント削除

活用シーン

  1. 01AI レビュー用のコード準備
  2. 02実装計画向けのリポジトリ情報の集約
  3. 03セキュリティ監査用のサードパーティコード梱包
  4. 04バグ調査に必要なコンテキストの作成

MCP 対応

README では AI アシスタント連携用の MCP サーバーが利用可能とされていますが、提供する機能の説明はありません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/samhvw8/dot-claude --skill repomix

インストール後、Claude Code で/repomixを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
configuration.md
usage-patterns.md
scripts/
.coverage
README.md
repomix_batch.py
repos.example.json
requirements.txt
scripts/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/
優先順位
  1. CLI の除外パターン(-i フラグ)
  2. .repomixignore ファイル
  3. 設定ファイルのカスタムパターン
  4. .gitignore ファイル(有効な場合)
  5. デフォルトパターン(有効な場合)

出力形式

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
ベストプラクティス
  1. 共有する前に、必ず出力を確認します
  2. 機密ファイルには .repomixignore を使用します
  3. 未知のコードベースではセキュリティチェックを有効にします
  4. .env ファイルのパッケージ化は避けます
  5. ハードコードされた認証情報がないか確認します

パフォーマンスの最適化

大規模なリポジトリ

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

実装ワークフロー

ユーザーからリポジトリのパッケージ化を依頼された場合:

  1. 要件を評価する

    • 対象のリポジトリ(ローカル/リモート)を特定する
    • 必要な出力形式を判断する
    • 機密データに関する懸念を確認する
  2. フィルターを設定する

    • 関連ファイルの包含パターンを設定する
    • 不要なファイルの除外パターンを追加する
    • コメントの削除を有効または無効にする
  3. パッケージ化を実行する

    • 適切なオプションを指定して repomix を実行する
    • トークン数を監視する
    • セキュリティチェックを確認する
  4. 出力を検証する

    • 生成されたファイルを確認する
    • 機密データが含まれていないことを確認する
    • 対象の LLM のトークン数制限を確認する
  5. コンテキストを提供する

    • パッケージ化したファイルをユーザーに提供する
    • トークン数の概要を含める
    • 警告や問題があれば記載する

ベストプラクティス

  1. デフォルトから始める:まず基本的な repomix を実行し、その後調整します
  2. .repomixignore を使用する:複雑なパターンには CLI フラグよりも適しています
  3. セキュリティチェックを有効にする:特にサードパーティ製コードで有効にします
  4. 適切な形式を選ぶ:AI 向けには XML、人間向けには Markdown を使用します
  5. トークン数を監視する:LLM の制限内に収めます
  6. コメントを削除する:ドキュメントよりもロジックを重視する場合に削除します
  7. 出力をバージョン管理する:.gitignore に追加し、必要に応じて再生成します
  8. パターンをテストする:包含/除外が想定どおりに機能することを確認します

関連ツール

  • Context7:最新のライブラリドキュメントを参照するため
  • Git:リポジトリの履歴を分析するため
  • Secretlint:セキュリティスキャンを行うため
  • トークンカウンター:LLM のコンテキストを管理するため

追加リソース

コメント