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/"
リモートリポジトリをまとめる。
repomix --remote https://github.com/yamadashy/repomix
# GitHubショートハンド形式も使用可能
repomix --remote yamadashy/repomix
# ブランチ名、タグ、コミットハッシュを指定可能
repomix --remote https://github.com/yamadashy/repomix --remote-branch main
# または特定のコミットハッシュを使用
repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695
設定ファイル(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によっては得意・不得意があるので、適切なフォーマットを選択してください。
# プレーンテキストフォーマット(デフォルト)
repomix --style plain
# XMLフォーマット
repomix --style xml
# Markdownフォーマット
repomix --style markdown
フォルダごとの永続的な設定のために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リポジトリをご覧ください!