Claude 사용량이 소진돼 다른 모델로 옮겼다. 작업 폴더도 같고 화면도 익숙한데, 조금 전까지 쓰던 세션이 목록에 없다. 비슷한 이름의 항목은 여러 개 보이고, 어떤 항목은 이름 대신 처음 입력했던 문장이 길게 표시된다. 이때 가장 먼저 드는 생각은 “작업 기록이 사라진 건가?”다. 이번에는 사용량 소진이 전환의 계기였다는 사용자 경험을 출발점으로 삼는다. 첨부 화면 자체가 한도 소진을 입증하는 것은 아니다.
이 글은 그 상황에서 시작한다. 다만 이번 사례는 Claude Code 인터페이스에서 개인용 브리지로 OpenAI 모델을 실행한 환경이다. Codex 앱이나 공식 Codex CLI로 대화를 직접 가져온 사례와는 구분해야 한다. 개인용 실행 스크립트의 이름은 nv-codex.ps1이며, Anthropic이나 OpenAI가 제공하는 공식 명령이 아니다.
먼저 확인할 것은 세 가지다. 모델을 바꾸는 것, 코드 파일을 보존하는 것, 대화 기록을 옮기는 것은 서로 다른 작업이다. 같은 작업 폴더를 열었다고 같은 대화까지 이어진 것은 아니다.
세 가지를 따로 확인하면 세션 목록이 달라져도 다음 작업을 판단할 수 있습니다.
목차 · 6개 항목
화면은 같은데, 내 세션은 어디로 갔을까?
첨부된 사례 화면에는 데스크톱의 이름 있는 대화와 터미널의 재개 목록이 서로 다르게 나타난다. 터미널에는 오래된 항목이 보이고, 새로 시작한 항목에는 긴 첫 문장이 제목처럼 표시된다. 이 화면만으로 원본 대화가 삭제됐다고 결론 내릴 수는 없다.
세션 목록은 파일 탐색기의 “모든 파일” 목록과 다르다. 사용하는 프로그램, 기록을 저장하는 위치, 현재 작업 폴더와 검색 범위에 따라 보이는 항목이 달라질 수 있다. Claude Code 공식 문서도 세션 선택기의 프로젝트·worktree 범위와 검색 기능을 설명한다. 데스크톱과 CLI의 목록 역시 같은 화면이라고 가정하면 안 된다. Claude Code 세션 관리 문서
이번 사례의 스크립트와 환경 기록에서는 일반 Claude Code와 브리지의 기록 위치를 분리해 사용한다. 원본이 있는 폴더가 아니라 브리지의 별도 기록 폴더를 보고 있다면, 원본 세션 이름을 검색해도 나오지 않을 수 있다. 먼저 “어떤 기록 목록을 보고 있는가?”부터 확인하는 편이 빠르다. 화면에 나타난 CLAUDE.md 크기 경고는 별도 현상이며, 이 경고 때문에 세션이 안 보였다고 판단하지 않는다.

데스크톱의 표시 이름
이름은 대화를 찾는 단서입니다.

터미널의 재개 목록
기록 위치·ID·마지막 내용은 따로 확인합니다. 확대 영역은 가로로 이동할 수 있습니다.
세션 이름·세션 ID·작업 폴더를 구분하자
| 구분 | 무엇을 알려 주나? | 이것만으로 알 수 없는 것 |
|---|---|---|
| 세션 이름 | 사람이 목록에서 대화를 찾는 단서 | 같은 이름의 항목이 같은 기록인지 여부 |
| 세션 ID | 기록을 특정하는 식별자 | 지금 실행 환경이 그 기록을 찾을 수 있는지 여부 |
| 작업 폴더 | 코드를 읽고 수정하는 위치 | 어떤 대화·결정·미완료 작업을 이어받았는지 여부 |
| Git 브랜치·worktree | 현재 체크아웃과 파일 변경의 맥락 | 마지막 대화 내용이나 실행 중이던 프로세스 상태 |
예를 들어 두 세션이 모두 sample-project 폴더를 가리켜도, 한쪽은 배포를 준비하던 대화이고 다른 쪽은 새로 시작한 질문일 수 있다. 반대로 표시 이름이 달라도 같은 기록의 사본일 수 있다. 이름으로 후보를 찾고, ID와 마지막 대화 내용으로 확인한다.
코드 상태도 따로 확인해야 한다. 같은 저장소에 들어갔더라도 다른 worktree나 브랜치일 수 있고, 아직 커밋하지 않은 변경이 남아 있을 수 있다. 대화 기록에 “수정 완료”라고 적혀 있다는 이유만으로 현재 파일까지 같은 상태라고 판단하지 않는다.
브리지로 실행하면 무엇이 달라지나?
이번 환경은 다음처럼 분리돼 있었다. 아래 경로는 개인 사용자 경로를 생략한 설명용 표기다.
| 항목 | 일반 Claude Code | 이 사례의 브리지 |
|---|---|---|
| 기록 위치 | ~/.claude |
~/.claude-codex |
| 실행 방식 | 일반 Claude Code 실행 | 개인 스크립트가 claude-codex 실행 |
| 기록 전달 | 원본 위치의 기록 사용 | 지정한 세션 JSONL의 사본 준비 |
| 이후 대화 | 원본 쪽 기록에 추가 | 사본 쪽 기록에 추가되며 자동 병합되지 않음 |
~는 사용자 홈 디렉터리를 뜻한다. 이 분리 구조는 이번 환경의 사례이며, 모든 브리지가 같은 경로를 쓴다는 뜻은 아니다. Claude Code는 CLAUDE_CONFIG_DIR로 설정·세션 기록의 기준 디렉터리를 바꿀 수 있다. 따라서 실제로 실행한 환경이 어떤 디렉터리를 사용하는지 확인해야 한다. Claude Code 환경 변수 문서
검토한 nv-codex.ps1은 지정한 세션 ID와 같은 이름의 JSONL 파일을 찾아 브리지 쪽에 복사한다. 대상 사본이 이미 있으면 기본적으로 중단하고, 강제 덮어쓰기를 선택했을 때는 기존 사본을 백업한다. 복사 후에는 파일 크기를 비교한다.
이 스크립트에서 -Import는 사본 준비, -Resume은 재개 대상 지정에 쓰인다. -Import만 지정하면 복사한 ID를 재개 대상으로 전달하도록 작성돼 있다. 반면 -Resume만 지정했다고 원본 기록이 자동으로 복사되는 것은 아니다. -Force는 기존 사본을 덮어쓰는 선택이므로 일반적인 시작 방법으로 권하지 않는다. 이는 검토한 개인 스크립트의 의미이며 공식 Claude Code나 Codex 옵션이 아니다.
여기에는 중요한 한계가 있다. 파일 크기 일치는 전체 내용의 일치나 정상 재개까지 증명하지 않는다. 내용이 같음을 확인하려면 별도로 해시 등으로 대조해야 한다. 복사 시점을 기준으로 한 사본일 뿐이며, 이후 양쪽에서 나눈 대화를 계속 맞춰 주는 기능도 아니다. 별도 첨부 자료나 하위 세션까지 모두 옮겨졌다고 가정해서는 안 된다.


공식 Codex 재개와는 구분해야 한다
공식 Codex CLI에도 codex resume이 있다. 이 명령은 Codex의 이전 세션을 재개하는 기능이다. 현재 작업 디렉터리와 세션의 저장 디렉터리가 다르면 사용할 디렉터리를 확인하는 동작도 문서에 설명돼 있다. 이 명령이 Claude Code의 JSONL 사본을 직접 읽어 대화를 이어 준다고 해석하면 안 된다. Codex CLI 명령 문서
공식 플러그인의 /codex:transfer는 어떻게 다른가?
OpenAI가 공개한 codex-plugin-cc는 Claude Code 안에서 Codex에 코드 검토나 개발 작업을 맡길 수 있는 플러그인이다. 이 글의 개인 브리지가 Claude Code 인터페이스에서 OpenAI 모델로 작업을 이어가는 방식이라면, 공식 플러그인은 같은 기기의 Codex CLI·app server를 통해 Codex 세션에 작업을 위임하거나 대화를 넘기는 방식이다.
기존 대화를 넘길 때는 /codex:transfer를 사용할 수 있다. 현재 공식 문서에 따르면 이 명령은 Claude Code의 대화 기록을 가져와 이어서 작업할 수 있는 Codex 세션을 만들고, codex resume <session-id> 명령을 안내한다. 가져온 대화는 Codex 앱이나 터미널 인터페이스에서 이어갈 수 있다. 즉, Claude 기록을 Codex 세션으로 가져오는 단계와 그 세션을 재개하는 단계가 구분된다. codex resume 자체가 Claude Code의 JSONL 사본을 직접 읽어 재개한다는 뜻은 아니다.
따라서 Claude Code 인터페이스를 유지하며 모델을 바꾸려는 경우와, 대화 맥락을 넘겨 Codex에서 계속 작업하려는 경우는 구분해서 선택해야 한다. /codex:transfer도 양쪽 대화를 계속 동기화하거나 이후 기록을 자동 병합하는 기능으로 안내되지는 않는다. 이전 후에는 마지막 대화와 실제 작업 폴더·브랜치·미완료 작업을 대조해야 한다. 이 절의 기능 설명은 공식 문서를 기준으로 한다. 이후 Windows에서 공식 플러그인을 직접 시험했으며, 설치와 코드 리뷰 결과는 공식 플러그인 설치·검증 글에 정리했다. 대화 이전에서는 Windows 경로 비교 오류와 기록 분기에 따른 재이전 실패를 확인했다. 로컬 수정 후 최초 이전과 별도 세션으로의 재이전을 검증한 과정은 Windows 오류와 재이전 문제 해결기에서 다룬다. 공식 플러그인의 검증 결과가 이 글의 개인 브리지 복귀 절차까지 검증한 것은 아니다. 사용 중인 Codex 버전에 따라 세션 가져오기 기능을 위한 업데이트가 필요할 수 있다.
설치·결제·모델 사용 권한도 별개의 문제다. 브리지를 실행했다고 Claude 한도가 OpenAI 쪽으로 이전되거나, 다른 서비스의 이용 비용이 없어지는 것은 아니다. 실제 연결 방식과 해당 계정의 사용 조건을 확인해야 한다.
전환 전·전환 시·전환 후 확인 순서

전환 전: 원본과 코드 상태를 남긴다
- 원본 환경에서 대상 대화의 이름, 세션 ID, 마지막 작업 내용을 확인한다. CLI와 데스크톱의 항목이 같은 기록인지도 대조한다.
- 작업 폴더·브랜치·worktree·커밋하지 않은 변경을 기록한다. 실행 중인 작업이 있다면 별도로 상태를 남긴다.
- 원본 기록과 필요한 작업 파일을 보존한다. 사본을 만들기 위해 원본을 이동하거나 삭제하지 않는다.
- 다음 모델이 알아야 할 작업 인계 메모를 작성한다. 대화 전체를 읽을 수 없더라도 진행 상태를 확인할 수 있게 하기 위해서다.
전환 시: 목록에서 아무 항목이나 고르지 않는다
- 선택한 도구가 공식 Codex인지, Claude Code 브리지인지 먼저 구분한다.
- 브리지라면 해당 구현의 저장 위치와 가져오기 범위를 확인한다. 설정 폴더 전체를 통째로 복사하는 방식은 이 글의 절차가 아니다.
- 대상 위치에 이미 기록이 있으면 어느 쪽이 더 최신인지 확인한다. 기존 사본에 새 대화가 쌓였을 수 있으므로 무작정 덮어쓰지 않는다.
- 검증된 해당 도구의 방식으로 대상 세션을 명시적으로 재개한다. 이름이 비슷하다는 이유만으로 선택하지 않는다.
일반 Claude Code CLI의 공식 재개 명령은 다음과 같다. 일반 Claude Code용 예시이며, 개인 브리지의 가져오기·실행 명령을 대신하지 않는다.
claude --resume
세션 ID를 알고 있다면 다음 형태로 지정할 수 있다. SESSION_ID는 실제로 확인한 ID로 바꿔야 한다. 공개 게시판에는 개인 세션 ID를 그대로 올리지 않는다.
claude --resume SESSION_ID
이 글에서는 개인용 스크립트를 내려받아 실행하거나 인증 정보를 옮기는 명령을 제공하지 않는다. 설정과 설치 상태가 다른 독자가 그대로 실행할 수 있는 범용 도구로 검증한 것이 아니기 때문이다.
전환 후: 첫 작업을 시키기 전에 대조한다
재개 화면에서 마지막 대화가 예상한 지점까지 이어져 있는지 확인한다. 새 모델에는 우선 현재 목표와 미완료 작업을 요약하게 하고, 내가 남긴 인계 메모와 비교한다. 이어서 실제 작업 폴더와 파일 변경을 확인한다.
맥락이 맞지 않으면 바로 배포나 수정부터 맡기지 않는다. 잘못된 세션이거나 오래된 사본일 수 있다. 대화가 재개돼도 이전 프로세스가 계속 실행 중이라는 뜻은 아니다. Claude Code 공식 문서도 세션 재개와 프로세스 상태를 구분한다. Claude Code 세션 관리 문서
복사해서 쓸 수 있는 인계 메모
현재 목표:
작업 폴더와 브랜치/worktree:
마지막으로 확인한 코드 상태:
완료한 작업과 검증 근거:
미완료 작업:
변경하면 안 되는 범위:
다음에 할 한 가지:
먼저 이 내용을 요약하고, 실제 파일 상태와 다른 점이 있으면 알려 주세요.
확인하기 전에는 저장·배포·설정 변경을 실행하지 마세요.
세션을 그대로 가져올 수 없다면 이 메모와 필요한 공개 가능한 자료로 새 대화를 시작할 수도 있다. 이는 새 세션에 맥락을 전달하는 방법이며, 기존 대화의 완전한 재개와는 다르다.
세션이 안 보이거나 비슷한 항목이 여러 개라면
| 보이는 현상 | 먼저 확인할 것 | 다음 행동 |
|---|---|---|
| 이름을 검색해도 나오지 않음 | 사용하는 프로그램과 기록 디렉터리 | 원본과 브리지 목록을 각각 확인한다. |
| 오래된 세션만 보임 | 사본을 만든 시점과 목록 범위 | 원본의 마지막 내용과 사본을 비교한다. |
| 같은 작업 폴더가 여러 번 표시됨 | 세션 ID·브랜치·worktree·마지막 내용 | 폴더 이름만 보고 선택하지 않는다. |
| 이름 대신 긴 문장이 표시됨 | 실제 대화 내용과 식별자 | 첫 입력 문장을 제목으로 쓰는 항목인지 확인한다. |
| 현재 브랜치에서 찾지 못함 | 검색·브랜치·worktree 필터 | 해당 UI에서 검색 범위를 넓혀 다시 찾는다. |
| ID를 지정해도 찾지 못함 | 실행 환경이 조회하는 위치와 파일 존재 | ID 오타와 저장 위치를 따로 확인한다. |
| 대화는 맞지만 코드가 다름 | 현재 폴더·브랜치·미커밋 변경 | 기록을 덮어쓰기 전에 실제 파일 상태부터 맞춘다. |
| 재개 후 작업이 끝나 있다고 생각했는데 결과가 없음 | 실행 중이던 작업과 결과 파일 | 이전 프로세스·외부 작업의 상태를 별도로 확인한다. |
Claude Code 선택기의 범위 확장 기능은 현재 버전의 화면과 공식 문서에서 확인한다. 같은 단축키라도 다른 프로그램에서는 다른 뜻일 수 있다. 특히 “전체 프로젝트” 보기는 현재 설정 디렉터리 안의 범위를 넓히는 것이지, 다른 기록 폴더의 대화를 자동으로 가져오는 기능은 아니다.
Claude로 돌아갈 때는 사본을 다시 덮어쓰지 않는다
브리지에서 작업을 계속했다면 원본과 사본은 복사 시점 이후 서로 다른 기록이 된다. Claude로 돌아간다고 두 기록이 자동으로 합쳐지지는 않는다. 원본만 재개하면 브리지에서 한 작업을 모를 수 있고, 사본을 원본 위에 덮어쓰면 원본에서 이후에 나눈 대화를 잃을 수 있다.
이번 사례의 복귀 절차는 전체 검증하지 않았다. 따라서 “사본을 원래 폴더에 복사하면 돌아갈 수 있다”는 식의 안내는 하지 않는다. 우선 양쪽 기록을 보존하고, 브리지에서 바꾼 코드·확인한 결과·남은 작업을 인계 메모로 정리한다. 기록 이관이 지원되는지는 해당 도구의 문서와 실제 시험으로 별도 확인해야 한다.
어느 대화를 이어받았는지, 어느 코드를 열었는지, 어디까지 작업했는지를 확인해야 한다. 이 세 가지가 맞으면 목록 모양이 달라져도 다음 작업을 결정하기가 훨씬 수월하다.
문서 확인일: 2026년 10월 11일. 공식 플러그인 실측 결과와 관련 글 안내 보충: 2026년 10월 18일. 개인 브리지의 설명은 이 사례에서 확인한 스크립트와 기록에 한정한다. 설치 방법·사용 한도·모델 제공 여부는 환경과 서비스 정책에 따라 달라질 수 있다.
