codex-plugin-cc 설치 및 리뷰 - Claude Code에서 Codex로 리뷰 받기

Pasted image 20260517114440.png

이번 글은 OpenAI가 공식적으로 내놓은, Claude Code에서 쓸 수 있는 Codex 리뷰 플러그인을 다룬다. 사실 나온 지는 좀 됐는데, 정리할 겸 설치 과정과 리뷰 사용법을 함께 적어 보았다.


이 플러그인이 갖는 의의#

Claude Code로 작성한 코드를 Codex에게 리뷰받는 것은, 같은 Claude Code 안에서 세션을 새로 열거나 다른 에이전트에게 맡기는 것과는 의미가 다르다.

새 세션·서브 에이전트는 대화 컨텍스트를 비울 뿐, 모델의 가중치는 그대로다. 자기 선호 편향 연구12가 측정한 것은 모델이 자기 출력을 더 후하게 평가하는 경향이고, Wataoka et al.은 그 원인을 모델이 익숙하게 느끼는 패턴(낮은 perplexity)에 대한 선호로 설명한다. 익숙함의 기준이 가중치에서 온다면, 세션을 새로 띄우든 서브 에이전트로 격리하든 같은 가중치를 쓰는 두 인스턴스는 같은 직관과 같은 사각지대를 공유하리라 보는 게 자연스럽다. 다만 이 편향은 모델 단위로 측정된 것이고, 인스턴스 단위로 옮긴 것은 이 글의 추론이다.

Opus ↔ Sonnet 조합도 한계는 비슷하다. 같은 회사가 비슷한 데이터와 alignment 파이프라인으로 학습시킨 모델이라면, "코드에서 무엇을 위험하게 느끼는가"의 분포도 가깝다고 보는 게 자연스럽다. 모델 크기는 다르지만 리뷰 관점의 사각지대는 공유하기 쉽다. 정말 다른 시선이 필요하다면 아예 다른 회사의 모델을 쓰는 편이 낫다.

사실 Claude Code로 진행하던 프로젝트에서 직접 Codex를 켜고, 리뷰 컨텍스트를 제공하면서 리뷰해 달라고 요청할 수도 있다.

하지만 OpenAI가 내놓은 이 플러그인을 쓰면 그 과정을 Claude Code 안에서 요청 한 번으로 끝낼 수 있다는 큰 장점이 있다.

학술 근거 한눈에
  • 자기 선호 편향(self-preference bias) — NeurIPS 2024에 발표된 "LLM Evaluators Recognize and Favor Their Own Generations"1는, 모델이 자기 출력물을 알아보는 능력과 그것을 더 후하게 평가하는 경향 사이에 선형 상관관계가 존재함을 fine-tuning 실험으로 보였다. 같은 해 Wataoka et al.의 또 다른 연구2는 GPT-4가 측정 가능한 수준의 자기 선호 편향을 가지며, 그 본질이 모델이 익숙하게 느끼는 패턴(낮은 perplexity)에 대한 호감에 있음을 정량화했다. 즉, "자기가 짠 코드를 자기가 채점하면 점수가 부풀려진다"는 게 비유가 아니라 측정된 현상이다.
  • 말로 표현되지 않는 편향(unverbalized bias)"Biases in the Blind Spot: Detecting What LLMs Fail to Mention"3은 6개 LLM을 채용·대출·입학 심사 과제에서 평가해, 모델이 그럴듯한 추론 과정을 보여 주면서도 실제로는 짚지 않는 사각지대가 체계적으로 존재함을 보였다. 다루는 과제는 코드가 아니지만, 모델이 침묵으로 통과시킨 곳이 그 모델에게 "보이지 않는 곳"이라는 점은 코드 리뷰에도 그대로 적용된다.
  • LLM 평가자의 코드 오류 누락 — 한 LLM-as-Judge 연구4는 COBOL 코드 생성 평가에서 LLM 단독으로는 코드 오류의 45–63%만 감지하며, 분석적 힌트를 함께 주면 최대 74%까지 올라간다고 보고했다. 같은 모델을 두 번 굴려도 못 보던 게 새로 보이지는 않는다.
  • 여러 모델을 함께 쓰는 평가 — 서로 다른 모델 여러 개를 패널로 묶어 평가(PoLL)하면 단일 대형 모델로 평가할 때보다 intra-model bias가 줄고 사람 판단과의 일치도가 높아진다는 연구가 있다.5

설치#

사전 준비물
  • Node.js 18.18 이상
  • ChatGPT 구독(무료 등급 포함) 또는 OpenAI API 키

ChatGPT에 이미 로그인되어 있으면 별도 API 키 없이도 된다. 유료 구독뿐 아니라 무료 등급(Free tier)으로도 동작한다.

한 가지 기억할 점은, 이 플러그인을 통한 호출도 결국 Codex를 돌리는 것이라 사용량이 본인의 Codex usage limit에 그대로 합산된다는 것이다. 공짜로 한 번 더 돌리는 게 아니라, 평소 쓰던 Codex 한도를 나눠 쓰는 셈이다.

Claude Code 안에서 아래 명령어를 차례로 입력한다. 터미널이 아니라 Claude Code 프롬프트 창에 그대로 입력한다.

1. 마켓플레이스 등록#

/plugin marketplace add openai/codex-plugin-cc

OpenAI가 운영하는 공식 플러그인 마켓플레이스를 Claude Code에 알려 주는 단계다.

2. 플러그인 설치#

/plugin install codex@openai-codex

3. 플러그인 갱신#

/reload-plugins

4. 설정 확인#

/codex:setup

이 명령어는 Codex CLI가 깔려 있는지, 로그인은 되어 있는지 자동으로 확인해 준다. 안 깔려 있으면 어떻게 설치해야 하는지 친절하게 알려 준다.

5. (필요할 때만) Codex 직접 설치 & 로그인#

/codex:setup이 "Codex가 없다"고 하면 아래 두 줄을 실행한다.

npm install -g @openai/codex
!codex login
설치 완료

이제 Claude Code 어디서든 /codex:로 시작하는 명령어를 쓸 수 있다.


핵심 명령어 7개#

1. /codex:review — 코드 리뷰#

  • 지금까지 작업한 변경사항을 Codex가 처음부터 끝까지 읽고 리뷰한다. 읽기 전용이라 코드를 멋대로 바꾸지 않는다.

언제 사용해야 하나#

  • 아직 커밋하지 않은 현재 변경사항을 리뷰하고 싶을 때
  • 현재 브랜치를 main 같은 기준 브랜치와 비교해 리뷰하고 싶을 때

사용 예시#

/codex:review
/codex:review --base main
/codex:review --background
  • --base main을 붙이면 main 브랜치와 비교해서 무엇이 새로 추가됐는지를 본다.
  • --wait를 붙이면 규모 추정 과정을 건너뛰고 즉시 포그라운드에서 리뷰를 돌린다.
  • 아무 플래그도 없이 부르면, 플러그인이 먼저 git statusgit diff --shortstat로 변경 규모를 가늠한 뒤 포그라운드로 돌릴지 백그라운드로 돌릴지를 물어본다. 규모가 애매하면 백그라운드 쪽을 권한다.
Note

변경 규모가 클 때, 특히 여러 파일에 걸친 변경이라면 리뷰에 시간이 걸릴 수 있다. 공식 문서도 이런 경우 --background로 백그라운드 실행을 권장한다.

2. /codex:adversarial-review — 적대적 리뷰#

  • 같은 검토 대상에 대해 **"이 구현이 정말 옳은가? 어디서 깨질까?"**를 묻는 모드다. 단순 코드 디테일 점검이 아니라 설계 선택, 트레이드오프, 숨은 가정, 대안적 접근을 압박해서 검증한다. /codex:review와 동일하게 --base <ref>로 브랜치 비교가 되고, --wait·--background도 지원한다. 단, /codex:review와 달리 플래그 뒤에 포커스 텍스트를 자유롭게 덧붙일 수 있다. 이 명령도 읽기 전용이라 코드를 직접 수정하지 않는다.

언제 사용해야 하나#

  • 배포 전에, 코드 디테일만이 아니라 방향 자체를 의심하며 검토하고 싶을 때
  • 설계 선택·트레이드오프·숨은 가정·대안 접근에 초점을 맞추고 싶을 때
  • 인증, 데이터 손실, 롤백, 경쟁 상태, 신뢰성처럼 특정 위험 영역을 집중적으로 압박 검증하고 싶을 때

사용 예시#

/codex:adversarial-review
/codex:adversarial-review --base main challenge whether this was the right caching and retry design
/codex:adversarial-review --background look for race conditions and question the chosen approach
  • 뒤에 한국어든 영어든 자연어로 포커스를 적어 주면 Codex가 그 각도에서 집중적으로 뜯어본다.
  • 예: /codex:adversarial-review 동시 접속 1만 명일 때 깨질 만한 부분 찾아 줘
Note

이 명령어는 어디까지나 읽기 전용 검토다. 수정까지 시키고 싶다면 /codex:rescue를 쓴다.

3. /codex:rescue — Codex에게 일 통째로 맡기기#

  • 단순 리뷰가 아니라 수정까지 포함된 작업을 codex:codex-rescue 서브에이전트를 통해 Codex에 통째로 위임한다. Claude가 해결 못 한 문제, 또는 처음부터 Codex에게 맡기는 게 나은 작업을 넘길 때 쓴다. --background, --wait, --resume, --fresh를 지원하며, --resume이나 --fresh를 생략하면 플러그인이 해당 저장소의 최근 rescue 스레드를 이어갈지 물어본다.

언제 사용해야 하나#

  • 버그의 원인을 조사할 때
  • 수정을 시도해 볼 때
  • 이전 Codex 작업을 이어서 진행할 때
  • 더 작은 모델로 빠르거나 저렴하게 한 번 훑을 때

사용 예시#

/codex:rescue investigate why the tests started failing
/codex:rescue fix the failing test with the smallest safe patch
/codex:rescue --resume apply the top fix from the last run
/codex:rescue --model gpt-5.4-mini --effort medium investigate the flaky integration test
/codex:rescue --model spark fix the issue quickly
/codex:rescue --background investigate the regression
  • --model이나 --effort를 생략하면 Codex가 알아서 기본값을 고른다.
  • --model spark라고 쓰면 플러그인이 자동으로 gpt-5.3-codex-spark로 매핑한다.
  • 슬래시 명령어 대신 Ask Codex to redesign the database connection to be more resilient. 처럼 자연어로 부탁해도 위임된다.
  • 후속 rescue 요청은 자동으로 그 저장소의 최근 Codex 작업을 이어받을 수 있다.
Note

선택한 모델과 작업 규모에 따라 시간이 꽤 걸릴 수 있다. --background로 돌리거나 에이전트를 백그라운드로 보내는 걸 권장한다. Claude와 Codex가 같은 코드를 두고 의견이 갈릴 때 특히 유용하다.

4. /codex:status — 진행 상황 보기#

  • 현재 저장소에서 돌고 있거나 최근에 끝난 Codex 작업 목록을 보여 준다. --background로 띄워둔 작업의 진행 상황을 확인할 때 쓴다.

언제 사용해야 하나#

  • 백그라운드 작업의 진행 상황을 확인할 때
  • 가장 최근에 끝난 작업을 볼 때
  • 작업이 아직 돌고 있는지 확인할 때

사용 예시#

/codex:status
/codex:status task-abc123
  • 인자 없이 부르면 최근 작업들의 상태가 한꺼번에 나오고, task ID를 넘기면 그 작업의 상태만 콕 집어 보여 준다.

5. /codex:result — 끝난 작업의 결과 보기#

  • 끝난 Codex 작업의 최종 출력을 다시 불러온다. 가능한 경우 Codex 세션 ID도 같이 보여 주는데, 이걸로 codex resume <session-id>를 돌리면 그 작업을 Codex 안에서 그대로 이어 갈 수 있다.

사용 예시#

/codex:result
/codex:result task-abc123
  • 인자 없이 호출하면 가장 최근에 끝난 작업의 결과를, task ID를 넘기면 그 작업의 결과를 보여 준다.
Tip

받은 세션 ID로 codex resume을 돌리면 Claude Code에서 받은 리뷰/작업을 Codex 쪽으로 그대로 옮겨서 이어 작업할 수 있다. 리뷰 결과를 Codex에서 직접 수정으로 발전시키고 싶을 때 유용하다.

6. /codex:cancel — 작업 중단#

  • 활성 백그라운드 Codex 작업을 중단한다. 엉뚱한 방향으로 가고 있는 작업을 멈추거나, 더 이상 필요 없어진 백그라운드 작업을 정리할 때 쓴다.

사용 예시#

/codex:cancel
/codex:cancel task-abc123
  • 인자 없이 부르면 활성 백그라운드 작업을 취소하고, task ID를 넘기면 그 작업만 취소한다.

7. /codex:setup — 점검 / 옵션 토글#

  • Codex CLI가 설치되어 있는지, 로그인은 되어 있는지 점검한다. Codex가 깔려 있지 않고 npm이 가용한 환경이면, 플러그인이 직접 설치를 제안한다. 이외에도 리뷰 게이트(review gate) 옵션을 켜고 끄는 데 쓴다.

사용 예시#

/codex:setup
/codex:setup --enable-review-gate
/codex:setup --disable-review-gate
  • 인자 없이 부르면 현재 Codex 설치/로그인 상태를 점검한다.
  • --enable-review-gate를 켜면 플러그인이 Stop 훅을 사용해, Claude가 작업을 끝내려고 할 때마다 Claude의 응답을 기준으로 Codex 타겟 리뷰를 한 번 돌린다. 그 리뷰에서 문제가 발견되면 stop이 차단되어, Claude가 먼저 그 문제를 처리한 뒤에야 작업을 마무리할 수 있다.
Warning

리뷰 게이트는 Claude ↔ Codex 사이에 긴 루프를 만들 수 있고, 사용량(usage limits)을 빠르게 소진할 수 있다. 세션을 적극적으로 모니터링할 수 있을 때만 켜는 것을 권장한다.


워크플로 예시 — 30분짜리 코딩 세션을 가정해 보자#

아래는 플러그인 사용 흐름을 보여 주려고 구성한 가상 시나리오다. Codex가 찾았다고 적은 문제들도 예시이며, 실제 실행 결과가 아니다.

오전 10:00 — Claude Code에서 새 결제 모듈을 짠다. "Stripe 결제 흐름 추가해 줘, 환불 케이스도 고려해서."

오전 10:25 — Claude가 코드를 완성했다. 자기가 짠 결과물에 "테스트 통과, 잘 됩니다"라고 한다. 여기서 끝내면 안 된다.

오전 10:26 — Claude Code 프롬프트에 입력한다.

/codex:review --base main

오전 10:28 — 2분 뒤, Codex가 리포트를 뱉는다.

Codex가 찾아낸 문제 3개

🟡 결제 성공 후 DB 트랜잭션이 커밋되기 전에 Stripe webhook 응답을 보냄 🟡 환불 실패 시 멱등성 키(idempotency key) 재사용 처리가 없음 🔴 카드 만료 에러를 catch하지 않아서 5xx로 새어 나감

Claude가 자신 있게 "잘 됩니다"라고 한 코드에서, 다른 모델이 3개의 진짜 문제를 찾았다.

오전 10:30 — 곧바로 Claude에게 돌려보낸다.

Codex가 위 세 가지 지적했어. 다 반영해 줘.

Claude가 수정한다. 한 번 더 /codex:review. 통과.

이게 끝이다. 명령어 두 줄로 결제 모듈의 치명적 버그 3개를 방어한 것이다.


이 조합이 효과를 내는 이유 — 세 가지#

1. 모델 가족이 다르다#

Claude와 GPT는 학습 데이터·아키텍처·사후 학습 방식이 다르다. 앞 절에서 본 자기 선호 편향이 "같은 가중치는 같은 사각지대를 공유한다"는 쪽이라면, 가중치가 다른 모델은 서로의 사각지대를 메워 줄 여지가 있다.

이 차이는 단순한 인상에 그치지 않는다. 한 비교 연구6는 GPT-3.5·Claude 3 Haiku·Claude Haiku 4.5·GPT-OSS가 생성한 Python 함수 14,485개와 클래스 11,913개를 22개 소프트웨어 메트릭으로 분석해, 모델에 따라 코드의 복잡도·구조가 측정 가능한 수준으로 갈린다는 점을 보였다. 이 연구가 코드 리뷰의 사각지대까지 직접 측정한 것은 아니지만, 코드를 짜는 방식이 다르면 검토할 때 무심코 지나치는 지점도 달라질 수 있다.

2. 벤치마크상 코딩 성능#

OpenAI는 2026년 4월 GPT-5.5를 공개하며 Terminal-Bench 2.0, FrontierMath, SWE-Bench Pro 등 여러 벤치마크에서 Claude Opus 4.7보다 높은 점수를 제시했다.7 벤치마크 점수가 실제 리뷰 품질을 그대로 보장하지는 않지만, 리뷰어로 다른 모델을 한 번 더 거치는 선택의 근거는 된다.

Pasted image 20260519162228.png

3. 같은 환경에서 돌아간다#

이 플러그인은 사용자의 로컬 Codex CLI를 그대로 호출한다. 즉,

  • 같은 저장소를 본다.
  • 같은 인증 상태를 쓴다.
  • ~/.codex/config.toml이나 프로젝트의 .codex/config.toml 설정을 그대로 따른다.

별도 환경을 만들거나, 코드를 어디 업로드하거나, API 키를 새로 발급할 필요가 없다. "내 컴퓨터에서, 내 코드 그대로, 다른 AI한테 보여 준다" 가 전부다.


더 강력하게 쓰는 팁#

팁 1 · 리뷰 게이트를 켜 두자
/codex:setup --enable-review-gate

이걸 켜 두면, Claude Code가 작업을 "끝내려고" 할 때마다 자동으로 Codex 리뷰가 한 번 끼어든다. 사람이 까먹어도 시스템이 챙겨 준다.

팁 2 · 적대적 리뷰는 한국어로 포커스를 주자
/codex:adversarial-review 이 API가 로그인 안 한 사용자한테도 노출되면 어떻게 깨질지 찾아 줘

자연어로 직접 공격 포인트를 지정하면, Codex가 그 각도에서 집중적으로 코드를 뜯어본다.

팁 3 · 큰 변경은 백그라운드로 돌리자
/codex:review --background

그동안 다른 작업을 하다가, 나중에 /codex:status로 진행도를 확인하고 /codex:result로 결과를 받아온다. 1분 기다리는 동안 멍 때리지 않아도 된다.

팁 4 · 모델 선택을 직접 한다
/codex:rescue --model gpt-5.4-mini --effort medium 이 테스트 왜 깜빡이는지 알아내 줘

빠른 점검이 필요할 땐 mini 모델로, 깊게 봐야 할 땐 풀 모델로 — 비용과 시간을 직접 조절할 수 있다.


설정 커스터마이징#

이 플러그인은 매번 새 환경을 만들지 않고, 로컬에 이미 깔린 Codex의 설정 파일을 그대로 따라간다. 덕분에 자주 쓰는 모델이나 추론 강도를 매 명령마다 플래그로 지정하는 대신, 설정 파일에 기본값으로 박아 둘 수 있다.

설정은 두 곳에서 읽어 온다.

  • 사용자 단위~/.codex/config.toml. 모든 프로젝트에 공통으로 적용된다.
  • 프로젝트 단위 — 해당 저장소의 .codex/config.toml. 그 프로젝트에서만 적용되며, 신뢰된(trusted) 프로젝트로 등록되어 있어야 읽힌다.

예를 들어 기본 모델과 추론 강도를 아래처럼 지정해 둘 수 있다.

# model, model_reasoning_effort 값은 https://developers.openai.com/codex/config-reference 참고

model = "gpt-5.5"
model_reasoning_effort = "xhigh"

이렇게 해 두면 /codex:rescue/codex:review를 부를 때 --model·--effort를 생략해도 이 값이 기본값으로 쓰이고, 명령어에 플래그를 직접 붙이면 그 호출에 한해서만 설정값을 덮어쓴다.


자주 묻는 질문#

이 플러그인을 쓰려면 Codex 계정을 따로 만들어야 하나?

아니다. 이 머신에서 이미 Codex에 로그인되어 있다면 그 계정이 여기서도 곧바로 동작한다. 처음 쓰는 경우에만 ChatGPT 계정이나 API 키로 한 번 로그인하면 된다.

기존에 쓰던 Codex 설정을 그대로 쓰나?

그렇다. 이미 Codex를 쓰고 있었다면 플러그인이 그 설정을 그대로 물려받는다. 모델, 추론 강도, 인증 방식까지 따로 맞출 필요가 없다.


참고 자료#

플러그인 / 도구

  • 플러그인 저장소: openai/codex-plugin-cc
  • Codex CLI: @openai/codex (npm)
  • 요구 사항: Node.js 18.18+, ChatGPT 구독 또는 OpenAI API 키

모델 편향과 단일 모델 검수의 한계 — 학술 근거

Footnotes

  1. Panickssery, A. et al. "LLM Evaluators Recognize and Favor Their Own Generations." NeurIPS 2024. — LLM이 자기 출력을 알아보는 능력과 자기 선호도 사이의 선형 상관관계를 실험적으로 입증. arXiv:2404.13076 2

  2. Wataoka, K. et al. "Self-Preference Bias in LLM-as-a-Judge." 2024. — GPT-4의 자기 선호 편향을 정량화하고, 그 본질이 낮은 perplexity(=익숙한 패턴) 선호에 있음을 보임. arXiv:2410.21819 2

  3. Arcuschin, I. et al. "Biases in the Blind Spot: Detecting What LLMs Fail to Mention." 2026. — 6개 LLM을 채용·대출·입학 심사 과제에서 평가해, chain-of-thought에 드러나지 않는 편향(unverbalized bias)을 자동 검출. arXiv:2602.10117

  4. "Beyond Blind Spots: Analytic Hints for Mitigating LLM-Based Evaluation Pitfalls." — COBOL 레거시 코드 생성 평가에서 LLM-as-Judge가 코드 오류의 약 45–63%만 감지하며, 분석적 힌트를 프롬프트에 주입하면 최대 74%까지 향상됨을 보고. arXiv:2512.16272

  5. Verga, P. et al. "Replacing Judges with Juries: Evaluating LLM Generations with a Panel of Diverse Models." 2024. — 서로 다른 모델 여러 개를 패널(PoLL)로 묶어 평가하면 단일 대형 모델 평가보다 intra-model bias가 줄고 사람 판단과의 상관이 높아짐을 보임. arXiv:2404.18796

  6. Rahman, M. et al. "Automatic Detection of LLM-Generated Code: A Comparative Case Study of Contemporary Models Across Function and Class Granularities." — GPT-3.5·Claude 3 Haiku·Claude Haiku 4.5·GPT-OSS가 생성한 Python 함수 14,485개와 클래스 11,913개를 22개 소프트웨어 메트릭으로 비교해, 모델에 따라 코드의 구조적 특성(복잡도 등)이 측정 가능한 수준으로 다름을 보임. arXiv:2409.01382

  7. OpenAI. "Introducing GPT-5.5." 2026. — GPT-5.5가 Terminal-Bench 2.0, FrontierMath, SWE-Bench Pro 등 여러 벤치마크에서 Claude Opus 4.7보다 높은 점수를 기록했다고 발표. openai.com/index/introducing-gpt-5-5

댓글