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를 지원합니다. |
작동 방식 (고수준 흐름)
- 설정 – 글로벌
mira.yaml(컨테이너에 마운트)로 기본값(예: LLM 모델, 인덱싱 모델)을 정의합니다. 개별 리포지토리는.mira.yaml을 추가해 임계값이나 댓글 제한을 조정할 수 있습니다. - 웹훅 리스너 – Mira는 지원되는 Git 호스트로부터 PR 이벤트를 수신하는 웹 서비스로 실행됩니다.
- 인덱싱 – 처음 인식된 리포지토리에 대해 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로 린트 처리
라이선스
Apache 2.0 – 상용 및 개인 사용에 무료이며, 일반적인 저작자 표시 요구사항이 있습니다.
결론 – Mira는 팀이 AI 지원 코드 리뷰를 완전히 제어할 수 있도록 합니다: 모델을 선택하고 모든 데이터를 온프레미스에 보관하며, 일반적인 SaaS 리뷰가 숨기는 비용, 보안, 리뷰어 분석의 가시성을 얻을 수 있습니다. 프로젝트는 적극적으로 유지보수되며 Docker 이미지와 Railway의 원클릭 템플릿을 제공하며, 공개 벤치마크에서 가장 빠른 오픈소스 리뷰어로 위치하고 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트