Open-source & free — Battle-tested at Alibaba's scale. Hybrid architecture code review tool: deterministic pipelines + LLM Agent, precise line-level comments, built-in fine-tuned ruleset (NPE, thread-safety, XSS, SQL injection), OpenAI & Anthropic compatible.
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
Open Code Review는 AI 기반 코드 리뷰 CLI 도구입니다. 알리바바 그룹의 공식 내부 AI 코드 리뷰 어시스턴트로 시작되어, 지난 2년간 수만 명의 개발자에게 서비스를 제공하고 수백만 개의 코드 결함을 식별했습니다. 대규모 환경에서 철저히 검증된 후, 커뮤니티를 위해 오픈소스 프로젝트로 전환되었습니다. 모델 엔드포인트만 구성하면 바로 사용할 수 있습니다.
Git diff를 읽고, 변경된 파일을 도구 사용이 가능한 에이전트를 통해 구성 가능한 LLM에 전송하여 라인 수준의 정밀한 구조화된 리뷰 코멘트를 생성합니다. 에이전트는 전체 파일 내용을 읽고, 코드베이스를 검색하고, 컨텍스트를 위해 다른 변경된 파일을 검사하여 표면적인 diff 피드백 이상의 심층 리뷰를 생성할 수 있습니다. diff 리뷰 외에도 ocr scan은 전체 파일을 리뷰하여 의미 있는 diff가 없는 익숙하지 않은 코드베이스나 디렉토리를 감사하는 데 사용됩니다.
범용 에이전트(Claude Code)와 비교하여 Open Code Review는 동일한 기본 모델로 훨씬 더 높은 정밀도(Precision)와 F1 점수를 달성하면서도 약 1/9의 토큰만 소비하고 더 빠르게 리뷰를 완료합니다. 재현율(Recall)은 범용 에이전트보다 낮은데, 이는 노이즈보다 정밀도를 우선시하는 의도적인 트레이드오프입니다.
50개의 인기 오픈소스 저장소, 200개의 실제 Pull Request, 10개의 프로그래밍 언어로 구성된 실제 코드 리뷰 벤치마크로, 80명 이상의 시니어 엔지니어가 교차 검증했습니다(1,505개의 주석이 달린 정답 이슈).
| 지표 | 측정 대상 | 중요성 | ||
|---|---|---|---|---|
| F1 | 정밀도와 재현율의 조화 평균 | 전체 리뷰 품질을 나타내는 최고의 단일 지표 | ||
| 정밀도(Precision) | 보고된 이슈 중 실제 결함인 비율 | 높을수록 분류해야 할 오경보가 적음 | ||
| 재현율(Recall) | 발견된 실제 결함의 비율 | 높을수록 리뷰를 통과하는 이슈가 적음 | ||
| 평균 시간 | 리뷰당 소요 시간 | CI 파이프라인 지연 시간에 중요 | ||
| 평균 토큰 | 리뷰당 소비된 총 토큰 수 | API 비용에 직접적 영향 |
코드 리뷰를 위해 Skills와 함께 Claude Code와 같은 범용 에이전트를 사용해 본 적이 있다면 다음과 같은 문제점을 경험했을 것입니다:
근본 원인: 순수 언어 기반 아키텍처는 리뷰 프로세스에 대한 하드 제약 조건이 부족합니다.
Open Code Review의 핵심 철학은 결정론적 엔지니어링과 에이전트를 결합하여 각각이 가장 잘하는 부분을 처리하는 것입니다.
결정론적 엔지니어링 — 하드 제약 조건
절대 실패해서는 안 되는 리뷰 단계의 경우, 언어 모델이 아닌 엔지니어링 로직이 정확성을 보장합니다:
messageen.properties와 messagezh.properties가 함께 번들링됨). 각 번들은 격리된 컨텍스트를 가진 하위 에이전트로 실행됩니다. 이는 분할 정복 전략으로, 매우 큰 변경 사항에서도 안정적으로 유지되며 자연스럽게 동시 리뷰를 지원합니다.에이전트 — 동적 의사 결정
에이전트의 강점은 동적 의사 결정과 동적 컨텍스트 검색이 가장 중요한 부분에 집중됩니다:
NPM을 통해 (권장)
npm install -g @alibaba-group/open-code-review
설치 후 ocr 명령어를 전역에서 사용할 수 있습니다.
GitHub Release에서 설치
한 줄 명령어로 OS/아키텍처에 맞는 최신 바이너리를 설치합니다 (macOS / Linux):
curl -fsSL https://raw.githubusercontent.com/alibaba/open-code-review/main/install.sh | sh
스크립트는 올바른 릴리스 바이너리를 선택하고, SHA-256 체크섬을 확인한 후 /usr/local/bin에 ocr로 설치합니다. OCRINSTALLDIR로 대상을 재정의하거나 OCR_VERSION으로 릴리스를 고정할 수 있습니다:
OCR_INSTALL_DIR="$HOME/.local/bin" OCR_VERSION=v1.3.13 \
sh -c "$(curl -fsSL https://raw.githubusercontent.com/alibaba/open-code-review/main/install.sh)"
<details> <summary>수동 다운로드 (Windows 포함 모든 플랫폼)</summary>
GitHub Releases에서 플랫폼에 맞는 바이너리를 다운로드하세요:
# macOS (Apple Silicon)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-darwin-arm64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
# macOS (Intel)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-darwin-amd64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
# Linux (x86_64)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-linux-amd64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
# Linux (ARM64)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-linux-arm64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
# Windows (x86_64) — ocr.exe를 PATH에 있는 디렉토리로 이동
curl -Lo ocr.exe https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-windows-amd64.exe
# Windows (ARM64) — ocr.exe를 PATH에 있는 디렉토리로 이동
curl -Lo ocr.exe https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-windows-arm64.exe
</details>
소스에서 빌드
git clone https://github.com/alibaba/open-code-review.git
cd open-code-review
make build
sudo cp dist/opencodereview /usr/local/bin/ocr
1. LLM 구성
코드 리뷰 전에 LLM을 반드시 구성해야 합니다.
OCR은 통합 Provider 시스템을 통해 LLM 구성을 관리합니다. 많은 인기 있는 내장 프로바이더를 제공하며, 비공개 배포나 기타 호환 엔드포인트에 연결하기 위해 사용자 정의 프로바이더를 추가하는 것도 지원합니다. 구성은 ~/.opencodereview/config.json에 저장됩니다.
옵션 A: 대화형 설정 (권장)
ocr config provider # 내장 프로바이더 선택 또는 사용자 정의 프로바이더 추가
ocr config model # 활성 프로바이더의 모델 선택
대화형 UI는 프로바이더 선택, API 키 입력, 모델 구성을 안내한 후 자동으로 연결을 테스트합니다.
ocr llm providers를 실행하여 모든 내장 프로바이더를 확인하세요. 내장 프로바이더는 사전 설정된 API URL과 프로토콜을 제공하므로 API 키만 제공하면 시작할 수 있습니다. 해당 환경 변수(예: ANTHROPICAPIKEY, OPENAIAPIKEY)가 이미 설정된 경우 API 키가 자동으로 감지됩니다.
사용자 정의 프로바이더는 대화형 UI를 통해 추가할 수 있으며, 이름, API URL, 프로토콜 유형(anthropic 또는 openai), API 키를 제공해야 합니다.
옵션 B: CLI 설정 (CI/CD 및 비대화형 환경용)
ocr config set을 사용하여 프로바이더 구성을 직접 작성할 수 있으며, 스크립트 및 자동화에 적합합니다.
내장 프로바이더 사용:
ocr config set provider anthropic
ocr config set providers.anthropic.api_key your-api-key-here
ocr config set providers.anthropic.model claude-sonnet-4-6
사용자 정의 프로바이더 사용 (비공개 게이트웨이 또는 기타 호환 엔드포인트):
ocr config set provider my-gateway
ocr config set custom_providers.my-gateway.url https://my-llm-gateway.internal/v1
ocr config set custom_providers.my-gateway.protocol openai
ocr config set custom_providers.my-gateway.api_key your-api-key-here
ocr config set custom_providers.my-gateway.model gpt-4o
url과protocol은 사용자 정의 프로바이더에 필수입니다. 지원되는 프로토콜:anthropic,openai.
선택적 설정:
| 키 | 설명 | ||
|---|---|---|---|
providers.<name>.auth_header |
인증 헤더: x-api-key 또는 authorization (기본값: authorization) |
||
providers.<name>.extra_body |
요청 본문에 병합되는 사용자 정의 JSON 필드 | ||
providers.<name>.extra_headers |
요청에 추가되는 사용자 정의 HTTP 헤더 | ||
providers.<name>.max_tokens |
모델 응답의 최대 토큰 수 (기본값: 8192) | ||
providers.<name>.temperature |
모델 온도 (기본값: 0) |
2. 리뷰 실행
# 현재 브랜치의 변경 사항 리뷰 (기본 브랜치와 비교)
ocr review
# 특정 브랜치와 비교
ocr review --base main
# 특정 커밋 범위 리뷰
ocr review --commit-range HEAD~3..HEAD
# 전체 파일 스캔 (diff 없음)
ocr scan./src
3. 출력 이해
OCR은 표준 출력에 구조화된 리뷰 결과를 생성합니다. 각 이슈에는 다음이 포함됩니다:
critical, warning, suggestioncorrectness, security, performance, style, best-practice출력 예시:
{
"file": "src/main/java/com/example/UserService.java",
"line": 42,
"severity": "critical",
"category": "security",
"description": "Potential SQL injection vulnerability: user input is directly concatenated into SQL query.",
"suggestion": "Use parameterized queries or prepared statements instead of string concatenation."
}
4. CI/CD 통합
OCR은 CI/CD 파이프라인에 쉽게 통합될 수 있습니다. 다음은 GitHub Actions 예시입니다:
name: Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install OCR
run: |
curl -fsSL https://raw.githubusercontent.com/alibaba/open-code-review/main/install.sh | sh
- name: Run Code Review
run: |
ocr review --base ${{ github.event.pull_request.base.ref }} \
--format github-annotation \
--output annotations.json
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- name: Post Annotations
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const annotations = JSON.parse(fs.readFileSync('annotations.json', 'utf8'));
// GitHub Check Run API를 사용하여 어노테이션 게시
Open Code Review는 다음과 같은 주요 구성 요소로 구성됩니다:
OCR은 일반적인 코드 결함을 탐지하기 위해 미세 조정된 내장 규칙 세트와 함께 제공됩니다:
Apache-2.0