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)을 사용해 풀 리퀘스트(Pull Request) 또는 머지 리퀘스트(Merge Request)를 자동으로 리뷰합니다. 웹 대시보드, 코드 인덱스, 취약성 경고, 그리고 팀의 스타일에 맞춰 적응하는 학습 루프를 제공합니다.

왜 중요한가요 – 대부분의 AI 코드 리뷰 제품은 SaaS 형태로, 차이점을 제3자 서버로 전송하고 생성된 댓글만 확인할 수 있습니다. Mira는 모든 데이터 (차이점, 임베딩, CVE 피드, 사용 로그)를 사용자가 관리하는 SQLite 또는 Postgres 데이터베이스에 보관하므로, 숨겨진 텔레메트리나 데이터 판매가 전혀 없습니다.


핵심 기능 (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. 웹훅 리스너 – Mira는 지원되는 Git 호스트로부터 PR 이벤트를 수신하는 웹 서비스로 실행됩니다.
  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로 린트 처리

라이선스

Apache 2.0 – 상용 및 개인 사용에 무료이며, 일반적인 저작자 표시 요구사항이 있습니다.


결론 – Mira는 팀이 AI 지원 코드 리뷰를 완전히 제어할 수 있도록 합니다: 모델을 선택하고 모든 데이터를 온프레미스에 보관하며, 일반적인 SaaS 리뷰가 숨기는 비용, 보안, 리뷰어 분석의 가시성을 얻을 수 있습니다. 프로젝트는 적극적으로 유지보수되며 Docker 이미지와 Railway의 원클릭 템플릿을 제공하며, 공개 벤치마크에서 가장 빠른 오픈소스 리뷰어로 위치하고 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트