AI最適化
コードベースをAIが理解・処理しやすい形式にフォーマット
Pack your codebase into AI-friendly formats
Repomixを使用すると、コードベース全体を1ファイル(repomix-output.txt
)にできます。
そのまま Claude に次のようなプロンプトと一緒に送ると、
このファイルはコードベース内のファイルを1つにまとめたものです。
コードのリファクタリングを行いたいので、まずはコードレビューをお願いします。
全体の内容を理解した上で、リファクタリングなどを進めることができます。
具体的な内容を提案すると、それに従って良い感じのコードを生成してくれます。Claude だと Artifacts 機能で複数のファイルが出力できるため、依存関係にある複数のコードも一緒に生成できます。
良いコーディング体験を!🚀
Repomix はCLIでも使えます。
ウェブ上では簡単な設定しかできませんが、より詳細な設定で実行したい場合はCLIを使うことをお勧めします。
任意のディレクトリで以下のコマンドを実行すると、 repomix-output.txt
が生成され、それ以降の使い方は同様です。
npx repomix
または、グローバルにインストールして繰り返し使用することもできます。
# npmを使用してインストール
npm install -g repomix
# または、yarnを使用
yarn global add repomix
# または、Homebrewを使用(macOS/Linux)
brew install repomix
# その後、任意のプロジェクトディレクトリで実行
repomix
カレントディレクトリ全体をまとめる。
repomix
特定のディレクトリをまとめる。
repomix path/to/directory
glob パターンを使用して特定のファイルやディレクトリを指定。
repomix --include "src/**/*.ts,**/*.md"
特定のファイルやディレクトリを除外。
repomix --ignore "**/*.log,tmp/"
リモートリポジトリをまとめる。
# ショートハンド形式を使用
npx repomix --remote yamadashy/repomix
# 完全なURL(ブランチや特定のパスをサポート)
npx repomix --remote https://github.com/yamadashy/repomix
npx repomix --remote https://github.com/yamadashy/repomix/tree/main
# コミットのURLを使用
npx repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1
設定ファイル(repomix.config.json
)の初期化
repomix --init
生成されたファイルは、Claude、ChatGPT、Geminiなどの生成AIツールで使用できます。
Dockerを使用してRepomixを実行することも可能で、分離された環境でRepomixを実行したい場合に便利です。
基本的な使用方法
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix
特定のディレクトリをまとめる
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix path/to/directory
リモートリポジトリを処理し、output
ディレクトリに出力
docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote https://github.com/yamadashy/repomix
出力フォーマットは3種類あり、xml
, markdown
, plain
を選択できます。 LLMによっては得意・不得意があるので、適切なフォーマットを選択してください。
# XMLフォーマット(デフォルト)
repomix --style xml
# Markdownフォーマット
repomix --style markdown
# プレーンテキストフォーマット
repomix --style plain
フォルダごとの永続的な設定のためにrepomix --init
でrepomix.config.json
を作成できます。
{
"output": {
"style": "markdown",
"filePath": "custom-output.md",
"removeComments": true,
"showLineNumbers": true,
"topFilesLength": 10
},
"ignore": {
"customPatterns": ["*.test.ts", "docs/**"]
}
}
TIP
💡 詳細なドキュメントと更なる例については、GitHubリポジトリをご覧ください!