Windows · Claude Code · Codex CLI

Claude Code에서 GPT-6 Astra 쓰기: 기존 세션까지 이어가는 Windows 실전 가이드

목표는 단순하다. Claude Code의 인터페이스와 오랫동안 쌓아온 세션 컨텍스트는 유지하면서, 실제 모델은 ChatGPT 계정으로 로그인한 Codex의 최신 GPT-6 Astra를 사용한다.

분야 · AI 개발 도구 / 개발 환경환경 · Windows · PowerShell형식 · 실전 설정 기록

하지만 실제로 해보니 설치보다 까다로운 문제가 따로 있었다. Claude Code 실행 파일 탐지, 모델 목록, 분리된 설정 디렉터리, 보이지 않는 기존 세션이 차례로 발목을 잡았다.

ASTRA 개정판원래 이 환경에서 세션 복구까지 실제 확인한 모델은 GPT-5.6 Sol이었다. 현재 개정판은 OpenAI가 공개한 최신 모델 ID gpt-6-astra와 Codex CLI 요구 버전을 기준으로 실행 절차를 갱신했다. 제3자 브리지의 Astra 호환성은 계정 롤아웃과 브리지 버전에 따라 달라질 수 있으므로, 아래 절차에서는 마지막 /status와 실제 응답 확인을 성공 기준으로 삼는다.
Claude Code
Local Proxy
Codex OAuth
GPT-6 Astra

왜 이런 방법까지 고민하게 되었나

나는 현재 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 단가에 따른 종량제로 차감된다.

5시간만 20배라는 뜻은 아니다 Max 20x는 하루 중 특정 5시간만 혜택을 주는 방식이 아니다. 하루 종일 사용할 수 있고, 5시간마다 재설정되는 단기 사용량 한도가 Pro보다 20배 높다. 다만 그 위에 별도의 주간 총한도가 적용되므로, 집중적인 Claude Code 작업에서는 5시간 한도가 재설정되더라도 주간 한도를 먼저 소진할 수 있다.

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 세션 안에 축적되어 있었다. 다른 도구에서 새 대화를 시작하면 이 컨텍스트를 다시 전달하고 검증해야 했다. 따라서 필요한 것은 새 AI 채팅창이 아니라 기존 Claude Code 세션을 유지한 채 다른 구독의 LLM을 활용하는 방법이었다.

그래서 질문을 다음처럼 바꾸었다.

Claude Code Max 한도가 소진된 뒤에도 기존 Claude Code 세션과 작업 인터페이스를 유지하면서, 별도로 구독 중인 ChatGPT Pro의 Codex 모델을 사용할 수 있을까?

오늘 진행한 검토와 시행착오는 바로 이 질문에서 시작됐다.

FOLLOW ALONG · QUICK START

이 글을 보면서 그대로 따라 하는 순서

처음 시도하는 사람은 아래 7단계를 먼저 한 번 훑은 뒤 실행하면 된다. 기존 세션을 옮길 필요가 없는 사람은 06단계를 건너뛰면 된다. 각 단계 아래의 ‘정상 기준’까지 확인하고 다음으로 넘어간다.

2026-09 Astra 기준: OpenAI의 공식 모델 ID는 gpt-6-astra이며, Codex에서 Astra를 사용하려면 Codex CLI 0.153.0 이상이 필요하다. 이 글의 브리지는 OpenAI/Anthropic 공식 통합이 아닌 제3자 도구이므로 마지막 검증은 반드시 실제 응답까지 확인한다.
01

버전 확인

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 이상

02

ChatGPT 계정으로 Codex 로그인

API 키를 넣는 절차가 아니다. Codex CLI에서 ChatGPT OAuth 로그인을 완료한다.

codex login

401이 나오면 · codex를 한 번 실행해 OAuth 토큰을 갱신한 뒤 재시도

03

브리지 설치

현재 글에서 사용하는 제3자 브리지 codex-for-claude-code를 전역 설치한다.

npm install -g codex-for-claude-code@latest

정상 기준 · claude-codex 명령을 실행할 수 있어야 함

04

프로젝트 폴더에서 Astra로 실행

모델 선택기에 Astra가 없어도 공식 모델 ID를 직접 지정한다.

cd C:\path\to\your-project
claude-codex --model gpt-6-astra

정상 기준 · Claude Code TUI가 열리고 요청이 127.0.0.1:3099 프록시를 통과

05

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

오류가 없다면 · 이 단계는 건너뛴다

06

기존 세션을 이어갈 때만

/resume에 기존 세션이 보이면 그대로 선택한다. 보이지 않을 때만 이 글의 세션 복사 절차를 수행한다.

/resume

중요 · ~/.claude 전체를 덮어쓰지 말고 필요한 JSONL 하나만 복사

07

마지막 검증

세션을 연 뒤 /status에서 프록시 주소와 실제 모델을 확인하고 작은 작업 하나를 실행한다.

/status

확인할 값 · Anthropic base URL = http://127.0.0.1:3099 · Model = gpt-6-astra

최종적으로 확인된 환경

운영체제Windows
터미널PowerShell
Claude Code2.1.260
Codex CLI0.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 이상이 필요하며, 계정별 제공 여부는 순차 롤아웃에 따라 다를 수 있다.

Codex 로그인과 브리지 설치

처음에는 OmniRoute와 LiteLLM 같은 경로도 검토했다. 하지만 내 목적은 복잡한 멀티 프로바이더 라우팅이 아니었다.

  1. Claude Code의 인터페이스와 도구를 계속 사용할 것
  2. 이미 로그인된 Codex CLI 인증을 재사용할 것
  3. 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-codex

3. Windows에서 Claude 실행 파일을 찾지 못할 때

내 환경에서는 브리지가 Claude Code 바이너리를 자동으로 찾지 못했다. 실제 실행 파일 위치를 환경 변수로 지정해 해결했다.

$env:CLAUDE_CODEX_CLAUDE_BIN="$HOME\.local\bin\claude.exe"

cd C:\path\to\your-project
claude-codex

이후 테마를 고르는 첫 실행 화면이 나타났다. 오류가 아니라 브리지가 일반 Claude Code와 분리된 설정 디렉터리를 사용하기 때문에 새 환경처럼 보인 것이었다.

모델 목록에 GPT-6 Astra가 없었다

Astra 전환에서는 모델 선택기에 나타나는 목록을 신뢰하기보다 OpenAI가 공개한 공식 모델 ID를 직접 지정하는 방식을 기본 경로로 삼는 편이 명확하다. 현재 공식 ID는 gpt-6-astra다.

Claude Code 세션을 Codex GPT-6 Astra 브리지로 전환하는 전체 흐름
브리지의 모델 선택 목록이 OpenAI의 최신 모델 출시와 동시에 갱신된다고 가정하지 않는다. 실행 시 모델 ID를 직접 지정하고 실제 응답으로 검증한다.
claude-codex --model gpt-6-astra

이 명령으로 TUI가 열리면 먼저 /status를 확인한다. 모델이 거부되면 이름을 임의로 바꾸지 말고, Codex CLI 버전이 0.153.0 이상인지, 현재 ChatGPT 계정에 Astra가 롤아웃됐는지, 그리고 브리지 최신 버전에서 해당 모델을 전달할 수 있는지를 차례로 확인한다.

더 큰 문제: 기존 세션이 보이지 않았다

이제 기존에 사용하던 장기 세션을 열기 위해 /resume을 실행했다. 그러나 방금 브리지에서 만든 테스트 세션만 표시되고 기존 세션은 보이지 않았다.

원인은 두 설정 디렉터리의 분리였다.

일반 Claude Code:  ~/.claude
브리지 실행 환경: ~/.claude-codex

codex-for-claude-code는 Codex 모델 선택 상태가 일반 Claude Code 창에 섞이지 않도록 별도의 CLAUDE_CONFIG_DIR을 사용한다. README는 공유 자산을 연결해 상호 운용성을 제공한다고 설명하지만, 내 Windows 환경에서는 기존 세션 기록이 자동으로 나타나지 않았다.

Claude Code 요청이 Windows PC의 로컬 프록시를 거쳐 Codex 모델로 전달되는 구조를 표현한 이미지
브리지는 로컬 3099 포트에서 Claude 형식과 Codex 요청 형식을 중계한다.

세션 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에는 없었다.

원본을 보존하면서 세션 파일 복사하기

먼저 알아둘 점 세션 JSONL에는 대화와 도구 실행 기록이 포함될 수 있다. 공개 업로드나 공유를 피하고, 전체 설정 디렉터리를 덮어쓰지 말고 필요한 세션 하나만 복사하는 편이 안전하다.

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, Length

2. 대상 디렉터리 만들기

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-Null

3. 세션 파일 복사 및 크기 확인

$dst = Join-Path $dstDir $src.Name

Copy-Item `
  -LiteralPath $src.FullName `
  -Destination $dst

Get-Item $src.FullName, $dst |
  Select-Object FullName, Length
기존 Claude Code 대형 세션 파일의 복사본을 안전한 별도 폴더로 옮긴 뒤 다시 여는 과정
원본을 이동하거나 덮어쓰지 않고 브리지 환경에 복사본만 만들었다.
이 작업은 실시간 세션 공유가 아니라 특정 시점의 복사본을 만드는 것이다. 이후 일반 Claude Code와 브리지 환경에서 이어간 기록은 자동 동기화되지 않는다.

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] 접미사 처리 방법을 문서화하지 않는다.

복사해서 쓸 명령은 공식 모델 ID 그대로 그래서 이 개정판의 실행 명령은 gpt-6-astra를 그대로 사용한다. Claude Code 화면의 로컬 컨텍스트 표시가 1.05M과 다르게 보일 수 있지만, 확인되지 않은 접미사를 임의로 붙여 백엔드 모델 ID까지 바꾸는 것보다 안전하다. 브리지가 Astra의 대형 컨텍스트 힌트를 공식적으로 지원하는 버전이 나오면 그때 별도로 적용하는 편이 낫다.

API 키 종량 과금과의 차이

OpenAI는 Codex 인증을 ChatGPT 로그인에 의한 구독 액세스와 API 키에 의한 사용량 기반 액세스로 구분한다. 이번 구성에서는 Codex CLI의 OAuth 인증을 사용했고 브리지에 별도의 OpenAI API 키를 입력하지 않았다.

하지만 이는 무제한 무료 사용을 뜻하지 않는다. ChatGPT 플랜에 포함된 Codex 사용량 제한은 그대로 적용된다.

실행 중 나타난 경고와 판정

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

프로젝트 지침 파일이 권장 경계보다 크다는 성능 경고다. 실행은 가능하지만 요청마다 읽히는 지침이 지나치게 크면 속도와 컨텍스트 사용량에 영향을 줄 수 있다.

다음 실행부터 사용하는 명령

브리지 쪽에 세션 복사본이 생성됐으므로 매번 대형 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>"

오늘의 결론

처음 기대했던 것처럼 명령 하나로 끝나지는 않았다. 모델 목록, Windows 실행 파일 탐지, 설정 디렉터리 격리, 기존 세션 검색 문제가 차례로 나타났다.

✓ Claude Code 인터페이스 유지
✓ 기존 장기 세션 복사본 재사용
✓ Codex CLI의 ChatGPT OAuth 사용
✓ GPT-6 Astra 공식 모델 ID 직접 지정
모델이 안 보임
→ --model로 직접 지정

기존 세션이 안 보임
→ ~/.claude와 ~/.claude-codex 분리 확인

세션 ID resume 실패
→ 필요한 JSONL만 복사

최종 검증
→ /status에서 프록시 주소와 모델 확인
도구가 세션을 공유하거나 모델을 지원한다고 설명하더라도, 실제 Windows 환경에서 설정 경로·세션 저장소·모델 매핑이 동일하게 작동하는지는 직접 확인해야 한다.

이 구성에서는 설치 명령보다 /status, 실제 파일 위치, 그리고 로그 한 줄이 더 많은 것을 알려준 날이었다.

참고 자료

EDITORIAL NOTE

Astra 개정 및 공식 문서 재검증 기준: 2026년 9월 11일. 원래 세션 복구 실측은 GPT-5.6 Sol에서 수행되었고, Astra 관련 모델 ID·컨텍스트·Codex CLI 최소 버전은 현재 OpenAI 공식 문서 기준으로 갱신했다. 제3자 브리지의 실제 호환성은 실행 환경에서 최종 확인해야 한다.

위로 스크롤