openai/codex-plugin-cc 플러그인과 클로드 코드의 연동을 시각화한 프리미엄 테크 일러스트

Claude Code 안에서 Codex에게 리뷰 맡기기: openai/codex-plugin-cc 설치부터 7가지 명령어·실전 흐름·주의점까지 (2026년 10월)

Claude Code로 작업하다 보면 가끔 이런 순간이 온다. 코드는 돌아가는데, 이게 정말 맞는 설계인지 확신이 서지 않는 순간. 혼자 만드는 제품이라 옆자리에서 리뷰해 줄 동료도 없다. 예전에는 diff를 통째로 복사해서 다른 AI 채팅창에 붙여 넣고 “이거 문제 없어?”라고 묻곤 했는데, 맥락이 잘려서 엉뚱한 답이 돌아오는 일이 많았다.

OpenAI가 2026년 3월 30일에 공개한 openai/codex-plugin-cc는 바로 그 복붙 단계를 없애 주는 플러그인이다. Claude Code 안에서 슬래시 명령 하나로 Codex에게 코드 리뷰를 맡기거나, 막힌 작업을 통째로 넘길 수 있다. 이 글을 처음 쓴 건 7월이었는데, 그 사이 대화 세션을 Codex로 옮기는 /codex:transfer 명령이 추가됐고 플러그인 버전도 1.0.6까지 올라왔다. 그래서 10월 기준으로 저장소 README와 이슈 트래커를 다시 확인하고, 실제로 쓰면서 걸리기 쉬운 지점까지 보태 처음부터 다시 정리했다.


이 플러그인이 푸는 문제: 자기 코드를 자기가 검사하는 한계

AI 코딩 에이전트에게 “방금 짠 코드 리뷰해 줘”라고 하면 대개 꽤 그럴듯한 답이 나온다. 문제는 그 리뷰어가 방금 코드를 짠 당사자라는 점이다. 같은 모델, 같은 대화 맥락 안에서는 자기가 세운 가정을 스스로 의심하기 어렵다. 사람으로 치면 자기 글을 자기가 교정 보는 것과 비슷하다. 오타는 잡아도, 글의 방향이 틀렸다는 건 잘 보이지 않는다.

그래서 다른 회사의 다른 모델에게 두 번째 의견을 받는 방식이 꽤 쓸모 있다. 학습 데이터도 성향도 다른 모델이 보면, Claude가 당연하게 넘어간 부분에서 질문을 던지는 경우가 생긴다. codex-plugin-cc는 이 세컨드 오피니언을 터미널을 떠나지 않고 받게 해 준다. 저장소 설명도 딱 한 줄이다. Claude Code에서 Codex를 불러 코드를 리뷰하거나 작업을 위임하라는 것.

OpenAI는 왜 경쟁사 도구 안으로 들어갔을까

처음 소식을 봤을 때 가장 의아했던 건 이 부분이었다. OpenAI가 자기 제품인 Codex를 Anthropic의 Claude Code 안에 넣는 공식 플러그인을 만들었고, 라이선스도 Apache 2.0으로 열어 두었다. 해외 매체들은 대체로 실용적인 선택으로 봤다. 개발자에게 도구를 갈아타라고 설득하는 것보다, 이미 쓰고 있는 환경 안으로 들어가는 편이 빠르다는 해석이다. 플러그인으로 돌리는 리뷰도 결국 OpenAI 쪽에서 처리되고 사용량으로 잡히니, 회사 입장에서는 손해 볼 게 없다.

사용자 입장에서는 이유가 무엇이든 크게 상관없다. 중요한 건 두 회사의 모델을 한 작업 흐름 안에서 역할을 나눠 쓸 수 있게 됐다는 사실이다. 나는 이 구조를 “Claude가 짜고, Codex가 따진다”로 기억한다.


구조부터 이해하기: 별도 런타임이 아니라 내 PC의 Codex를 부른다

설치 전에 알아 두면 헷갈릴 일이 확 줄어드는 사실이 하나 있다. 이 플러그인은 Codex를 새로 들고 오지 않는다. 내 컴퓨터에 깔린 Codex CLI와 Codex app server를 감싸서 호출하는 얇은 다리 역할만 한다. README에 따르면 전역으로 설치된 codex 바이너리를 그대로 쓰고, 설정도 똑같이 적용된다.

이게 의미하는 바는 세 가지다. 첫째, 이미 터미널에서 Codex에 로그인해 두었다면 그 계정이 바로 쓰인다. 둘째, ~/.codex/config.toml에 적어 둔 기본 모델이나 추론 강도 설정도 그대로 따라온다. 셋째, 같은 저장소, 같은 로컬 환경에서 돈다. 코드를 어딘가에 따로 올리는 구조가 아니라는 점은 마음이 놓이지만, 반대로 말하면 Codex가 내 로컬 파일을 직접 읽는다는 뜻이기도 하다. 이 부분은 아래 권한 이야기에서 다시 다룬다.


설치: 네 줄이면 끝나지만 순서가 중요하다

준비물은 두 가지다. ChatGPT 계정(무료 플랜 포함) 또는 OpenAI API 키, 그리고 Node.js 18.18 이상. Node 버전은 node -v로 먼저 확인해 두는 게 좋다. 오래된 프로젝트 때문에 nvm으로 낮은 버전을 잡아 둔 상태라면 여기서부터 막힌다.

그다음 Claude Code를 켜고 아래 명령을 차례로 입력한다.

/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/reload-plugins
/codex:setup

첫 줄은 OpenAI의 GitHub 저장소를 플러그인 마켓플레이스로 등록하는 단계이고, 둘째 줄이 실제 설치다. 이름이 codex@openai-codex로 바뀌는 게 처음엔 헷갈리는데, 앞이 플러그인 이름이고 뒤가 마켓플레이스 이름이다. 셋째 줄로 플러그인을 다시 읽어 들이고, 마지막 /codex:setup이 Codex가 설치돼 있는지, 로그인은 됐는지를 점검해 준다.

Codex CLI가 없으면 setup이 npm으로 설치해 주겠다고 제안한다. 직접 깔고 싶다면 이렇게 하면 된다.

npm install -g @openai/codex
!codex login

앞의 느낌표는 오타가 아니다. Claude Code 입력창에서 !로 시작하면 셸 명령으로 실행된다. 별도 터미널 창을 열어 codex login을 쳐도 결과는 같다. 로그인은 ChatGPT 계정 방식과 API 키 방식 둘 다 지원한다.

설치가 제대로 됐는지는 두 군데서 확인한다. 슬래시 명령 목록에 /codex:로 시작하는 명령들이 보이는지, 그리고 /agents에 codex:codex-rescue 서브에이전트가 등록돼 있는지. 둘 다 보이면 준비는 끝났다.

업데이트는 저절로 되지 않을 수 있다

은근히 놓치기 쉬운 부분이다. Claude Code 문서를 보면 Anthropic 공식 마켓플레이스는 자동 업데이트가 기본으로 켜져 있지만, 서드파티 마켓플레이스는 기본값이 꺼짐이다. openai-codex 마켓플레이스도 여기에 해당한다. 그래서 봄이나 여름에 설치해 두고 그대로 쓴 사람이라면 /codex:transfer 같은 새 명령이 아예 안 보일 수 있다. /plugin의 Installed 탭에서 Update now를 누르거나, 셸에서 아래처럼 갱신하면 된다.

claude plugin update codex@openai-codex

Marketplaces 탭에서 이 마켓플레이스만 자동 업데이트를 켜 두는 방법도 있다. 어느 쪽이든 업데이트 뒤에는 /reload-plugins를 한 번 더 해야 지금 열린 세션에 반영된다.


명령어 7가지, 실제로는 이렇게 나눠 쓴다

명령은 크게 세 묶음이다. 리뷰 두 개, 위임과 이관 두 개, 그리고 백그라운드 작업 관리 세 개. 하나씩 써 보면 각자 성격이 분명하게 갈린다.

/codex:review — 평범하지만 가장 자주 쓰는 리뷰

지금 작업 중인 변경 사항을 Codex가 읽기 전용으로 검토한다. README에는 Codex 안에서 /review를 직접 돌린 것과 같은 품질이라고 적혀 있다. 옵션 없이 치면 아직 커밋하지 않은 변경을 보고, --base main을 붙이면 브랜치 전체를 main과 비교해서 본다.

이 명령은 일부러 방향을 조정할 수 없게 만들어져 있다. 뒤에 “인증 쪽만 봐 줘” 같은 문장을 붙여도 받지 않는다. 정해진 기준으로 공평하게 훑는 리뷰라고 생각하면 된다. 여러 파일을 고친 변경이라면 시간이 꽤 걸리니 --background를 붙여 두는 게 낫다. --wait를 주면 끝날 때까지 기다린다.

/codex:review
/codex:review --base main
/codex:review --background

/codex:adversarial-review — 방향 자체를 의심하는 리뷰

내가 이 플러그인을 쓰는 진짜 이유는 이쪽이다. 일반 리뷰가 “이 줄에 버그가 있다”를 찾는다면, 이 명령은 “애초에 이 방식이 맞았나”를 따진다. 숨은 가정, 트레이드오프, 실패 시나리오, 더 단순하거나 안전한 대안이 있었는지를 캐묻는다. 그리고 review와 달리 플래그 뒤에 집중할 주제를 문장으로 붙일 수 있다.

/codex:adversarial-review --base main 결제 웹훅이 두 번 들어올 때 중복 처리될 여지가 없는지, 재시도 설계가 맞는지 따져 봐
/codex:adversarial-review --background 레이스 컨디션을 찾고 지금 고른 접근법이 맞는지 의심해 봐

인증, 결제, 데이터 삭제, 마이그레이션 롤백처럼 한 번 틀리면 되돌리기 어려운 코드는 배포 전에 꼭 이걸 한 번 돌린다. 읽기 전용이라 코드를 고쳐 주지는 않는다. 지적을 받으면 그 내용을 Claude에게 다시 넘겨 고치게 하는 식으로 이어 간다.

/codex:rescue — 막힌 작업을 통째로 넘기기

Claude Code가 같은 버그를 세 번째 고치고도 테스트가 계속 깨지는 상황, 한 번쯤 겪어 봤을 것이다. 그럴 때 /codex:rescue로 작업을 codex:codex-rescue 서브에이전트에게 넘긴다. 이 명령은 리뷰와 달리 실제로 원인을 조사하고 수정까지 시도한다.

/codex:rescue 테스트가 갑자기 실패하기 시작한 원인을 조사해 줘
/codex:rescue 가장 작고 안전한 패치로 실패하는 테스트를 고쳐 줘
/codex:rescue --resume 지난번 실행에서 나온 첫 번째 수정안을 적용해 줘
/codex:rescue --model gpt-5.4-mini --effort medium 가끔 실패하는 통합 테스트를 조사해 줘
/codex:rescue --model spark 빠르게 고쳐 줘

옵션은 --background, --wait, --resume, --fresh가 있다. resume도 fresh도 붙이지 않으면 플러그인이 이 저장소의 최근 rescue 스레드를 이어 갈지 물어본다. --model과 --effort를 생략하면 Codex가 알아서 기본값을 고르고, spark라고 쓰면 gpt-5.3-codex-spark로 연결된다. 꼭 슬래시 명령이 아니어도 “이 DB 연결 코드를 Codex한테 맡겨서 더 튼튼하게 바꿔 줘”처럼 평소 말투로 부탁해도 위임이 된다.

예전 글에서는 이 명령에 특정 고성능 모델을 지정하라고 썼는데, 다시 보니 굳이 그럴 필요가 없었다. 모델 이름은 시기마다 바뀌고, 지정하지 않으면 Codex가 고른다. 늘 같은 설정을 쓴다면 프로젝트 루트의 .codex/config.toml에 적어 두는 편이 깔끔하다.

model = "gpt-5.4-mini"
model_reasoning_effort = "high"

단, 프로젝트 단위 설정은 Codex가 그 프로젝트를 신뢰된(trusted) 프로젝트로 인정했을 때만 읽힌다. 설정을 바꿨는데 반영이 안 된다면 이 부분부터 의심해 보자.

/codex:transfer — 대화를 Codex로 이사시키기

6월 말에 추가된 명령이다. Claude Code에서 한참 디버깅하던 대화를 그대로 Codex 쪽 스레드로 만들어 주고, codex resume <session-id> 형태의 명령을 출력한다. 그걸 터미널에 치면 Codex TUI나 Codex 앱에서 같은 맥락을 이어서 작업할 수 있다. Claude 쪽 사용량이 바닥났는데 작업 흐름은 끊고 싶지 않을 때 특히 쓸모가 있다.

원본 대화 파일은 ~/.claude/projects 아래에 있어야 하고, 세션 가져오기 기능이 없는 예전 Codex 버전에서는 동작하지 않는다. 안 된다면 Codex CLI부터 최신으로 올려 보는 게 순서다.

/codex:status, /codex:result, /codex:cancel — 백그라운드 작업 관리

이 세 명령은 짝으로 쓴다. status는 지금 저장소에서 돌고 있거나 최근 끝난 Codex 작업을 보여 주고, result는 끝난 작업의 최종 결과를 꺼내 준다. result에는 가능한 경우 Codex 세션 ID도 함께 나와서, codex resume으로 그 실행을 Codex에서 직접 다시 열 수 있다. cancel은 돌고 있는 작업을 멈춘다. 셋 다 뒤에 task-abc123 같은 작업 ID를 붙이면 특정 작업만 지정할 수 있다.

세 가지 핵심 명령의 차이를 표로 정리하면 이렇다.

명령어 하는 일 주제 지정 코드 수정
/codex:review 커밋 전 변경 또는 브랜치 전체를 정해진 기준으로 리뷰 불가 안 함(읽기 전용)
/codex:adversarial-review 설계 선택, 숨은 가정, 실패 시나리오를 따지는 반론형 리뷰 가능(플래그 뒤 문장) 안 함(읽기 전용)
/codex:rescue 버그 조사, 수정 시도, 이전 작업 이어 가기 가능(모델·추론 강도까지) 할 수 있음

내가 실제로 쓰는 흐름 세 가지

1. 커밋 직전, 백그라운드 리뷰 걸어 두기

가장 단순하고 가장 자주 쓰는 패턴이다. 기능 하나를 마무리하면 바로 커밋하지 않고 리뷰를 백그라운드로 걸어 둔다. 그 사이 나는 테스트를 하나 더 쓰거나 README를 손본다. 조금 뒤 status로 확인하고 result를 읽는다.

/codex:review --base main --background
/codex:status
/codex:result

지적 사항이 나와도 전부 받아들이지는 않는다. Codex의 지적을 그대로 Claude에게 보여 주고 “이 중에 맞는 것만 반영하고, 동의하지 않는 건 이유를 말해 줘”라고 시킨다. 두 모델이 서로 다른 판단을 내리는 지점이 대개 내가 직접 들여다봐야 할 곳이다. 둘이 같은 결론이면 대체로 맞고, 엇갈리면 내 판단이 필요하다는 신호로 받아들인다. 이 습관 하나만으로도 리뷰를 맹신하는 일이 줄어든다.

2. 위험한 변경 앞에서 압박 테스트

결제, 구독 갱신, 계정 삭제처럼 사고가 나면 고객에게 바로 피해가 가는 코드는 adversarial-review를 한 번 거친다. 요령은 주제를 최대한 좁게 주는 것이다. “보안 봐 줘”보다 “토큰이 만료된 직후 재시도 요청이 들어오면 어떻게 되는지 봐 줘”가 훨씬 쓸 만한 답을 돌려준다. 막연한 질문에는 막연한 체크리스트가 돌아온다.

3. 막힌 버그를 넘겨 두고 다른 일 하기

간헐적으로만 깨지는 테스트는 혼자 붙잡고 있으면 반나절이 그냥 간다. 이럴 때 /codex:rescue --background로 조사를 넘기고 나는 다른 기능으로 넘어간다. 결과가 오면 패치를 바로 받아들이지 말고 diff를 직접 읽는다. rescue는 실제로 파일을 고칠 수 있는 명령이라, 리뷰보다 한 단계 더 조심해야 한다. 나는 rescue를 돌리기 전에 커밋이나 stash로 현재 상태를 꼭 남겨 둔다. 마음에 안 들면 바로 되돌릴 수 있도록.


비용, 사용량, 권한에서 조심할 것

플러그인 자체는 무료 오픈소스지만, 이걸로 돌리는 모든 리뷰와 위임은 내 Codex 사용량에서 빠진다. ChatGPT 플랜으로 로그인했다면 플랜별 사용 한도에, API 키라면 토큰 비용으로 그대로 잡힌다. 구체적인 한도와 요금은 수시로 바뀌니 OpenAI의 Codex 요금 안내 페이지에서 직접 확인하는 게 정확하다. Claude Code 구독(Pro/Max)과 Cursor 요금을 같이 고민 중이라면 Cursor vs Claude Code 요금 비교 (2026년 10월)도 참고하면 된다. 파일이 많이 바뀐 큰 브랜치에 adversarial-review를 자주 돌리면 생각보다 빨리 한도가 찬다.

가장 조심해야 할 기능은 리뷰 게이트다. /codex:setup --enable-review-gate로 켜면, Claude가 응답을 마치려 할 때마다 Stop 훅이 Codex 리뷰를 돌리고, 문제가 나오면 종료를 막아 Claude가 먼저 고치게 만든다. 듣기엔 든든하지만 README에서도 경고하듯 Claude와 Codex가 끝없이 주고받는 루프가 생길 수 있고, 양쪽 사용량을 빠르게 태운다. 켜더라도 화면을 지켜보고 있을 때만 켜고, 자리를 비울 때는 /codex:setup --disable-review-gate로 끄는 걸 습관으로 들이자.

권한도 짚고 넘어가야 한다. 플러그인은 내 로컬 Codex를 같은 저장소에서 돌리기 때문에, Codex 설정에서 허용한 범위 안에서 파일을 읽고 rescue라면 수정까지 한다. 회사 코드나 고객 데이터가 들어 있는 저장소라면 Codex의 샌드박스와 승인 설정을 먼저 확인하고, .env 같은 비밀 파일이 리뷰 대상 변경에 섞여 있지 않은지 봐 두는 게 좋다. 두 회사의 모델에 코드를 보낸다는 건, 데이터 처리 정책도 두 곳 것을 모두 따져 봐야 한다는 뜻이다.


자주 막히는 지점과 해결법

setup이 Codex를 못 찾는다. 대부분 PATH 문제다. nvm 등으로 Node를 여러 버전 쓰면, Claude Code가 실행된 셸과 Codex가 설치된 Node가 서로 다를 수 있다. Claude Code 안에서 !which codex와 !codex --version을 쳐 보면 금방 확인된다.

설치는 했는데 명령이 안 보인다. /reload-plugins를 빼먹은 경우가 많다. 그래도 안 되면 Claude Code를 완전히 종료했다가 다시 켠다.

리뷰가 끝나지 않고 계속 running으로 남는다. GitHub 이슈 트래커에도 리뷰가 멈춘 채로 있다거나, 작업 프로세스는 이미 죽었는데 상태만 running으로 표시된다는 보고가 올라와 있다. 이럴 때는 /codex:cancel로 정리하고 다시 돌리는 게 가장 빠르다.

컴퓨터가 점점 무거워진다. 이것도 이슈로 여러 번 보고된 부분인데, 세션을 끝낸 뒤에도 Codex app server 쪽 프로세스가 정리되지 않고 남아 메모리를 잡아먹는다는 내용이다. 하루 종일 세션을 열었다 닫았다 했다면 활동 모니터나 ps로 남아 있는 codex 프로세스를 한 번 확인해 보자. 또 Claude Code 세션 여러 개에서 동시에 Codex 작업을 돌리다가 한 세션을 닫았더니 다른 세션의 작업까지 조용히 끊겼다는 보고도 있다. 중요한 백그라운드 작업은 한 세션에서만 돌리는 편이 안전하다.

transfer가 실패한다. Codex CLI 버전이 낮거나, 원본 대화 파일이 ~/.claude/projects 밖에 있는 경우가 대부분이다.


도입 전 체크리스트

  • node -v 결과가 18.18 이상인가
  • codex login을 마쳤고, 사용량이 ChatGPT 플랜과 API 키 중 어디로 잡히는지 알고 있는가
  • 설치 후 /agents에 codex:codex-rescue가 보이는가
  • 서드파티 마켓플레이스라 자동 업데이트가 꺼져 있다는 것, 업데이트 방법을 기억해 뒀는가
  • 리뷰 게이트는 지켜볼 때만 켜기로 정했는가
  • rescue 전에 커밋이나 stash로 되돌릴 지점을 만들어 두는가
  • 비밀 파일과 고객 데이터가 리뷰 범위에 들어가지 않는가

자주 묻는 질문

Codex 계정을 따로 만들어야 하나?

이 컴퓨터에서 이미 Codex에 로그인했다면 그 계정이 그대로 쓰인다. Claude Code만 써 왔다면 ChatGPT 계정이나 API 키로 codex login을 한 번 해야 한다. 무료 ChatGPT 계정도 지원 대상에 들어 있다.

Claude Code 쪽 사용량에도 영향이 있나?

Codex가 처리하는 부분은 OpenAI 쪽 사용량으로 잡힌다. 다만 명령을 부르고 결과를 읽어 정리하는 일은 Claude Code 세션 안에서 일어나니, Claude 쪽 토큰도 어느 정도는 쓴다. 특히 리뷰 게이트를 켜면 양쪽이 함께 늘어난다.

review와 adversarial-review 중 하나만 쓴다면?

매일 쓰는 건 review, 배포 전 위험한 변경에는 adversarial-review다. 그래도 하나만 고르라면 나는 adversarial-review를 고르겠다. 같은 모델로는 얻기 어려운 방향에 대한 반론이 이 플러그인의 진짜 가치라고 보기 때문이다.

지금 쓰는 API 키나 엔드포인트 설정도 그대로 되나?

된다. 로컬 Codex CLI 설정을 그대로 따르기 때문에 기존 로그인 방식과 설정이 유지된다. 내장 OpenAI provider를 다른 엔드포인트로 보내야 한다면 Codex 설정에 openai_base_url을 지정하면 된다.

Claude Code가 아닌 다른 도구에서도 쓸 수 있나?

이 저장소는 Claude Code 전용 플러그인이다. 다른 환경에서 Codex를 쓰고 싶다면 Codex CLI나 Codex 앱을 직접 쓰는 편이 맞다.


마치며

codex-plugin-cc를 쓰면서 느낀 건, 이게 Claude를 대체하는 도구가 아니라는 점이다. 짜는 일은 여전히 Claude Code가 하고, Codex는 옆에서 “정말 이게 맞아?”라고 묻는 동료 역할을 한다. 혼자 일하는 사람에게 가장 부족한 게 그 질문을 던져 줄 사람이라서, 나에게는 이 차이가 꽤 컸다.

처음이라면 거창하게 시작할 필요 없다. 설치 네 줄을 치고, 오늘 고친 브랜치에 /codex:review --background 한 번만 걸어 보자. 결과를 읽어 보면 이 도구를 어디까지 믿고, 어디서부터 내가 판단해야 하는지 감이 온다.


함께 읽으면 좋은 글

참고 자료