Codex CLI

Актуальный контракт custom provider в Codex CLI и его совместимость с ToyGate.

Интеграции

Текущая совместимость

Custom provider в Codex CLI использует wire format OpenAI Responses API. Сейчас ToyGate предоставляет /v1/chat/completions, но не монтирует /v1/responses. Поэтому прямое подключение Codex CLI как custom provider пока недоступно: с конфигурацией ниже Codex отправит запрос, который шлюз отклонит с endpoint_not_supported.

Не направляйте OPENAI_BASE_URL на ToyGate для Codex и не используйте устаревшие примеры с codex chat или --stream. Они не меняют текущий wire protocol custom provider в Codex.

Официальная структура provider в Codex

Когда ToyGate начнёт поддерживать /v1/responses, настройте provider и профиль в ~/.codex/config.toml. Ключ gw_... храните в переменной окружения, а не в файле:

toml
[model_providers.toygate]name = "ToyGate"base_url = "https://api.toygate.store/v1"env_key = "TOYGATE_API_KEY"wire_api = "responses"[profiles.toygate]model_provider = "toygate"model = "gpt-5.5"
export TOYGATE_API_KEY="gw_..."

Для актуального Codex CLI требуется wire_api = "responses". Это не режим совместимости с Chat Completions, поэтому для текущего шлюза его нельзя заменить на chat.

Non-interactive команда после поддержки Responses

После реализации Responses endpoint запускайте Codex без интерактивного режима через именованный профиль:

Модель в профиле должна быть включённым слагом из каталога, а не внутренним ID модели upstream-провайдера.

Решение проблем

  • endpoint_not_supported для /v1/responses — ожидаемый результат в текущем runtime ToyGate. Codex требует Responses API для custom provider, а ToyGate пока поддерживает только Chat Completions.
  • HTTP 401 с type: "authentication_error" и code: null — после появления поддержки Responses это означает, что шлюз получил заголовок, но отклонил ключ. Проверьте префикс gw_ и убедитесь, что TOYGATE_API_KEY существует в клиентском кабинете или административной панели и не отозван.
  • 404 model_not_found — после появления поддержки Responses указанный слаг отсутствует в каталоге либо модель отключена. Получите актуальный список: curl <GatewayUrl/>/v1/catalog | jq '.data[].id'.

URL шлюза: https://api.toygate.store