AI 기반 코드 리뷰 CLI 도구: Cora
요약
Cora는 AI 기반 코드 리뷰 및 인텔리전스를 위한 빠르고 네이티브한 CLI 도구입니다. 터미널, CI/CD 환경 등에서 사용 가능하며, 로컬에서 모든 과정이 이루어져 보안성이 높습니다. 다중 LLM 지원과 결정론적 스캐너를 통해 높은 신뢰도의 코드 품질 검사를 제공합니다.
핵심 포인트
- 다양한 LLM(OpenAI, Anthropic 등)을 지원하는 CLI 도구입니다.
- 로컬에서 작동하여 클라우드 연결 없이 보안성이 높습니다.
- 결정론적 스캐너와 의미론적 검색 기능을 결합했습니다.
- CI/CD 및 pre-commit hooks에 통합할 수 있습니다.
AI 기반 코드 리뷰 CLI — BYOK
Cora는 AI 기반 코드 리뷰 및 코드 인텔리전스를 위한 빠르고 네이티브한 CLI 도구입니다. 터미널, CI/CD, git hooks 또는 AI 코딩 에이전어 내부에서 사용할 수 있습니다. 사용자가 직접 키(BYOK)를 가져오고 원하는 모델을 선택하며, 코드베이스를 색인화하고 의미론적으로 검색할 수 있습니다. 모든 과정은 로컬에서 이루어지며 클라우드 연결이 필요 없습니다.
Cora가 좋은 이유?
-
🤖 다중 LLM (Multi-LLM) — OpenAI, Anthropic, Groq, Ollama, Z.AI 또는 모든 OpenAI 호환 API 지원
-
⚡ 네이티브 Rust — 빠르고 별도의 런타임 의존성이 없으며 크로스 플랫폼 지원
-
🪝 Pre-commit hooks — 이슈가 CI에 도달하기 전에 포착
-
📋 SARIF 출력 — GitHub Code Scanning에 업로드 가능
-
🛡️ 결정론적 스캐너 (Deterministic scanners) — LLM 없이 실행되는 12가지 내장 규칙 + 13가지 보안 패턴 + 15가지 비밀 탐지 패턴 제공
-
🧠 언어별 분석 (Language-specific analysis) — Dart/Flutter, Svelte, TypeScript, Go, Rust, Python에 맞춘 리뷰 가이드 제공
-
🚧 품질 게이트 (Quality gate) — CI 적용을 위한 설정 가능한 통과/실패 임계값
-
📐 품질 프로필 (Quality profiles) — 다양한 프로젝트 요구사항에 맞는 엄격(strict), 균형(balanced), 또는 느슨(lax) 사전 설정 제공
-
📏 사용자 지정 규칙 엔진 (Custom rule engine) —
.cora.yaml파일에서 자체 정규 표현식(regex) 규칙 작성 가능 -
✂️ 자동 청크 분할 (Auto-chunking) — 대규모 PR을 자동으로 리뷰 가능한 청크로 분할
-
🔍 코드 인텔리전스 (Code Intelligence) — 15개 언어에 걸쳐 심볼, 호출 그래프(call graph), 추적(trace), 영향 분석(impact analysis) 색인화
-
🧠 브레인 모드 (Brain Mode) — RRF 퓨전을 사용한 하이브리드 의미론적 검색 (FTS5 + 벡터 KNN + 그래프)
-
🗄️ 다중 프로젝트 데이터베이스 (Multi-project database) — 단일 전역 색인을 통해 모든 저장소(repo)에서 동시에 검색 가능
-
🌳 Tree-sitter (선택적 사용) — Rust, Go, Python, TypeScript/TSX, Java, C, C++, C#, Ruby, PHP, Scala, JavaScript, Svelte 등 13개 언어에 대한 AST 기반 심볼 추출 기능
-
🔌 MCP server — AI 코딩 에이전트를 위한 22가지 도구 제공 (리뷰, 검색, 브레인, 부채(debt), 추적(trace), 데드 코드, 그래프 쿼리, 에이전트-로서의 리뷰어 등)
-
💾 Diff-hash 캐싱 — 반복적인 리뷰를 자동으로 건너뜀
-
🔧 설정 가능 (Configurable) — 프로젝트별
.cora.yaml, 전역~/.cora/config.yaml또는 환경 변수 사용
빠른 시작 (Quick Start)
설치 (Install)
하나의 설치 방법을 선택하세요. 여러 채널을 혼합하여 사용할 경우 PATH에 오래된 바이너리가 남을 수 있습니다.
| 방법 | 사용 시점 |
|---|---|
curl … install.sh (권장) | 빠르고 독립적인 설치; 최신 GitHub 릴리스 바이너리를 가져옵니다. |
| ... |
# 빠른 설치 프로그램으로 설치
curl -fsSL https://raw.githubusercontent.com/codecoradev/cora-code/main/install-bundle.sh | sh
...
버전을 고정하려면:
CORA_VERSION=v0.6.1 curl -fsSL ... | sh
업그레이드: cora upgrade를 실행합니다 (최신 릴리스를 다운로드하고, SHA-256 체크섬 및 cosign이 설치된 경우 Sigstore 서명을 검증한 후 바이너리를 교체). 또는 단순히 사용 가능한지 확인하려면 cora upgrade --check를 사용하세요. 만약 cargo install --path .로 설치했다면, 대신 해당 명령을 다시 실행하세요.
실행 중인 cora 확인하기 — which -a cora는 다른 채널의 오래된 복사본을 보여줄 수 있습니다:
which -a cora # PATH에 있는 모든 `cora` 목록 (엔트리 하나 = 정상)
cora --version # 최신 릴리스와 일치해야 합니다.
만약 which -a cora가 여러 경로(예: ~/.local/bin/cora 및 ~/.cargo/bin/cora)를 보여준다면, 원하지 않는 것을 제거하거나 PATH 순서를 조정하세요. 배경 정보는 Issue #314를 참조하세요.
사전 구축된 aarch64-apple-darwin 바이너리는 Apple의 공증(notarized)을 거치지 않았습니다. macOS에서 다운로드한 바이너리는 com.apple.quarantine / com.apple.provenance 태그가 붙어 있을 수 있으며, 이 경우 오류 메시지 없이 Gatekeeper에 의해 차단됩니다.
install.sh 설치 스크립트는 이러한 속성들을 자동으로 제거합니다. 만약 바이너리를 수동으로 다운로드했다면(예: gh release download), 직접 다음 명령어를 사용하여 속성을 제거하세요:
xattr -dr com.apple.quarantine /path/to/cora
xattr -dr com.apple.provenance /path/to/cora
또는 cargo나 Homebrew를 통해 설치하여 Gatekeeper를 완전히 우회할 수 있습니다.
인증 (Authenticate)
cora auth login
제공자(provider)를 선택하고 API 키를 입력하면 끝입니다. 제공자 환경 변수(ZAI_API_KEY, OPENAI_API_KEY 등)는 자동으로 감지됩니다.
키가 없어도 유용합니다.
cora review와cora scan은 LLM을 설정하지 않아도 결정론적 검사(규칙, 비밀 정보, 보안)를 실행하며, 사용자의 AI 코딩 에이전트가 자체적으로 AI 리뷰를 수행할 수 있습니다. 자세한 내용은 에이전트를 이용한 리뷰을 참고하세요.
리뷰 (Review)
cora review # 스테이지된 변경 사항
cora review --base main # 특정 브랜치 대비 비교
cora review --unpushed # 푸시되지 않은 커밋들
...
프로젝트 설정 (Project Config)
cora init # .cora.yaml 파일을 생성하고 pre-commit 훅을 설치합니다.
구성 (Configuration)
우선순위: CLI 플래그 → 환경 변수(env vars) → .cora.yaml (프로젝트) → ~/.cora/config.yaml (전역) → 기본값
# .cora.yaml
provider: zai
model: glm-5.1
...
cora config show # 효과적으로 병합된 구성 표시
cora config show --global # ~/.cora/config.yaml 표시
cora config show --project # .cora.yaml 표시
| 파일 | 목적 |
|---|---|
~/.cora/auth.toml | API 키 (비밀 정보, chmod 600) |
| ... | |
| 보고서 전체 내용은 **구성(Configuration) →**을 참조하세요. |
CI/CD
# .github/workflows/cora-review.yml
on: pull_request
jobs:
...
필수 시크릿: CORA_API_KEY, CORA_BASE_URL (선택), CORA_MODEL (선택)
전체 문서는 GitHub Marketplace를 참조하세요.
모든 CI 플랫폼에서 작동합니다 — Gitea, GitLab, Bitbucket →
명령어 (Commands)
코드 리뷰 (Code Review)
| 명령어 | 설명 |
|---|---|
cora review | 코드 변경 사항(diff, branch, commit, file) 검토 |
| ... |
코드 인텔리전스 (Code Intelligence)
| 명령어 | 설명 |
|---|---|
cora index | 프로젝트 심볼, 벡터 및 호출 그래프 인덱싱 |
| ... |
설정 및 초기화 (Config & Setup)
| 명령어 | 설명 |
|---|---|
cora init | 프로젝트 설정 + 훅 생성 |
| ... | |
| 모든 플래그와 예제는 **CLI 참조 →**를 참고하세요. |
성능 (Performance)
cora-code 저장소(1,864 심볼, 115 Rust 파일, x86_64, 단일 스레드 기준 → Rayon 병렬)에서 벤치마킹되었습니다.
| 작업 | 시간 | 참고 사항 |
|---|---|---|
| 콜드 인덱스 (전체 재구축) | ~936ms | 워크 + 파싱 + 임베딩 + HNSW 삽입 (Rayon 병렬) |
| ... |
측정값은 참고용이며 계약적이지 않습니다. 사용자의 수치는 코드베이스 크기, CPU 코어 및 디스크 I/O에 따라 달라질 것입니다.
환경 변수 (Environment Variables)
| 변수 | 설명 |
|---|---|
CORA_API_KEY | API 키 (CI 사용) |
| ... | |
Provider별 키는 자동으로 감지됩니다: OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, ZAI_API_KEY |
문서 (Documentation)
| 페이지 | 설명 |
|---|---|
| Getting Started | 설치, 인증, 첫 검토 |
| ... |
스타 기록 (Star History)
<a href="https://www.star-history.com/?repos=codecoradev%2Fcora-code%2Ccodecoradev/uteke&type=date&legend=top-left"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=codecoradev/cora-code%2Ccodecoradev/uteke&type=date&theme=dark&legend=top-left" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=codecoradev/cora-code%2Ccodecoradev/uteke&type=date&legend=top-left" /> <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=codecoradev/cora-code%2Ccodecoradev/uteke&type=date&legend=top-left" /> </picture> </a>기여하기 (Contributing)
가이드라인은 **CONTRIBUTING.md**를 참조하세요. Pull Request(PR)는 환영합니다!
라이선스 (License)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기