// интеграция

Codex CLI через teamToken

Codex умеет ходить к произвольному провайдеру, и это описывается одним блоком в конфиге. Ниже точные поля, проверка одной командой и объяснение того, почему Codex заводится не на всяком шлюзе, который называет себя OpenAI-совместимым.

Что это за инструмент

Codex CLI это агент от OpenAI, который живёт в терминале и правит файлы в проекте. Провайдер у него не прибит гвоздями: в конфиге объявляется свой, и дальше инструмент работает как обычно, то есть ни расширений ставить, ни ждать, пока сервис появится в чьём-то встроенном списке, не нужно.

Конфиг целиком

# ~/.codex/config.toml
model = "gpt-5.3-codex"
model_provider = "teamtoken"

[model_providers.teamtoken]
name = "teamToken"
base_url = "https://api.teamtoken.store/v1"
env_key = "TEAMTOKEN_KEY"
wire_api = "responses"

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

Codex говорит по Responses, и это умеет не всякий шлюз

Поле wire_api в конфиге выглядит как одна из настроек, а на деле это про протокол. С 2026 года у Codex допустимое значение ровно одно, responses, и оно же подставляется, если поле не указать вовсе. Никаких вариантов тут нет и выбирать не из чего.

Отсюда следствие, которое объясняет чужие неудачи. Codex обращается к /v1/responses, а не к привычному /v1/chat/completions, и «совместимый с OpenAI» у многих шлюзов означает только второе. Человек прописывает адрес, всё выглядит правильно, а в ответ приходит отказ, по которому непонятно, что именно не так.

Мы этот маршрут поддерживаем: /v1/responses принимается наравне с chat-совместимым, стриминг по нему тоже идёт. Так что настройка сводится к копированию блока выше, без выяснения, какой протокол на другом конце.

Проверка

export TEAMTOKEN_KEY="<ваш ключ>"
codex --model gpt-5.3-codex "какой сейчас файл открыт"

Ответ означает, что дошли и конфиг, и ключ. Дальше можно убрать --model: значение из model в конфиге подставится само.

Какие модели брать

МодельКогда
gpt-5.3-codexосновная рабочая модель, заточена под код
codex-auto-reviewпросмотр чужого диффа перед мержем
gpt-5.6-solкогда задача шире кода: доки, разбор логов, планирование
gpt-5.4-miniмелочи, где тяжёлая модель избыточна

Полный список отдаёт GET /v1/models тем же ключом, а поменять модель можно на лету флагом --model, не трогая конфиг.

Лимит трат на ключ

Агент, которому дали большую задачу, тратит непредсказуемо. В кабинете на каждый ключ ставится свой потолок в долларах: выдали ключ под Codex, поставили $30, и дальше он не уйдёт. Баланс при этом общий, а лимит только на этом ключе.

Если не работает

Запускается, но ответа нет
Проверьте, что шлюз в base_url действительно наш. Codex пойдёт на /v1/responses, и шлюз, умеющий только chat-совместимый маршрут, ответит отказом, по которому причина не читается.
Ключ не подхватывается
Codex читает его из переменной, названной в env_key. Проверьте, что она видна процессу в том же терминале, а не только в другом окне.
Модель не найдена
Имя должно совпадать с каталогом. Сверьтесь с GET /v1/models: имена там без префикса провайдера.
Нужен ли VPN
Нет, api.teamtoken.store открывается из России напрямую. Пополнение картой, через СБП или криптой, от доллара.
Рядом
Claude CodeПереезд с OpenRouterКартинки тем же ключом
Получить ключ