사용자 지정 API 제공업체용 Codex config.toml: 2026년부터 Responses만 지원

Wokey Team · 2026-09-24

짧은 답: Codex가 서드파티 API를 쓰게 하려면 ~/.codex/config.toml에 사용자 지정 제공업체를 정의하고, base_url을 게이트웨이로 설정하고, env_key가 가리키는 환경 변수에 키를 넣으세요. 와이어 프로토콜은 반드시 Responses여야 합니다. Codex는 2026년 2월에 Chat Completions 지원을 제거했으며, 이제 wire_api = "chat"은 시작 시 실패합니다. 그래서 아직도 wire_api = "chat"을 보여 주는 튜토리얼 대부분은 더 이상 동작하지 않습니다.

아래 설정은 현재 Codex CLI 릴리스에서 동작합니다. 이 가이드의 모든 오류 문구는 Codex 소스 코드나 Wokey API의 실제 응답에서 인용했습니다.

전체 설정(복사해서 붙여 넣기)

# ~/.codex/config.toml
model = "gpt-6-sol"
model_provider = "wokey"

[model_providers.wokey]
name = "Wokey"
base_url = "https://api.wokey.ai"
env_key = "WOKEY_API_KEY"
wire_api = "responses"
export WOKEY_API_KEY="your Wokey API key"
codex

각 필드의 역할:

필드 용도 흔한 실수
model_provider 사용할 [model_providers.<id>] 테이블을 지정하는 최상위 키 빠뜨리면 Codex가 내장 openai 제공업체에 머물며 ChatGPT 로그인을 요구함
base_url 게이트웨이 주소. Codex가 /responses를 붙임 /responses를 직접 붙이면 요청이 /responses/responses로 감
env_key 키를 담은 환경 변수의 이름. Codex는 이를 Authorization: Bearer로 전송함 여기에는 키 자체가 아니라 변수 이름을 넣음
wire_api 와이어 프로토콜. 유효한 값은 "responses"뿐이며 기본값임 "chat"은 시작 시 실패함

Wokey에서는 base_url을 https://api.wokey.ai나 https://api.wokey.ai/v1 어느 쪽으로 해도 됩니다. 게이트웨이가 /responses와 /v1/responses를 모두 제공합니다. 다른 게이트웨이는 해당 문서를 따르세요. 많은 게이트웨이가 /v1 경로만 등록합니다.

변수 이름은 자유롭게 정할 수 있습니다. OPENAI_API_KEY도 되지만, 공식 OpenAI API도 함께 쓴다면 별도의 WOKEY_API_KEY를 두어 두 키가 서로 덮어쓰지 않게 하세요.

오래된 튜토리얼이 동작하지 않는 이유

경과:

그 뒤로 Codex의 WireApi에는 Responses라는 값 하나만 있습니다. 설정에 wire_api = "chat"이 남아 있으면 Codex는 시작 시 다음 오류로 실패합니다.

`wire_api = "chat"` is no longer supported.
How to fix: set `wire_api = "responses"` in your provider config.
More info: https://github.com/openai/codex/discussions/7782

wire_api = "responses"로 바꾸거나 해당 줄을 삭제하세요. 이는 또한 Chat Completions만 지원하는 게이트웨이는 더 이상 Codex를 지원할 수 없다는 뜻입니다. 게이트웨이를 고르기 전에 /v1/responses 엔드포인트가 있는지 확인하세요.

낡았거나 무시되는 기타 설정

제공업체 테이블 안의 api_key. Codex는 제공업체 설정의 알 수 없는 필드를 거부하므로, api_key = "sk-..." 줄이 있으면 설정 파싱이 실패합니다. 키는 env_key가 가리키는 변수로 전달하세요. 꼭 파일에 토큰을 넣어야 한다면 필드는 experimental_bearer_token이지만 권장하지 않습니다.

[profiles.xxx]와 최상위 profile = "xxx". Codex 0.134.0부터 --profile xxx는 ~/.codex/xxx.config.toml을 덧씌워 읽습니다. config.toml 안의 [profiles.xxx] 테이블은 더 이상 읽지 않으며, 최상위 profile =도 더 이상 지원되지 않습니다. 공식 계정과 게이트웨이를 오가려면 Wokey 제공업체를 ~/.codex/wokey.config.toml에 넣고 codex --profile wokey로 실행하세요.

프로젝트 .codex/config.toml의 제공업체. 프로젝트 수준 설정은 model_provider와 model_providers를 무시합니다. 제공업체는 홈 디렉터리의 ~/.codex/에서만 정의할 수 있습니다.

제공업체 id가 openai, ollama, lmstudio인 경우. 이 id들은 내장 제공업체용으로 예약되어 있어 사용자 지정 제공업체를 정의할 수 없습니다. wokey처럼 다른 이름을 쓰세요.

어떤 모델을 쓸까

Codex는 Responses 요청만 보내므로 /v1/responses를 기본 제공하는 모델을 우선하세요. Wokey에서는 현재 GPT 계열(gpt-6-sol, gpt-6-luna, gpt-6-astra, gpt-5.6-sol), Grok 계열(grok-4.7, grok-4.6), 그리고 deepseek-v4.1-flash가 해당합니다. 각 모델 페이지의 "지원 엔드포인트" 목록이 기준이며, 라인업은 시간에 따라 바뀝니다.

Chat Completions만 표시된 모델처럼 Responses를 기본 지원하지 않는 모델도 Wokey에서는 Codex로 쓸 수 있습니다. 게이트웨이가 요청을 업스트림 프로토콜로 변환하고 결과를 다시 Responses로 변환합니다. 다만 변환에는 손실이 있습니다.

  • Chat Completions로 변환할 때 freeform apply_patch, local_shell, 내장 web_search 같은 Codex 전용 도구 일부가 빠집니다.
  • 도구 호출은 전체 응답이 끝난 뒤에야 나타납니다.

주력 코딩 모델로는 Responses를 기본 지원하는 모델을 고르세요.

문제 해결

Missing environment variable: `WOKEY_API_KEY`. Codex가 env_key가 가리키는 변수를 찾지 못했습니다. 철자를 확인하고, codex를 실행하는 같은 터미널에서 export했는지 확인하세요. ~/.zshrc나 ~/.bashrc에 추가했다면 새 터미널을 여세요.

code가 invalid_api_key인 HTTP 401 키가 없거나 틀렸을 때 Wokey가 반환하며, message에 어떤 경우인지 나옵니다. 키가 전송되지 않음, 존재하지 않는 키, 또는 삭제·일시 중지·만료된 키입니다. 키가 완전히 복사되었는지, 콘솔에서 삭제나 일시 중지되지 않았는지, 변수에 불필요한 따옴표나 공백이 없는지 확인하세요.

Route POST:/responses/responses not found인 HTTP 404 base_url이 /responses로 끝납니다. Codex가 경로를 직접 붙이므로 base_url은 도메인(또는 /v1)까지만 써야 합니다.

Codex가 ChatGPT 로그인을 요구함 최상위 model_provider = "wokey"가 없거나, 제공업체가 무시되는 프로젝트 .codex/config.toml에 있습니다. Codex가 내장 openai 제공업체로 돌아간 상태입니다.

wire_api = "chat" is no longer supported 위를 참고하세요. "responses"로 바꾸거나 해당 줄을 삭제하세요.

HTTP 402 계정 잔액이 소진되었습니다.

Codex 문제가 아닌지 확인하려면 먼저 curl로 키와 엔드포인트를 테스트하세요.

curl https://api.wokey.ai/v1/responses \
  -H "Authorization: Bearer $WOKEY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-6-sol","input":"ping"}'

curl은 되는데 Codex는 안 된다면 문제는 config.toml에 있습니다. curl도 실패한다면 문제는 키나 네트워크에 있습니다.

자주 묻는 질문

Codex에서 아직 wire_api = "chat"을 쓸 수 있나요?

아닙니다. Codex는 2026-02-03에 병합된 PR #10157에서 Chat Completions 지원을 제거했습니다. 이제 wire_api는 responses만 받으며, chat은 시작 시 실패합니다. wire_api = "responses"로 바꾸거나 해당 줄을 삭제하세요. 기본값이 바로 이것입니다.

Codex의 base_url에 /v1을 붙여야 하나요?

Codex는 base_url 뒤에 /responses를 붙입니다. Wokey에서는 https://api.wokey.ai와 https://api.wokey.ai/v1 모두 동작합니다. /responses를 직접 붙이지 마세요. 붙이면 404 Route POST:/responses/responses not found가 반환됩니다.

API 키를 config.toml에 직접 넣을 수 있나요?

제공업체 테이블에 api_key 필드가 있으면 설정 파싱이 실패합니다. Codex는 알 수 없는 제공업체 필드를 거부하기 때문입니다. 대신 env_key로 환경 변수 이름을 지정하고 그 변수를 export하세요.

Codex에서 Claude 등 GPT가 아닌 모델을 쓸 수 있나요?

Wokey에서는 가능합니다. 게이트웨이가 Responses 요청을 업스트림 프로토콜로 변환합니다. 다만 변환 과정에서 Codex 전용 도구 일부가 빠지므로, 코딩에는 gpt-6-sol, grok-4.7, deepseek-v4.1-flash처럼 /v1/responses를 기본 지원하는 모델을 고르세요.

[profiles] 설정이 왜 작동하지 않게 되었나요?

Codex 0.134.0부터 --profile name은 ~/.codex/name.config.toml을 덧씌워 읽으며, config.toml 안의 [profiles.name] 테이블은 더 이상 읽지 않습니다. 해당 설정을 별도 파일로 옮기세요.