miracodeai/mira
Self-hosted AI code reviewer with indexed PR reviews, walkthroughs, vulnerability scanning, dependency graphs, custom rules, and a learning loop.
Mira – オンプレミスで実行可能なAIコードレビュー専用サービス
何であるか – Miraは、自社のインフラ上で実行するオープンソースのサービスであり、選択した大規模言語モデル(LLM)を使ってプルリクエスト(またはマージリクエスト)を自動的にレビューします。Webダッシュボード、コードインデックス、脆弱性アラート、およびチームのスタイルに適応する学習ループを提供します。
なぜ重要か – 多くのAIコードレビュー製品はSaaS形式で、差分データを第三者のサーバーに送信し、結果として得られるコメントしか確認できません。Miraはすべてのデータ(差分、埋め込み、CVEフィード、使用ログ)を、あなたが管理するSQLiteまたはPostgreSQLデータベースに保持するため、隠れたテレメトリーやデータ販売が一切ありません。
コア機能(READMEに記載)
| 機能 | 得られるもの |
|---|---|
| モデル非依存のレビュー | OpenAI互換エンドポイント(OpenRouter、Ollama、vLLM、Together、Groq、AWS Bedrockなど)またはCodex CLI経由のローカルLLM。APIキーはあなたが提供し、Miraはコストに追加料金を課しません。 |
| ノイズ低減 | 信頼度の閾値、重複削除、自己批判フェーズ、PRごとのコメント数制限により、簡潔で高価値なフィードバックのみを表示します。 |
| 学習ループ | Miraは、コメントが拒否されたか編集されたパターンを監視し、それらをカスタムレビュー規則に変換して、将来のレビューに反映します。 |
| カスタムルール | .mira.yamlまたはダッシュボード経由で、組織全体またはリポジトリごとのポリシーを自然言語で定義できます。 |
| フルリポジトリインデックス | レビュー前にリポジトリ全体を埋め込み、差分を超えた文脈をLLMに提供します。このインデックスは、組織全体のパッケージインベントリと依存関係グラフクエリを可能にします。 |
| 脆弱性スキャン | 時間単位で更新されるOSV.dev CVEフィードを保存し、影響を受けるパッケージに表示。ブレーストレーエージグラフも提供します。 |
| ダッシュボード | オンプレミスで実行可能なUIで、リポジトリ/モデルごとのコスト、レビューの健全性メトリクス、パッケージインベントリ、CVEアラート、レビュアーの応答性に関する分析を表示します。 |
| Gitプラットフォーム対応 | GitHub(GitHub Appとして)、GitLab(トークン)、Forgejo/Codeberg(トークン)。Bitbucketアダプタは計画中です。 |
| スピード/品質 | 公開された Code Review Bench でベンチマーク済み:平均約77秒/PR、F1スコア44。Miraはスピードと品質のパレートフロンティアに位置しています。 |
| デプロイ | Dockerイメージ(ghcr.io/miracodeai/mira:latest)で、Railway、Fly.io、Renderのワンクリックテンプレート、または単純な docker run で実行可能。永続化にはSQLite(デフォルト)またはPostgresをサポート。 |
動作フロー(概要)
- 設定 – グローバルな
mira.yaml(コンテナにマウント)でデフォルト(LLMモデル、インデックスモデルなど)を定義。個別のリポジトリは.mira.yamlを追加して閾値やコメント制限をカスタマイズできます。 - Webhookリスナー – Miraは、サポートされているGitホストからのPRイベントを受信するWebサービスとして動作します。
- インデックス作成 – リポジトリが初めて認識された際、Miraはコードベース全体の埋め込みインデックスを構築(indexing_model を使用)。このインデックスは選択されたデータベースに保存されます。
- レビュー生成 – 新しいPRに対して、Miraは差分を取得し、設定されたプロバイダー経由でLLMに問い合わせ、提案コメントのセットを取得します。
- ノイズフィルタ – コメントは信頼度、重複削除、リポジトリ設定に基づく上限でフィルタリングされます。
- 投稿 – フィルタ済みコメントはPR(GitHub、GitLab、Forgejo)に投稿され、ダッシュボードにも記録されます。
- 学習 – レビュアーがコメントを拒否または編集した場合、Miraはその結果を記録し、ルールセットを更新。これにより、将来のレビューがチームの好みにさらに適合します。
すぐに始める方法
# 1. 秘密情報を含む .env を作成
cat > .env <<EOF
MIRA_GITHUB_APP_ID=123456
MIRA_GITHUB_PRIVATE_KEY="$(cat private-key.pem)"
MIRA_WEBHOOK_SECRET=your-secret
OPENROUTER_API_KEY=sk-or-...
EOF
# 2. オプション:グローバル設定(mira.yaml)
cat > mira.yaml <<EOF
llm:
model: "anthropic/claude-sonnet-4-6"
indexing_model: "anthropic/claude-haiku-4-5"
EOF
# 3. コンテナを実行
docker run -p 8000:8000 \
--env-file .env \
-v "$(pwd)/mira.yaml:/app/mira.yaml" \
ghcr.io/miracodeai/mira:latest --config /app/mira.yaml
サービスが起動したら、生成されたGitHub App(またはGitLabトークン)をリポジトリにインストールしてください。新しいPRはすべて自動的にレビューされます。
開発と貢献
- 編集可能モードでインストール:
pip install -e ".[dev,serve]" pytest tests/でテストスイートを実行- 特殊な
-m evalマーカーは、実際のGitHubおよびLLMエンドポイントにアクセスする統合テストを実行(APIキーが必要) - コードは
mypyで型チェック、ruffでLint処理
ライセンス
Apache 2.0 – 商用・個人利用ともに無料。通常の著作表示要件があります。
結論 – MiraはチームがAI支援コードレビューを完全にコントロールできるようにします:モデルを選択し、すべてのデータをオンプレミスに保持し、通常のSaaSレビューが隠しているコスト、セキュリティ、レビュアー分析の可視性を獲得できます。プロジェクトは積極的にメンテナンスされており、DockerイメージとRailwayのワンクリックテンプレートを提供。公開ベンチマーク上では、最も高速なオープンソースレビューとして位置づけられています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト