안녕하세요.
많은 분들이 LLM을 코드 리뷰에 활용해 보셨겠지만, 실제 적용에는 번거로운 점들이 있었을 것이라 생각합니다.
리뷰 대상 코드와 맥락을 전달하고, 원하는 결과 형식까지 상세히 지정하여 LLM에 전달하는 과정이 필요하기 때문입니다.

'selvage'는 이러한 준비 과정을 자동화하여 코드 리뷰의 효율을 높이는 CLI 도구입니다.

[주요 기능]

  • CLI 도구로 특정 IDE, 확장 기능과 독립적으로 사용 가능
  • 주요 SOTA 모델(GPT-5, Claude-Sonnet-4, Gemini, Qwen3-code) 지원
  • OpenRouter API Key로 구독없이 사용량 기반으로 사용 가능
  • Git 워크플로우와 통합
    • staged 작업 내역, unstaged 작업 내역, 특정 커밋/브랜치 간 변경사항 분석 지원
  • AST(추상 구문 트리) 기반의 Smart Context 추출 기능
    • 변경과 관련된 최소한의 코드 블록과 의존성만 추출
    • 꼭 필요한 맥락만 전달하여 토큰 사용량을 절감하고, 동시에 리뷰의 품질은 극대화
  • Large Context Review 기능
    • 모델의 Context Limit을 초과하는 대규모 변경 사항(주로 특정 Feature를 배포하기 위한 PR)도 안정적으로 리뷰 가능

안녕하세요.
이번에 주요 업데이트를 하게 되어서 소식을 공유드립니다.
많은 관심 부탁드립니다!

GitHub 링크: https://github.com/selvage-lab/selvage


🚀 주요 기능 업데이트 내역

🤖 MCP (Model Context Protocol) 서버 모드 추가NEW

Cursor, Claude Code 등에서 채팅창에서 코드 리뷰 요청하기!

이제 Selvage를 Cursor, Claude Code 등에 MCP로 등록하여 자연어로 코드 리뷰를 요청할 수 있습니다.
리뷰 결과를 AI 어시스턴트가 직접 전달해주며, 피드백 검토 후 코드 개선까지 한 번에 요청 가능합니다.

설정 방법:

# Claude Code 연동  
# 방법 1: 환경변수 사용 (이미 설정한 경우)  
claude mcp add selvage -- uvx selvage mcp  
  
# 방법 2: 직접 지정  
claude mcp add selvage -e OPENROUTER_API_KEY=your_openrouter_api_key_here -- uvx selvage mcp  
# Cursor 연동 (~/.cursor/mcp.json)  
{  
  "mcpServers": {  
    "selvage": {  
      "command": "uvx",  
      "args": ["selvage", "mcp"],  
      "env": {"OPENROUTER_API_KEY": "your_key"} // Optional : 시스템 환경 변수 등록한 경우 불필요  
    }  
  }  
}  

💡 사용 시나리오

간단한 사용 예시

"selvage mcp로 현재 변경사항 리뷰해줘"  
"selvage mcp로 메인 브랜치와 현재 브랜치를 claude-sonnet-4-thinking으로 비교 리뷰해줘"  
"selvage mcp로 스테이징된 작업을 gpt-5-high로 리뷰하고 우선순위별로 정리해줘"  
"selvage mcp로 스테이징된 작업 내용을 gpt-5-high, claude-sonnet-4-thinking으로 각각 리뷰하고 결과를 비교해줘"  

단계별 코드 개선 워크플로우

1. selvage mcp로 현재 변경사항을 claude-sonnet-4-thinking으로 리뷰해줘  
2. 리뷰 피드백이 현재 코드베이스에 관해 유효한지 비판적으로 검토 후 우선순위를 알려줘  
3. 검토한 내역을 우선순위에 따라 순차적으로 반영해줘  

안녕하세요, 사용해보고 싶은데 혹시 무조건 Openrounter를 사용해야하나요? 현재 사용하고 있는 API키가 있어서 해당 API키를 활용하여 사용 할 수 있는지 궁금합니다.

안녕하세요.
혹시 어떤 API 키를 사용 중이신가요?
OpenRouter KEY 대신 각 모델의 Provider API Key를 환경 변수로 설정해서 사용할 수 있습니다.

export OPENAI_API_KEY="your_openai_api_key_here"  
export ANTHROPIC_API_KEY="your_anthropic_api_key_here"  
export GEMINI_API_KEY="your_gemini_api_key_here"  

OPENAI_API_KEY는 GPT 계열 모델
ANTHROPIC_API_KEY는 Claude 계열 모델
GEMINI_API_KEY는 Gemini 계열 모델
지원됩니다!

혹시 LLM 입력으로 들어가기 전에 소스 코드 레벨에서의 민감 정보 마스킹도 가능한가요?

안녕하세요. 답변드립니다.

  1. 현재 코드 리뷰 요청시 .env 류 파일은 아예 제외되지만, 소스 코드 안에 존재하는 API 키/토큰/비밀번호 등의 “값”을 치환하거나 블라인드 처리하는 단계는 없습니다.

  2. 민감 정보를 리뷰시 제외하고 싶으신 경우
    리뷰 받고자 하는 코드를 git staged 상태로 바꾸신 후
    'selvage review --staged' 명령어로 리뷰하시면 민감 정보를 LLM 입력에서 제외시킬 수 있습니다.

  3. 질문 주신 것과 유사한 기능을 업데이트 예정은 있습니다. 사용자가 직접 yml 파일로 리뷰시 제외할 파일 확장자, 코드내의 특정 패턴(정규표현식)을 넣어서 각 프로젝트마다 적절히 민감 정보가 필터링되도록 할 계획입니다.