워크플로
컨텍스트를 잃지 않고 Claude Code에서 Codex로 작업 넘기기
리팩터링 도중 Claude 한도에 도달했거나, 다른 의견이 필요할 때. 다음 에이전트에게 무엇을 넘겨야 하는지, 그리고 넘기는 세 가지 방법을 소개합니다.
빠른 답변
어느 에이전트도 상대의 트랜스크립트를 불러오지 않으므로, 작업은 요약으로 넘깁니다. 목표와 마지막 지시, 계획, 수정한 파일, git 상태를 담고, 코드 자체는 디스크에 있습니다. 공통 규칙은 AGENTS.md에 두고, 진행 중인 작업은 커밋하거나 git stash create로 기록한 뒤, 요약을 직접 쓰거나 hop 같은 도구로 생성하거나, 전환할 때 Maude 같은 앱이 만들게 하세요.
작업 도중에 Claude Code에서 Codex로 전환해도 처음부터 다시 시작할 필요는 없지만, 어느 에이전트도 상대의 대화를 스스로 이어받지는 않습니다. 작업을 넘겨 주는 것은 짧은 요약입니다. 목표, 계획, 수정한 파일, git 상태, 마지막 지시, 그리고 디스크의 코드입니다. 이 요약은 직접 쓰거나, 작은 도구로 생성하거나, 전환할 때 만들어 주는 앱을 쓸 수 있습니다.
코딩 에이전트 간에 작업을 넘기는 이유
- 한도에 도달했다. 가장 흔한 이유입니다. 리팩터링 도중 Claude 요금제의 사용량이 바닥났는데 ChatGPT 요금제는 아직 여유가 있습니다. 초기화를 기다리면 몇 시간이 날아가고, Codex에서 새로 시작하면 컨텍스트를 잃습니다.
- 다른 의견. 한 에이전트가 버그 주위를 맴돌고 있습니다. 다른 모델이 깨끗한 컨텍스트로 같은 코드를 읽으면, 첫 번째 에이전트가 더 이상 보지 못하던 것을 찾아내는 경우가 많습니다. 커밋 전에 한 에이전트의 diff를 다른 에이전트에게 검토시키는 것도 부담이 적습니다.
- 강점이 다르다. 계획에는 한 에이전트를, 길고 기계적인 편집에는 다른 에이전트를 쓰거나, 특정 언어나 프레임워크에서 자신에게 잘 맞는 에이전트를 쓰는 사람도 있습니다. 무엇이 어디에 더 나은지는 모델이 출시될 때마다 바뀌므로, 규칙이 아니라 자신의 판단으로 여기세요.
Codex가 Claude Code의 세션을 읽을 수 있을까?
스스로는 읽지 못합니다. 두 에이전트 모두 전체 트랜스크립트를 디스크에 JSONL 파일로 저장합니다. Claude Code는 ~/.claude/projects/<project>/<session>.jsonl에(Claude Code 문서), Codex는 ~/.codex/sessions/ 아래에 날짜가 붙은 rollout-*.jsonl 파일로 씁니다. 각자 자신의 세션은 이어서 실행할 수 있지만(claude --resume, codex resume), 상대의 세션을 불러오는 방법은 둘 다 문서화하지 않았습니다. Claude Code의 /import 명령은 지침 파일, MCP 서버, 스킬 같은 다른 에이전트의 설정을 가져옵니다. 대화는 가져오지 않습니다.
새 에이전트에게 원본 트랜스크립트 파일을 가리켜 줄 수도 있습니다. 하지만 실제로는 좋지 않은 요약입니다. 길고, 도구 출력이 가득하며, 새 에이전트에게 정말 필요한 단 하나, 즉 지금 어디에 있고 다음에 무엇을 할지가 묻혀 버립니다.
넘겨야 할 컨텍스트
| 컨텍스트 | 중요한 이유 | 출처 |
|---|---|---|
| 목표와 마지막 지시 | 새 에이전트는 무엇이 "완료"인지, 가장 최근에 무엇을 요청받았는지 알아야 함 | 마지막 프롬프트를 그대로 |
| 계획 / 할 일 목록 | 이미 범위가 정해진 작업을 에이전트가 다시 계획하지 않게 함 | 떠나는 에이전트의 할 일 목록 |
| 수정한 파일 | 편집 전에 어디를 읽어야 하는지 알려 줌 | 트랜스크립트의 편집 내역과 git status |
| Git 상태 | 브랜치, HEAD, 커밋하지 않은 변경. 이게 없으면 새 에이전트가 작업을 다시 하거나 덮어써서 커밋할 수 있음 | git status, git diff --stat |
| 결정 사항과 막다른 길 | 이미 실패한 접근을 새 에이전트가 다시 시도하지 않도록 | 최근 대화 또는 작성된 요약 |
빌드 명령이나 코드 스타일 같은 프로젝트 규칙은 요약에 넣으면 안 됩니다. 그것은 두 에이전트가 이미 읽는 지침 파일에 들어가야 합니다.
직접 하기: AGENTS.md와 CLAUDE.md로 지침 공유
Codex는 ~/.codex/와, git 루트부터 작업 디렉터리까지의 AGENTS.md 파일로 지침을 구성합니다(Codex AGENTS.md 문서). v2.1.277부터 Claude Code도 AGENTS.md를 읽지만, 기본적으로는 작업 디렉터리나 그 상위에 CLAUDE.md나 CLAUDE.local.md가 없을 때만 읽습니다(Claude Code 메모리 문서). 두 에이전트가 모두 읽는 가장 간단한 구성은, 공통 규칙을 AGENTS.md에 두고, Claude 전용 규칙이 필요하면 CLAUDE.md를 가져오기 구문으로 시작하는 것입니다.
@AGENTS.md
## Claude Code
Use plan mode for changes under src/billing/.
반대 방향도 됩니다. ~/.codex/config.toml의 project_doc_fallback_filenames 설정을 쓰면 AGENTS.md가 없을 때 Codex가 다른 파일 이름을 읽게 할 수 있습니다.
직접 하기: 인계 문서와 git
전환하기 전에, 떠나는 에이전트에게 사용량이 남아 있다면 컨텍스트를 가지고 있을 때 요약을 쓰게 하세요.
Write HANDOFF.md for another coding agent taking over this task:
the goal, what is done, what is in progress or broken, decisions
and dead ends, files touched, and the exact next steps.
Don't change any other file.
그런 다음 코드 상태를 명확하게 만드세요. 진행 중인 작업을 브랜치에 커밋하는 것이 가장 분명한 방법입니다. 커밋하고 싶지 않다면 git stash create가 작업 트리를 건드리지 않고 추적 중인 커밋되지 않은 변경을 커밋 객체로 기록해 주므로, 다음 에이전트가 잘못하면 비교할 기준점이 생깁니다. 같은 디렉터리에서 다른 에이전트를 시작하고, HANDOFF.md를 읽고 편집 전에 파일을 다시 읽으라고 지시하세요.
자동화 도구
hop(MIT)은 이를 명령 하나로 처리합니다. Claude Code에서 Codex로는 hop codex, 반대는 hop cc입니다. 원래 에이전트의 세션 파일을 직접 읽으므로, 그 에이전트의 할당량이 바닥나도 작동합니다. 막힌 Claude Code 세션 안에서 ! hop codex를 실행할 수도 있습니다. 지시, git 브랜치, 최근 대화를 크기 한도(기본 48 KB) 안에서 인계 문서로 쓰고, 새 터미널 탭에서 다른 에이전트를 엽니다. 비슷한 프로젝트로 cli-handoff와 session-handoff가 있습니다.
| 방식 | 할당량이 바닥나도 작동 | 전환할 때마다 드는 수고 | 대화를 넘기는지 |
|---|---|---|---|
| AGENTS.md 공유만 | 예 | 없음. 하지만 넘기는 것은 규칙이지 작업 상태가 아님 | 아니요 |
| 에이전트가 쓴 HANDOFF.md + git | 떠나는 에이전트가 아직 응답할 때만 | 프롬프트 하나와 커밋 | 요약으로 |
| hop 및 유사 CLI | 예 | 명령 하나 | 최근 턴을 크기 한도 내에서 |
| 전환 기능이 내장된 앱 | 예 | 탭 한 번 | 앱에 따라 다름 |
Maude에서 인계가 작동하는 방식
Maude는 에이전트를 내 서버에서 실행하며, 세션은 한 에이전트에 묶이지 않습니다. 세션이 유휴 상태일 때 휴대폰에서, 예를 들어 Claude Code에서 Codex(또는 OpenCode, Grok Build, Antigravity)로 전환할 수 있습니다. 서버의 데몬은 쫓기듯 쓴 요약이 아니라 세션 자체의 기록으로 요약을 만듭니다.
- 새 에이전트에게 작업을 이어받는다는 것, 디스크의 파일이 기준이라는 것, 편집 전에 다시 읽어야 한다는 것을 알리는 머리말
- 마지막 지시(고정)
- 현재 계획 또는 할 일 목록
- 수정한 파일(에이전트의 편집 내역과 git이 변경되었다고 보고하는 파일에서)
- git 상태: 브랜치, HEAD, 짧은 상태, diff stat. 커밋하지 않은 작업도
git stash create로 스냅숏을 떠서 ref 아래에 보관하며, 작업 트리는 건드리지 않습니다 - 최근 대화 원문, 약 120,000자까지
- 전체 트랜스크립트에 대한 참조. 프로젝트의
.maude/handoff/에 마크다운으로 내보내며git status에는 나타나지 않습니다
요약은 새 에이전트에게 보내는 다음 메시지 앞에 붙고, 채팅에는 구분선이 표시되어 펼치면 실제로 무엇이 보내졌는지 그대로 읽을 수 있습니다. 요약은 세션 기록으로 만들어지므로 떠나는 에이전트의 응답 여부에 좌우되지 않는데, 이는 그 에이전트가 막 한도에 도달했을 때 가장 중요합니다.
되돌아갈 때는 다릅니다. 돌아가는 에이전트가 이 세션에서 이미 작업했고 이어서 실행하기를 지원한다면, Maude는 그 에이전트 자신의 대화를 이어 가고 자리를 비운 동안 일어난 일만 보냅니다. 전체 요약을 다시 받지는 않습니다.
이런 기능을 가진 앱이 Maude만 있는 것은 아닙니다. Happier는 대화 도중 엔진을 바꿀 수 있게 하고, 새 에이전트에게 이전 트랜스크립트를 읽는 도구를 줍니다. AgentsRoom은 제공자를 바꿀 때 수정된 파일, 세션 활동, 마지막 응답을 담은 인계 요약을 만듭니다. 장단점은 Maude vs Happier에서 비교합니다. 어떤 에이전트를 짝지을지 고르려면 Claude Code vs Codex vs OpenCode를 참고하세요.
자주 묻는 질문
Codex가 Claude Code의 세션을 읽을 수 있나요?
~/.claude/projects/ 아래에 JSONL로 저장하며, Codex는 이를 불러오지 않습니다. 작업은 요약으로 넘깁니다. 직접 쓰거나, hop 같은 도구로 생성하거나, 전환할 때 만들어 주는 앱을 쓰세요.AGENTS.md와 CLAUDE.md가 충돌하나요?
CLAUDE.md가 없을 때만 AGENTS.md를 읽습니다. 파일 하나를 공유하려면 규칙을 AGENTS.md에 두고 CLAUDE.md 맨 위에 @AGENTS.md를 넣으세요. Codex는 AGENTS.md를 기본으로 읽습니다.작업 도중 Claude 한도에 도달하면요?
에이전트를 바꾸면 커밋하지 않은 변경이 사라지나요?
git stash create를 실행해 두면, 다음 에이전트가 잘못할 때 비교할 기준점이 생깁니다.