콘텐츠로 이동
무료 가입
Codex

Codex: 외부 API와 공식 로그인·기록 유지

Codex 공식 로그인을 유지하면서 수동 config.toml 또는 CC Switch로 타사 API를 사용하는 방법. 인증, 모델, 선택적 조정, 세션 기록과 오류를 설명합니다.

모델 요청에 BetterToken API Key를 사용하면서 Codex 공식 로그인을 유지합니다. 수동 설정과 CC Switch는 공식 로그인 정보와 타사 API 인증 정보를 분리합니다.

시작 전 준비

Codex App, Codex CLI 또는 Extension에서 공식 계정으로 로그인합니다. BetterToken API Key와 모델 광장의 전체 Model ID를 준비합니다. 설정을 공유하려면 클라이언트가 같은 CODEX_HOME을 사용해야 합니다.

BetterToken API Key · 모델 광장

설정 방법

수동 설정

공식 인증 정보 유지

Codex를 완전히 종료하고 설정을 비공개로 백업합니다. 공식 인증 정보는 auth.json 또는 OS 인증 저장소에 있을 수 있습니다. 기존 저장 방식을 유지하고 API Key JSON으로 바꾸거나 가짜 로그인 파일을 만들지 마세요.

config.toml 수정

사용자 config.toml을 엽니다. 기본값은 macOS / Linux의 ~/.codex/config.toml 또는 Windows의 %USERPROFILE%\.codex\config.toml입니다. 사용자 지정 CODEX_HOME이 있으면 해당 디렉터리를 사용합니다. 최상위 키를 모든 TOML 테이블 앞에 두고 설정을 병합하며 테이블을 중복 생성하지 않습니다. 로컬에서 YOUR_API_KEY를 BetterToken API Key로 바꿉니다.

model_provider = "bettertoken"
model = "gpt-6-astra"
[model_providers.bettertoken]
name = "BetterToken"
base_url = "https://bettertoken.ai/v1"
wire_api = "responses"
requires_openai_auth = true
experimental_bearer_token = "YOUR_API_KEY"
supports_websockets = false

공식 로그인으로 생성한 인증 정보를 유지하고 API Key JSON으로 바꾸지 마세요. requires_openai_auth = true는 공식 인증 절차를 사용하며 현재 provider의 experimental_bearer_token이 모델 요청용 타사 Key를 제공합니다. 전자가 활성화되면 Codex는 env_key를 무시하므로 Bearer Key를 직접 대체하지 마세요. Key가 있는 설정 파일을 공유하지 마세요.

설정 매개변수

매개변수역할과 위치기본값과 예시
model_provider사용자 설정 최상위; 아래에 정의한 ID를 선택합니다.기본값 openai; 여기서는 bettertoken.
model최상위; 모델 광장의 전체 Model ID.예시 gpt-6-astra; 필요에 따라 변경합니다.
nameprovider 테이블; 표시 이름만 지정합니다.BetterToken은 Model ID가 아닙니다.
base_urlprovider 테이블; 모델 API의 Base URL.https://bettertoken.ai/v1을 사용하면 Codex가 /responses를 붙입니다.
wire_apiprovider 테이블; 요청 프로토콜.현재 responses만 지원하며 생략 시 기본값도 같습니다.
requires_openai_authprovider 테이블; OpenAI 인증과 인증 정보 저장소를 사용합니다.기본값 false; 여기서는 true. 로그인 파일 유지 스위치가 아닙니다.
experimental_bearer_tokenprovider 테이블; 타사 요청용 Bearer Key.BetterToken API Key를 입력합니다. 공식 로그인 캐시는 덮어쓰지 않습니다. 지원되지만 평문으로 저장됩니다.
supports_websocketsprovider 테이블; Responses WebSocket 지원.기본값 false; 여기서는 HTTP/SSE를 유지합니다.

선택적 모델 및 연결 설정

두 설정은 config.toml 최상위에 둡니다. 선택 사항이며 로그인 유지의 필수 조건이 아닙니다.

review_model = "gpt-6-astra"
model_reasoning_effort = "high"
매개변수역할과 위치기본값과 예시
review_model최상위; /review에서 사용할 모델.선택 사항; 기본값은 현재 세션 모델입니다.
model_reasoning_effort최상위; 모델의 추론 강도.예시 high; 지원 단계와 기본값은 모델에 따라 다릅니다.

이 세 설정은 선택적 조정이며 연결의 필수 조건이 아닙니다. 필요하면 기존 [model_providers.bettertoken] 테이블에 추가하고 같은 이름의 테이블을 또 만들지 마세요.

request_max_retries = 4
stream_max_retries = 8
stream_idle_timeout_ms = 300000
매개변수역할과 위치기본값과 예시
request_max_retriesprovider 테이블; HTTP 요청의 최대 재시도 횟수.기본값 4; 연결 상태에 맞게 조정합니다.
stream_max_retriesprovider 테이블; 스트림 중단 후 재연결 횟수.기본값 5; 8은 선택적 사용자 지정 값입니다.
stream_idle_timeout_msprovider 테이블; 스트림 비활성 시간 제한, 밀리초 단위.기본값 300000; 작업 전체의 시간 제한이 아닙니다.

CC Switch 설정

  1. 현재 CC Switch에서 OpenAI Official을 선택하고 Codex를 실행해 공식 계정으로 로그인합니다.

  2. 설정 → 앱 설정 → Codex에서 인계 없이 전환할 때 공식 로그인 유지를 켭니다. 이 스위치는 직접 전환을 제어하며 라우팅 인계 중에는 로그인이 유지됩니다.

  3. Codex 페이지에서 BetterToken을 추가하거나 활성화합니다. Base URL https://bettertoken.ai/v1, OpenAI Responses API, BetterToken API Key, Model ID를 입력합니다. BetterToken은 Responses를 직접 지원하므로 프로토콜 변환이나 라우팅 인계가 필요 없습니다.

  4. 저장하고 활성화합니다. 타사 Key는 config.toml의 provider 설정에 저장되며 공식 auth.json에는 쓰지 않습니다.

세션 기록 통합 (선택)

Codex 세션 기록 통합은 CLI의 resume 목록에만 영향을 줍니다. 현재 데스크톱은 전체 세션을 표시하므로 이 스위치가 필요 없습니다. 필요하면 기존 기록을 이전하며 CC Switch가 먼저 백업합니다. 다른 provider에서 이어 가면 encrypted_content 호환성 문제로 실패할 수 있으므로 전환 후 새 세션을 시작합니다.

재시작 후 확인

  1. 사용하는 Codex 클라이언트를 완전히 종료하고 재시작한 뒤 새 세션을 만듭니다.

  2. 공식 로그인을 확인하고 해당 기능을 지원하는 클라이언트에서 플러그인 또는 Remote Control을 확인합니다.

  3. 짧은 요청을 보내 Model ID와 BetterToken 사용 로그를 확인합니다. 표시된 계정만으로 모델 요청의 청구 주체를 확인할 수는 없습니다.

설정 계층과 이전 키

모델과 추론 설정을 [projects."<path>"]에 넣지 마세요. 프로젝트별 모델은 신뢰한 프로젝트의 .codex/config.toml 최상위에 둘 수 있지만 provider와 인증은 사용자 설정에 둡니다. 현재 profile은 CODEX_HOME의 NAME.config.toml을 codex --profile NAME으로 선택합니다. 이전 [profiles.NAME] 테이블이나 최상위 profile 선택자는 사용하지 않습니다.

문제 해결

증상조치
401, 403 또는 로그인 요청현재 CODEX_HOME, 공식 로그인, provider Key를 확인합니다. 공식 인증 정보를 API Key JSON으로 덮어쓰지 마세요.
설정 무시 또는 모델 변경 안 됨모델 키는 테이블 앞 최상위에 두고 [projects."<path>"]에 넣지 않습니다. CLI, profile, 프로젝트 재정의를 확인합니다.
disable_response_storage 또는 windows_wsl_setup_acknowledged이전 키를 제거하고 현재 설정에 사용하지 않습니다.
features.code_mode_tool_description_first출처가 session-flags라면 시작 플래그를 제공하는 클라이언트를 확인하고 업데이트합니다. 사용자 설정에 같은 키를 추가하지 않습니다.
features.guardianv2.thread_contextprofile 재정의를 포함해 이 키만 제거하고 다른 Guardian 설정은 유지합니다. 스레드 컨텍스트는 항상 활성화됩니다.
기록은 보이지만 다른 provider에서 이어 가기 실패새 세션을 시작하거나 원래 provider를 사용합니다.

참고 자료