Claude Code에서 GPT-6 Astra 쓰기: 기존 세션까지 이어가는 Windows 실전 가이드
목표는 단순하다. Claude Code의 인터페이스와 오랫동안 쌓아온 세션 컨텍스트는 유지하면서, 실제 모델은 ChatGPT 계정으로 로그인한 Codex의 최신 GPT-6 Astra를 사용한다.
하지만 실제로 해보니 설치보다 까다로운 문제가 따로 있었다. Claude Code 실행 파일 탐지, 모델 목록, 분리된 설정 디렉터리, 보이지 않는 기존 세션이 차례로 발목을 잡았다.
gpt-6-astra와 Codex CLI 요구 버전을 기준으로 실행 절차를 갱신했다. 제3자 브리지의 Astra 호환성은 계정 롤아웃과 브리지 버전에 따라 달라질 수 있으므로, 아래 절차에서는 마지막 /status와 실제 응답 확인을 성공 기준으로 삼는다.
/ 01 · SECTION
왜 이런 방법까지 고민하게 되었나
나는 현재 Claude Code Max 요금제와 ChatGPT Pro 요금제를 함께 구독하면서 앱을 개발하고 있다. 두 서비스에는 나름대로 역할을 나눠 두었다.
| Claude Code Max | 앱의 실제 구현, 코드 수정, 테스트처럼 컨텍스트가 계속 이어져야 하는 주 개발 작업 |
|---|---|
| ChatGPT Pro | 구현 결과에 대한 외부 독립 리뷰와 Codex PR Auto Review |
이 조합 자체는 꽤 잘 맞았다. 문제는 앱 개발 강도가 높아지면서 Claude Code의 주간 사용 한도가 매주 목요일쯤이면 바닥난다는 점이었다.
작업을 계속하기 위해 추가 크레딧도 구매해 보았다. 하지만 USD 400 상당의 추가 크레딧이 하루 만에 소진되면서, 이 방식으로는 장기 개발을 계속할 수 없다는 판단이 들었다. 단순히 비용이 늘어나는 수준을 넘어, 주간 한도가 끝날 때마다 핵심 개발 흐름 자체가 끊기는 것이 더 큰 문제였다.
왜 월 $200 구독보다 비싼 $400 크레딧이 하루 만에 사라졌을까?
처음에는 추가 크레딧이 $400이면 월 $200인 Max 20x 구독보다 훨씬 오래 사용할 수 있을 것처럼 느껴졌다. 하지만 두 금액은 같은 방식으로 계산되는 상품이 아니었다.
Anthropic의 공식 설명에서 Max 20x는 Pro 요금제보다 5시간 세션당 20배 많은 사용량을 제공한다. 이는 “월 구독료 $200를 표준 API 토큰 $200처럼 충전해 주고 그것을 다시 20배로 늘린다”는 뜻이 아니다. 반면 구독 한도를 넘긴 뒤 사용하는 추가 크레딧은 표준 API 단가에 따른 종량제로 차감된다.
Anthropic은 Max 포함량을 고정 토큰 수나 API 가격 상당액으로 공개하지 않는다. 따라서 $400 추가 크레딧이 Max 포함량의 정확히 몇 퍼센트인지는 공식 사양만으로 계산할 수 없다. 여기서 중요한 실측은 비율이 아니라, 내 작업에서는 주간 Max 한도를 목요일쯤 소진했고 그 뒤 구매한 $400 추가 크레딧도 하루 만에 바닥났다는 사실이었다.
차라리 Max 20x를 두 개 쓰면 딱 맞지 않을까?
실제 사용량만 놓고 보면 그게 가장 단순한 답처럼 보였다. 현재 작업 강도에는 Max 20x 한 개보다 두 개에 가까운 용량이 필요했고, 두 개의 정기 구독 한도를 하나의 Claude Code 작업 흐름에서 이어서 사용할 수 있다면 추가 크레딧보다 예측 가능한 방식이 될 수 있었다.
그러나 내가 필요로 한 것은 별도 계정에서 새로 시작하는 두 번째 구독이 아니었다. 하나의 Claude Code 환경과 동일한 장기 세션에 Max 20x 구독 한도 두 개를 겹쳐 쓰는 선택지는 없었다. 계정을 분리하면 인증과 세션 기록도 분리되어, 핵심 요구였던 컨텍스트 연속성이 다시 깨진다.
그래서 이미 별도로 구독 중이던 ChatGPT Pro에 눈을 돌렸다. 평소 외부 리뷰와 Codex PR Auto Review에 사용하던 ChatGPT의 Codex 모델을, 기존 Claude Code 세션과 인터페이스는 유지한 채 구현 작업에도 활용할 수 있는지 검토하게 된 것이다.
그래서 질문을 다음처럼 바꾸었다.
Claude Code Max 한도가 소진된 뒤에도 기존 Claude Code 세션과 작업 인터페이스를 유지하면서, 별도로 구독 중인 ChatGPT Pro의 Codex 모델을 사용할 수 있을까?
오늘 진행한 검토와 시행착오는 바로 이 질문에서 시작됐다.
이 글을 보면서 그대로 따라 하는 순서
처음 시도하는 사람은 아래 7단계를 먼저 한 번 훑은 뒤 실행하면 된다. 기존 세션을 옮길 필요가 없는 사람은 06단계를 건너뛰면 된다. 각 단계 아래의 ‘정상 기준’까지 확인하고 다음으로 넘어간다.
gpt-6-astra이며, Codex에서 Astra를 사용하려면 Codex CLI 0.153.0 이상이 필요하다. 이 글의 브리지는 OpenAI/Anthropic 공식 통합이 아닌 제3자 도구이므로 마지막 검증은 반드시 실제 응답까지 확인한다.버전 확인
Node.js 20 이상, Claude Code, Codex CLI를 확인한다. Astra는 Codex CLI 0.153.0 이상이 필요하다.
node --version
claude --version
codex --version
정상 기준 · node는 v20 이상, codex는 0.153.0 이상
ChatGPT 계정으로 Codex 로그인
API 키를 넣는 절차가 아니다. Codex CLI에서 ChatGPT OAuth 로그인을 완료한다.
codex login
401이 나오면 · codex를 한 번 실행해 OAuth 토큰을 갱신한 뒤 재시도
브리지 설치
현재 글에서 사용하는 제3자 브리지 codex-for-claude-code를 전역 설치한다.
npm install -g codex-for-claude-code@latest
정상 기준 · claude-codex 명령을 실행할 수 있어야 함
프로젝트 폴더에서 Astra로 실행
모델 선택기에 Astra가 없어도 공식 모델 ID를 직접 지정한다.
cd C:\path\to\your-project
claude-codex --model gpt-6-astra
정상 기준 · Claude Code TUI가 열리고 요청이 127.0.0.1:3099 프록시를 통과
Windows에서 Claude 경로 오류가 날 때만
Could not find Claude Code binary 오류가 있을 때만 실제 claude.exe 경로를 지정한다.
$env:CLAUDE_CODEX_CLAUDE_BIN="$HOME\.local\bin\claude.exe"
claude-codex --model gpt-6-astra
오류가 없다면 · 이 단계는 건너뛴다
기존 세션을 이어갈 때만
/resume에 기존 세션이 보이면 그대로 선택한다. 보이지 않을 때만 이 글의 세션 복사 절차를 수행한다.
/resume
중요 · ~/.claude 전체를 덮어쓰지 말고 필요한 JSONL 하나만 복사
마지막 검증
세션을 연 뒤 /status에서 프록시 주소와 실제 모델을 확인하고 작은 작업 하나를 실행한다.
/status
확인할 값 · Anthropic base URL = http://127.0.0.1:3099 · Model = gpt-6-astra
/ 02 · SECTION
최종적으로 확인된 환경
| 운영체제 | Windows |
|---|---|
| 터미널 | PowerShell |
| Claude Code | 2.1.260 |
| Codex CLI | 0.153.0 이상 · Astra 공식 최소 요구 |
| 브리지 | codex-for-claude-code 0.2.6 (현재 저장소 기준) |
| 인증 | Codex CLI의 ChatGPT OAuth |
| 로컬 프록시 | http://127.0.0.1:3099 |
| 선택 모델 | gpt-6-astra · OpenAI 공식 모델 ID |
| 가져온 세션 | 약 303MB JSONL |
OpenAI 공식 문서에 따르면 Codex CLI는 ChatGPT 계정으로 로그인할 수 있고, 이 경우 사용량은 해당 ChatGPT 플랜의 Codex/Work 허용량에서 차감된다. GPT-6 Astra를 Codex에서 사용하려면 Codex CLI 0.153.0 이상이 필요하며, 계정별 제공 여부는 순차 롤아웃에 따라 다를 수 있다.
/ 03 · SECTION
Codex 로그인과 브리지 설치
처음에는 OmniRoute와 LiteLLM 같은 경로도 검토했다. 하지만 내 목적은 복잡한 멀티 프로바이더 라우팅이 아니었다.
- Claude Code의 인터페이스와 도구를 계속 사용할 것
- 이미 로그인된 Codex CLI 인증을 재사용할 것
- API 키 종량제 대신 ChatGPT 구독에 포함된 Codex 접근을 사용할 것
이 조건에는 codex-for-claude-code가 가장 직접적으로 맞았다. 다만 OpenAI나 Anthropic의 공식 통합 제품이 아닌 제3자 오픈소스 브리지라는 점은 먼저 알고 사용해야 한다.
1. Codex CLI 로그인 확인
codex login또는 Codex CLI를 한 번 실행한다.
codex첫 실행에서는 Sign in with ChatGPT 방식을 선택한다. 브리지에서 401 Unauthorized가 발생할 때도 Codex CLI를 한 번 실행해 OAuth 토큰을 갱신한 뒤 재시도할 수 있다.
2. 사전 조건과 브리지 설치
node --version
claude --version
codex --version브리지 README 기준으로 Node.js 20 이상, Claude Code, 로그인된 Codex CLI가 필요하다. 여기에 Astra를 쓰려면 OpenAI 요구사항에 따라 Codex CLI 0.153.0 이상인지 반드시 확인한다.
npm install -g codex-for-claude-code@latest설치 후 기본 실행 명령은 다음과 같다.
claude-codex3. Windows에서 Claude 실행 파일을 찾지 못할 때
내 환경에서는 브리지가 Claude Code 바이너리를 자동으로 찾지 못했다. 실제 실행 파일 위치를 환경 변수로 지정해 해결했다.
$env:CLAUDE_CODEX_CLAUDE_BIN="$HOME\.local\bin\claude.exe"
cd C:\path\to\your-project
claude-codex이후 테마를 고르는 첫 실행 화면이 나타났다. 오류가 아니라 브리지가 일반 Claude Code와 분리된 설정 디렉터리를 사용하기 때문에 새 환경처럼 보인 것이었다.
/ 04 · SECTION
모델 목록에 GPT-6 Astra가 없었다
Astra 전환에서는 모델 선택기에 나타나는 목록을 신뢰하기보다 OpenAI가 공개한 공식 모델 ID를 직접 지정하는 방식을 기본 경로로 삼는 편이 명확하다. 현재 공식 ID는 gpt-6-astra다.

claude-codex --model gpt-6-astra이 명령으로 TUI가 열리면 먼저 /status를 확인한다. 모델이 거부되면 이름을 임의로 바꾸지 말고, Codex CLI 버전이 0.153.0 이상인지, 현재 ChatGPT 계정에 Astra가 롤아웃됐는지, 그리고 브리지 최신 버전에서 해당 모델을 전달할 수 있는지를 차례로 확인한다.
/ 05 · SECTION
더 큰 문제: 기존 세션이 보이지 않았다
이제 기존에 사용하던 장기 세션을 열기 위해 /resume을 실행했다. 그러나 방금 브리지에서 만든 테스트 세션만 표시되고 기존 세션은 보이지 않았다.
원인은 두 설정 디렉터리의 분리였다.
일반 Claude Code: ~/.claude
브리지 실행 환경: ~/.claude-codexcodex-for-claude-code는 Codex 모델 선택 상태가 일반 Claude Code 창에 섞이지 않도록 별도의 CLAUDE_CONFIG_DIR을 사용한다. README는 공유 자산을 연결해 상호 운용성을 제공한다고 설명하지만, 내 Windows 환경에서는 기존 세션 기록이 자동으로 나타나지 않았다.

세션 ID를 직접 넣어도 실패
일반 Claude Code의 /status에서 세션 UUID를 확인한 뒤 직접 resume을 시도했다.
claude-codex `
--model gpt-6-astra `
--resume <SESSION_UUID>하지만 결과는 다음과 같았다.
No conversation found with session ID: <SESSION_UUID>세션 ID가 잘못된 것이 아니었다. 기존 JSONL은 ~/.claude 아래에 있었고, 브리지가 조회하는 ~/.claude-codex에는 없었다.
/ 06 · SECTION
원본을 보존하면서 세션 파일 복사하기
1. 기존 세션 찾기
먼저 일반 Claude Code의 /status에서 UUID를 확인한다.
$sessionId = "<SESSION_UUID>"
$src = Get-ChildItem "$HOME\.claude\projects" -Recurse -File |
Where-Object { $_.Name -eq "$sessionId.jsonl" } |
Select-Object -First 1
$src | Select-Object FullName, Length2. 대상 디렉터리 만들기
if (-not $src) {
throw "Session file not found: $sessionId"
}
$projectDirName = Split-Path $src.DirectoryName -Leaf
$dstDir = Join-Path `
"$HOME\.claude-codex\projects" `
$projectDirName
New-Item -ItemType Directory -Force -Path $dstDir |
Out-Null3. 세션 파일 복사 및 크기 확인
$dst = Join-Path $dstDir $src.Name
Copy-Item `
-LiteralPath $src.FullName `
-Destination $dst
Get-Item $src.FullName, $dst |
Select-Object FullName, Length
이 작업은 실시간 세션 공유가 아니라 특정 시점의 복사본을 만드는 것이다. 이후 일반 Claude Code와 브리지 환경에서 이어간 기록은 자동 동기화되지 않는다.
/ 07 · SECTION
GPT-6 Astra과 기존 세션 함께 열기
$env:CLAUDE_CODEX_CLAUDE_BIN="$HOME\.local\bin\claude.exe"
cd C:\path\to\your-project
claude-codex `
--model "gpt-6-astra" `
--resume $sessionId기존 세션이 열린 뒤 /status를 실행해 최소한 다음 항목을 확인했다.
Session kind: interactive
Anthropic base URL: http://127.0.0.1:3099
Model: gpt-6-astra공개 전 필수: 터미널 스크린샷에서는 이메일, Windows 사용자명, 프로젝트의 민감한 경로, 실제 세션 UUID를 반드시 가려야 한다.
Astra에는 왜 [1m]을 붙이지 않았나?
OpenAI의 공식 모델 사양에서 GPT-6 Astra의 컨텍스트 창은 1.05M 토큰이다. 다만 이 글에서 사용하는 codex-for-claude-code 0.2.6의 현재 소스는 컨텍스트 윈도 테이블에 Astra를 명시적으로 등록하지 않고 있으며, README도 Astra용 [1m] 접미사 처리 방법을 문서화하지 않는다.
gpt-6-astra를 그대로 사용한다. Claude Code 화면의 로컬 컨텍스트 표시가 1.05M과 다르게 보일 수 있지만, 확인되지 않은 접미사를 임의로 붙여 백엔드 모델 ID까지 바꾸는 것보다 안전하다. 브리지가 Astra의 대형 컨텍스트 힌트를 공식적으로 지원하는 버전이 나오면 그때 별도로 적용하는 편이 낫다.
API 키 종량 과금과의 차이
OpenAI는 Codex 인증을 ChatGPT 로그인에 의한 구독 액세스와 API 키에 의한 사용량 기반 액세스로 구분한다. 이번 구성에서는 Codex CLI의 OAuth 인증을 사용했고 브리지에 별도의 OpenAI API 키를 입력하지 않았다.
하지만 이는 무제한 무료 사용을 뜻하지 않는다. ChatGPT 플랜에 포함된 Codex 사용량 제한은 그대로 적용된다.
/ 08 · SECTION
실행 중 나타난 경고와 판정
1. Write(...) 권한 규칙 경고
Write(~/.ssh/**) is not matched by file permission checks
Use Edit(~/.ssh/**) instead현재 버전에서는 파일 변경 권한 규칙에 Edit(path)를 사용하라는 의미다. 실행을 즉시 막지는 않았지만, 기존 보호 규칙이 의도대로 매칭되지 않을 수 있으므로 별도 정리가 필요하다.
2. agents 대상 누락
agents target missing공유하려는 agents 디렉터리가 존재하지 않아 발생했다. 사용자 정의 에이전트를 사용하지 않는 현재 실행에서는 차단 요소가 아니었다.
3. 큰 CLAUDE.md
Large CLAUDE.md will impact performance프로젝트 지침 파일이 권장 경계보다 크다는 성능 경고다. 실행은 가능하지만 요청마다 읽히는 지침이 지나치게 크면 속도와 컨텍스트 사용량에 영향을 줄 수 있다.
/ 09 · SECTION
다음 실행부터 사용하는 명령
브리지 쪽에 세션 복사본이 생성됐으므로 매번 대형 JSONL을 다시 복사할 필요는 없다.
$env:CLAUDE_CODEX_CLAUDE_BIN="$HOME\.local\bin\claude.exe"
cd C:\path\to\your-project
claude-codex --model "gpt-6-astra"Claude Code가 열리면 /resume에서 브리지 환경에 저장된 세션을 선택한다. 또는 다음처럼 UUID를 직접 전달한다.
claude-codex `
--model "gpt-6-astra" `
--resume "<SESSION_UUID>"/ 10 · SECTION
오늘의 결론
처음 기대했던 것처럼 명령 하나로 끝나지는 않았다. 모델 목록, Windows 실행 파일 탐지, 설정 디렉터리 격리, 기존 세션 검색 문제가 차례로 나타났다.
모델이 안 보임
→ --model로 직접 지정
기존 세션이 안 보임
→ ~/.claude와 ~/.claude-codex 분리 확인
세션 ID resume 실패
→ 필요한 JSONL만 복사
최종 검증
→ /status에서 프록시 주소와 모델 확인도구가 세션을 공유하거나 모델을 지원한다고 설명하더라도, 실제 Windows 환경에서 설정 경로·세션 저장소·모델 매핑이 동일하게 작동하는지는 직접 확인해야 한다.
이 구성에서는 설치 명령보다 /status, 실제 파일 위치, 그리고 로그 한 줄이 더 많은 것을 알려준 날이었다.
/ 11 · SECTION
