소개
lgtmaybe는 MattJColes가 개발한 MIT 라이선스의 CLI 기반 코드 리뷰 도구입니다. 호스팅 모델, 로컬 ollama, 그리고 OpenAI 호환 엔드포인트까지 공급사에 구애받지 않고 사용할 수 있으며, GitHub, GitLab, Gitea의 풀 리퀘스트/머지 리퀘스트를 자동으로 검토합니다. 변경된 라인과 주변 일부 컨텍스트만 읽어 정확성, 보안, 코드 품질, 의도 일치 여부 등을 점검하고 인라인 코멘트와 요약을 남기는 것이 핵심 목적입니다.
상세정보
정확성과 보안 점검
OWASP 기반 체크리스트를 활용해 로직 오류, 엣지 케이스, 널 역참조, 인젝션, XSS, CSRF, 오픈 리다이렉트, 하드코딩된 비밀, 인증·인가 결함, 경로 탐색, SSRF, 안전하지 않은 역직렬화, ReDoS 등 보안 취약점을 우선순위가 높은 finding으로 다룹니다.
코드 건강과 성능 분석
N+1 쿼리, 불필요하게 quadratic한 작업, 핫 패스의 블로킹 I/O, 캐시 미회수 같은 성능 회귀와 깊은 중첩·높은 순환 복잡도·중복 로직 같은 불필요한 복잡성을 점검합니다. Ponytail 렌즈는 YAGNI 원칙과 표준 라이브러리 활용 관점에서 정말 필요한 코드인지 평가합니다.
테스트·문서·의도 검증
변경된 코드 경로에 누락되거나 약한 테스트가 있는지, 공개 API 문서가 갱신되지 않았는지, 그리고 PR의 제목·설명·커밋 메시지와 실제 diff의 의정이 일치하는지를 함께 검토합니다. deprecate된 API, 지원 종료된 의존성, 오타스쿼팅 의심 항목 등 사실상 오래된 코드도 발견합니다.
증분 리뷰와 정적 분석 융합
synchronize 푸시 시 새 커밋만 다시 보는 증분 리뷰, 명백히 검토가치가 낮은 파일을 거르는 triage 모델, ruff·bandit·mypy·semgrep의 결정론적 결과를 모델에 힌트로 전달하는 static_analysis 옵션이 제공됩니다. gitleaks, zizmor, ast-grep, osv-scanner는 모델 호출 없이 결과를 직접 게시합니다.
변경 개요 다이어그램
/diagram 슬래시 커맨드 또는 lgtmaybe diagram CLI는 PR이 건드리는 컴포넌트의 Mermaid 플로차트와 런타임 시퀀스 다이어그램, High Impact Areas 섹션을 포함한 변경 개요 코멘트를 작성해 동일한 정보를 로컬 터미널에서도 출력합니다.
설치 및 기본 사용
Windows에서는 winget으로 설치할 수 있고, 다른 플랫폼에서는 pip 또는 Homebrew로 설치합니다. 설치 직후 로컬에서 비용 없이 사용하려면 git 저장소 안에서 ollama를 공급사로 지정해 lgtmaybe review를 실행하면 됩니다.
- winget을 사용하는 경우 winget install –id MattJColes.lgtmaybe –exact 명령으로 설치합니다.
- Python 환경에서는 pip install lgtmaybe로 설치합니다.
- 로컬 무료 리뷰를 원할 때 ollama가 가동 중인 상태에서 lgtmaybe review –provider ollama –model qwen3.6:27b –api-base http://localhost:11434을 실행합니다.
- 실제 PR에 코멘트를 게시하려면 GitHub Actions의 MattJColes/lgtmaybe@v2, GitLab CI의 lgtmaybe gitlab-ci, Gitea Actions의 동등한 컨테이너를 워크플로우에 등록합니다.
/review와 /improve는 리뷰를 게시하거나 갱신하고, /ask <질문>은 변경 사항에 대한 답을 스레드에 남기며, /describe는 구조화된 PR 설명을 별도 코멘트로 게시합니다. CLI에서는 –json, –format agent 같은 출력 형식과 –profile 옵션으로 토큰·시간 사용 내역을 확인할 수 있습니다.
활용 예시
오픈 소스 메인테이너가 PR이 올라올 때마다 즉시 1차 검토를 받고 Critical 이슈만 골라 확인하거나, 로컬에서 커밋 전 lgtmaybe review로 모델 호출을 통해 빠르게 점검한 뒤 PR을 여는 워크플로우를 구성할 수 있습니다. 팀은 .lgtmaybe.yml의 min_severity, include_paths, exclude_paths로 리뷰 범위를 조정해 빌드 파이프라인 단계에서 핵심 모듈만 안전하게 검증하고, GitHub Actions에서 id-token: write 권한만 부여해 Bedrock·Vertex·Azure를 키 없이 운용해 토큰 누설 위험을 줄일 수 있습니다.
제한 및 확인 사항
변경 파일 수, 입력 토큰, 동시성, 카테고리 등 모든 리뷰 실행은 preset, max_files, max_input_tokens, max_concurrency, recursive, categories, min_severity 옵션으로 상한이 정해져 있어 대용량 PR이 지연을 폭증시키지 않도록 설계되어 있습니다. GitLab·Gitea는 자동 해결, 증분 리뷰, 키리스 클라우드 인증 기능이 GitHub와 차이가 있으며, 모든 호스트는 diff를 체크아웃하거나 실행하지 않고 비밀 정보를 마스킹한 뒤 모델로 보내므로 데이터와 프롬프트 인젝션에 대해 일정 수준의 방어를 갖춥니다. 라이선스는 저장소 루트의 LICENSE에서 확인할 수 있는 MIT입니다.
시스템 요구사항
Windows 11 이상의 x64 환경에서 동작하며 Python 3.11 이상 런타임이 필요합니다. CLI 설치는 pip 또는 Homebrew, Windows에서는 winget을 통해 이루어지고, GitHub Actions·GitLab CI·Gitea Actions 같은 CI 환경에서는 각 호스트의 토큰(GITHUB_TOKEN, GITLAB_TOKEN, GITEA_TOKEN)이 요구됩니다. 호스팅 모델을 사용할 때는 각 공급사의 API 키(OPENAI_API_KEY, ANTHROPIC_API_KEY 등)가 필요하지만, Bedrock·Vertex·Azure는 GitHub OIDC로 키 없이 동작하며 ollama는 API 키 없이 로컬에서 실행할 수 있습니다.


