Диагностика · 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 setcodex 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 вашего инструмента на него, и конфигурация с этой страницы заработает как написано.