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をサポート。

動作フロー(概要)

  1. 設定 – グローバルな mira.yaml(コンテナにマウント)でデフォルト(LLMモデル、インデックスモデルなど)を定義。個別のリポジトリは .mira.yaml を追加して閾値やコメント制限をカスタマイズできます。
  2. Webhookリスナー – Miraは、サポートされているGitホストからのPRイベントを受信するWebサービスとして動作します。
  3. インデックス作成 – リポジトリが初めて認識された際、Miraはコードベース全体の埋め込みインデックスを構築(indexing_model を使用)。このインデックスは選択されたデータベースに保存されます。
  4. レビュー生成 – 新しいPRに対して、Miraは差分を取得し、設定されたプロバイダー経由でLLMに問い合わせ、提案コメントのセットを取得します。
  5. ノイズフィルタ – コメントは信頼度、重複削除、リポジトリ設定に基づく上限でフィルタリングされます。
  6. 投稿 – フィルタ済みコメントはPR(GitHub、GitLab、Forgejo)に投稿され、ダッシュボードにも記録されます。
  7. 学習 – レビュアーがコメントを拒否または編集した場合、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のワンクリックテンプレートを提供。公開ベンチマーク上では、最も高速なオープンソースレビューとして位置づけられています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト