3줄 요약
- Claude Code의 창과 Codex의 창을 나란히 배치한 상태에서 직접 대화할 수 있는 경로를 만들었습니다. 처음 받은 것은 Codex의 답변이 아니라 화면 구석에 표시된 안내문이었습니다.
- 원인은 '답변을 어디서 읽어와야 하는가'였습니다. 상대방의 기록(history)을 읽는 경로는 Claude Code 분만 있었고, Codex의 기록은 없었기 때문에 화면 끝부분을 읽게 되었습니다. 같은 날 수정했습니다.
- Claude Code 내에서 Codex를 호출하는 공식 플러그인도 있습니다. 어느 것이 더 적합한지는 대화 과정을 직접 눈으로 보고 싶은지 여부에 따라 달라집니다.
이런 경험 없으신가요?
Claude Code에 작성시킨 코드를 Codex에게도 검토받고 싶을 때.
답변이 갈릴 경우, 다른 쪽 의견도 듣고 싶을 때.
그럴 때마다 한쪽 창의 답변을 선택하여 복사한 후, 다른 쪽 창에 붙여넣으며 "이에 대해 어떻게 생각해?"라고 입력합니다. 그리고 돌아온 답변을 다시 원래 창에 붙여넣습니다.
두 AI 사이에서 사람이 전달자 역할을 하게 됩니다.
이 전달자 역할에서 벗어나려면 크게 두 가지 연결 방식이 있습니다.
- Claude Code 내에서 Codex를 호출하는 방법 (Codex의 공식 플러그인)
- Claude Code 창과 Codex 창을 나란히 배치한 상태로, 창들끼리 대화하게 하는 방법
저는 후자를 만들었습니다. 이 글은 그 첫날에 받은 것에 대한 이야기입니다.
창들끼리 대화하는 경로를 만들다
저는 코드를 작성하지 않습니다. 본업의 틈을 이용해 Claude Code에게 Ciel이라는 도구를 만들게 하고 있습니다. 이는 Claude Code와 Codex의 창을 하나의 화면에 나란히 배치하여, 전체 내용을 한눈에 보면서 요청할 수 있는 도구입니다.
그 Ciel에, 한쪽 창의 답변을 다른 쪽 창으로 전달하는 경로를 추가했습니다. Claude Code 창의 글자를 Codex 창으로 넘기고, Codex가 답변을 마치면 그 답변을 다시 Claude Code 창으로 되돌립니다. 두 창은 계속 화면에 나란히 배치된 상태입니다.
처음 작동시킨 것은 2026년 9월 28일 오후였습니다.
첫 시도: 답변 대신 'Tip: Use /title…'이 도착했다
오후 3시 8분 40초, Codex 창에 "테스트로 3라운드 정도 해봐"라고 보냈습니다.
25초 후인 오후 3시 9분 5초, Claude Code 창으로 돌아온 것은 이 문장으로 시작하는 화면 끝부분이었습니다.
Tip: Use /title to choose what appears in your terminal’s title.
› Ask Codex to…
Codex 화면 하단에 표시되는 사용 안내문과 입력 필드의 기본 텍스트입니다. 이는 Codex의 답변이 아니었습니다.
받은 Claude Code 창은 이것을 제가 붙여넣은 글이라고 생각하고 읽었습니다. 이 형태로, 한 왕복 분량만큼 오해가 발생했습니다.
원인은 답변을 읽어오는 장소에 있었습니다.
Ciel은 상대방의 답변을 화면에서 잘라내는 것이 아니라, 상대방 대화 기록(jsonl)에서 읽도록 설계되었습니다. 그런데 찾아가야 할 곳이 Claude Code 기록 저장소만 되어 있었습니다. Codex의 기록은 그곳에는 없었기 때문에 빈 값이 돌아왔습니다. 비어있을 때는 '화면 끝부분'을 읽는다는 폴백(fallback) 장치가 남아 있었고, 거기에 도달했습니다. Codex 화면의 끝부분은 안내문과 입력 필드의 장식입니다.
수정 방법은 Codex 기록을 읽는 경로를 추가하는 것이었습니다. Codex는 기록을 ~/.codex/sessions/<년>/<월>/<일>/rollout-*.jsonl에 남기며, 첫 번째 줄에 작업 공간의 위치가 들어 있습니다. 창의 작업 공간과 일치시켜 답변은 '답변 완료' 표시가 있는 줄부터 가져오도록 수정했습니다. 수정한 것은 같은 날 오후 3시 15분이었습니다.
화면에 보이는 것과 상대에게 전달된 것이 달랐다
이날, 두 창은 Ciel 화면에 나란히 배치되어 있었습니다.
보내는 쪽의 기록에는, 화면 장식을 전달했을 때도 '전송함'이라는 성공적인 형태로 남아있습니다. 도착한 글자가 답변인지 아닌지는 받는 쪽에서 내용을 확인해야 알 수 있습니다.
Claude Code 내에서 호출하는 방식도 있다
전달자 역할에서 벗어나는 또 다른 연결 방식에 대해서도 적겠습니다.
OpenAI는 Claude Code 내에서 Codex를 사용하는 플러그인(openai/codex-plugin-cc)을 출시했습니다. GitHub 저장소가 만들어진 것은 2026년 3월 30일 (UTC)입니다. 11월 13일에 확인했을 때, GitHub의 별표는 35,089개였습니다.
README에 적힌 구조는 다음과 같습니다.
- Claude Code 내에서 네 줄을 입력하면 진입합니다.
/codex:review
으로 검토하고, /codex:rescue
작업을 맡기다 - 현재의 Codex를 화면 없이 구동하여 결과 문장이 Claude Code 대화로 돌아옵니다. 긴 작업은 백그라운드에서 실행하고, /codex:status
으로 상황을 확인합니다.
요청하는 방향은 Claude Code에서 Codex로입니다.
- 소스에서는 Codex 측의 승인 기본값이
never입니다.
(Codex는 사람에게 묻지 않습니다). 검토는 읽기만 하면 되며, 작업을 맡길 때는 작업 공간 내부에 가두어 보호합니다.
Claude Code 대화 안에서 완결되므로 창을 늘릴 필요가 없습니다.
한편, 공개 Issue (11월 13일 기준 392건)에는 백그라운드에서 실행한 작업이 조용히 끝났음에도 '실행 중'으로 남아 있다는 보고가 있습니다. 백그라운드 셸 전체를 정리했을 때(#432)와 다른 Claude 대화를 닫았을 때(#540)의 두 건 모두 열린 상태로 남아있습니다. 창이 보이지 않는 구조에서는, 멈췄는지 여부를 확인하러 가봐야 합니다.
창을 나란히 배치하는 형태에서는 그 부분이 화면에 나타납니다. 현재의 Ciel은 확인 질문('1. Yes' 등)을 읽으면 창 목록에 '확인 대기'로 표시합니다. 데스크톱 버전의 '현재 상태' 섹션에는 3분 이상 움직임이 없는 창을 '5분 움직임 없음'처럼 표시하고, 작업 중/확인 대기/정지된 창의 수도 나열합니다. 상담 도중에도 사람은 어느 창에나 입력할 수 있습니다. 확인 버튼을 누르는 것은 기본적으로 사람입니다 (Ciel이 누르는 경우는 확인 자동 통과를 직접 설정했을 때만 해당됩니다).
| 공식 플러그인 | 창을 나란히 배치하는 형태 (Ciel) | |
|---|
| 설치 방법 | Claude Code 내에서 4줄 | 앱을 넣기 |
| ... | 창 목록에 '확인 대기', '현재 상태'에 '◯분 움직임 없음' | |
| 사람의 확인 | Codex는 묻지 않도록 설정. 경계로 보호 | 각각의 도구에 대한 확인이 나타나며, 기본적으로 사람이 누릅니다 |
Claude Code 내에서 Codex에게 검토나 작업을 요청하는 것으로 충분한 사람은 공식 플러그인으로도 충분합니다. 창을 나란히 배치하는 형태는 주고받는 과정을 자신의 눈으로 보면서 대화시키고 싶은 사람에게 적합합니다.
가져가기: 두 AI와 이야기시키기 전에 확인해야 할 표
어떤 방식으로 연결하든, 처음 몇 번은 다음을 참고해 주세요.
□ 상대방에게 도착한 글자와, 보낸 쪽 화면에 나타나는 답변이 같은가
(처음과 마지막 문장을 비교한다. '보냈습니다' 기록만으로 끝내지 않는다)
□ 도구를 사용한 긴 답변도 전부 도착하는가
...
전송 경로는 처음 한 번에 작동했습니다. 달랐던 것은 전달된 내용 쪽이었습니다.
여기부터는 이 기사와는 별개의 이야기입니다. 현재 제작 중인 Ciel(Claude Code와 Codex의 창을 나란히 배치하여 여러 개를 동시에 맡기는 도구)을 당분간 무료로 배포하고 있습니다. 좋으시면 한번 사용해 보세요. 다운로드 페이지는 여기입니다.
Discussion