Диагностика · Codex CLI

Codex CLI: Missing OPENAI_API_KEY — настройка своего провайдера

Codex отказывается стартовать, когда не задана переменная окружения, которую ждёт его провайдер. Как работает env_key в config.toml, почему export исчезает между оболочками, и рабочий профиль.

Что вы видите

Missing OPENAI_API_KEY

Почему возникает

  • Переменная окружения, названная в env_key провайдера, не задана в оболочке, запускающей codex. У своего провайдера переменная может называться как угодно — ошибка называет ту, которой не хватает.
  • Ключ экспортирован в другом терминале или добавлен в файл профиля, который эта оболочка никогда не читала.
  • Переменная задана, но пуста — это считается отсутствием.
  • Используемый профиль указывает не на того провайдера, который вы думаете, поэтому Codex ищет не ту переменную, которую вы экспортировали.

Что делать

  • Объявите провайдера в профиле и экспортируйте именно ту переменную, которую называет его env_key, в той же оболочке, перед запуском codex.
  • Выведите переменную прямо перед запуском, чтобы убедиться, что она дожила: export действует в пределах оболочки, а не глобально.
  • Запускайте codex с явно названным профилем, чтобы не было двусмысленности, какой провайдер — и какой env_key — активен.

Рабочий профиль для этого шлюза

# ~/.codex/apitoken.config.toml
model = "gpt-5.6-sol"
model_provider = "apitoken"

[model_providers.apitoken]
name = "apiToken.sale"
base_url = "https://openai.api.apitoken.sale/v1"
wire_api = "responses"
env_key = "APITOKEN_API_KEY"

# then, in the same shell:
export APITOKEN_API_KEY="sk-pool-•••"
codex --profile apitoken

Похожие запросы

  • OPENAI_API_KEY environment variable not set
  • codex api key not found

Вопросы и ответы

Нужен ли ключ аккаунта OpenAI, чтобы запустить Codex CLI?+
Нет. Со своим провайдером модели env_key называет любую переменную на ваш выбор, и ключ выдаёт этот провайдер — сам OPENAI_API_KEY лишь переменная дефолтного провайдера.
Я экспортировал ключ, но Codex всё равно говорит, что его нет — почему?+
Export действует в пределах оболочки. Если codex запускается в другом терминале, панели мультиплексора или задаче IDE, то это окружение вашего export никогда не видело. Задайте переменную там, где codex реально работает.
Где должен жить ключ — в TOML или в оболочке?+
В оболочке. config.toml хранит только имя переменной через env_key, поэтому секрет никогда не лежит в файле конфигурации.

Пропустите сломанную настройку

apiToken.sale отдаёт стандартный Anthropic API — те же модели, те же SDK, один предоплаченный баланс. Направьте base URL вашего инструмента на него, и конфигурация с этой страницы заработает как написано.