Skip to main content

Подключение в Codex CLI

Codex в режиме альфа-тестирования

Что это значит:

  • Нужен отдельный API-ключ: обычный ключ платформы Veai не подойдёт, запросите ключ для Codex у администратора Вашей организации
  • Доступен ограниченный набор моделей
  • DLP не работает: данные, которые Вы отправляете, не проверяются
  • Подключение работает только внутри Veai VPC

Если задачу можно решить другим инструментом, лучше выбрать его: остальные подключения работают без этих ограничений — см. список инструментов.

  1. Откройте или создайте файл ~/.codex/config.toml, где ~ обозначает Вашу домашнюю директорию

    • Если в файле уже есть настройки (их создаёт приложение ChatGPT), не удаляйте их
  2. Добавьте в самое начало файла три строки:

    model = "auto"
    model_provider = "veai"
    model_catalog_json = "./model-catalog-full.json"
  3. Добавьте в самый конец того же файла блок ниже:

    [model_providers.veai]
    name = "veai"
    base_url = "<YOUR_URL>"
    wire_api = "responses"
    requires_openai_auth = true
    • Замените <YOUR_URL> на выданный Вам OpenAI-compatible URL
      • Если Вы видите эту инструкцию, но у Вас нет OpenAI-compatible URL, обратитесь к администратору организации
  4. Создайте рядом с config.toml файл model-catalog-full.json со списком моделей Veai

    Скачать готовый файл model-catalog-full.json — или скопируйте его содержимое вручную:

    Содержимое файла model-catalog-full.json
    {
    "models": [
    {
    "slug": "auto",
    "id": "auto",
    "display_name": "Veai Auto",
    "description": "Автоматический выбор модели: высокое качество при максимальной доступности",
    "context_window": 372000,
    "max_output_tokens": 32768,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 1,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "OpenAI/gpt-5.6-sol",
    "id": "OpenAI/gpt-5.6-sol",
    "display_name": "OpenAI GPT-5.6 Sol",
    "description": "Самое высокое качество среди моделей OpenAI",
    "context_window": 372000,
    "max_output_tokens": 32768,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 2,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "OpenAI/gpt-5.6-terra",
    "id": "OpenAI/gpt-5.6-terra",
    "display_name": "OpenAI GPT-5.6 Terra",
    "description": "Баланс качества и скорости среди моделей OpenAI",
    "context_window": 372000,
    "max_output_tokens": 32768,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 3,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "OpenAI/gpt-5.6-luna",
    "id": "OpenAI/gpt-5.6-luna",
    "display_name": "OpenAI GPT-5.6 Luna",
    "description": "Самая быстрая и дешёвая среди моделей OpenAI",
    "context_window": 372000,
    "max_output_tokens": 32768,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 4,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "OpenAI/gpt-5.5",
    "id": "OpenAI/gpt-5.5",
    "display_name": "OpenAI GPT-5.5",
    "description": "Модель OpenAI прошлого поколения",
    "context_window": 272000,
    "max_output_tokens": 16384,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 5,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "Anthropic/fable-5",
    "id": "Anthropic/fable-5",
    "display_name": "Anthropic Fable 5",
    "description": "Самая мощная модель Anthropic",
    "context_window": 1000000,
    "max_output_tokens": 128000,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 6,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "Anthropic/opus-5",
    "id": "Anthropic/opus-5",
    "display_name": "Anthropic Opus 5",
    "description": "Высокое качество, дешевле Fable 5",
    "context_window": 1000000,
    "max_output_tokens": 65536,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 7,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "Anthropic/sonnet-5",
    "id": "Anthropic/sonnet-5",
    "display_name": "Anthropic Sonnet 5",
    "description": "Баланс качества и скорости среди моделей Anthropic",
    "context_window": 1000000,
    "max_output_tokens": 65536,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 8,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "Anthropic/haiku-4.5",
    "id": "Anthropic/haiku-4.5",
    "display_name": "Anthropic Haiku 4.5",
    "description": "Самая быстрая и дешёвая среди моделей Anthropic",
    "context_window": 264000,
    "max_output_tokens": 64000,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 9,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "none",
    "description": "none"
    },
    {
    "effort": "low",
    "description": "low"
    }
    ]
    }
    ]
    }

    Чтобы добавить модель, скопируйте любой блок и подставьте своё значение slug.

    • Поле priority задаёт порядок в списке выбора модели: чем меньше число, тем выше модель в списке
    • Чтобы получить весь список моделей, обратитесь к администратору организации или перейдите по ссылке <YOUR_URL>/models
    • Если после обновления Codex появилась ошибка failed to parse model_catalog_json, добавьте в каждую модель поле, указанное в тексте ошибки
  5. Откройте или создайте файл ~/.codex/auth.json и заполните его содержимым ниже:

    {
    "auth_mode": "apikey",
    "OPENAI_API_KEY": "<YOUR_API_KEY>"
    }
    • Замените <YOUR_API_KEY> на выданный Вам API-ключ
      • Если Вы видите эту инструкцию, но у Вас нет API-ключа, обратитесь к администратору организации
    • Аккаунт OpenAI не нужен: ключ используется только для запросов к Вашему шлюзу
    • Если Вы ранее входили через аккаунт ChatGPT, выполните codex logout и создайте файл заново
  6. Запустите Codex:

    codex
  7. Для выбора модели используйте /model

    • auto – автоматический выбор модели: высокое качество при максимальной доступности
    • OpenAI/gpt-5.6-sol – самое высокое качество среди моделей OpenAI
    • OpenAI/gpt-5.6-terra – баланс качества и скорости среди моделей OpenAI
    • OpenAI/gpt-5.6-luna – самая быстрая и дешёвая среди моделей OpenAI
    • OpenAI/gpt-5.5 – модель OpenAI прошлого поколения
    • Anthropic/fable-5 – самая мощная модель Anthropic
    • Anthropic/opus-5 – высокое качество, дешевле Fable 5
    • Anthropic/sonnet-5 – баланс качества и скорости среди моделей Anthropic
    • Anthropic/haiku-4.5 – самая быстрая и дешёвая среди моделей Anthropic
    • Список показывает по восемь моделей, остальные доступны прокруткой вниз

    Codex CLI: выбор модели

  8. Отправьте любое сообщение и убедитесь, что модель отвечает

    • Если появляется ошибка 404 Not Found, значит ключ неверный или отозванный: проверьте содержимое ~/.codex/auth.json либо обратитесь к администратору организации за перевыпуском ключа
Если Вы пользуетесь и Codex CLI, и приложением ChatGPT

Файл config.toml у них общий, а приложение умеет работать только с моделями OpenAI. Чтобы в приложении остались только рабочие модели, а в Codex CLI были доступны все, разделите каталоги:

  1. В config.toml укажите каталог для приложения: model_catalog_json = "./model-catalog.json" — и положите рядом файл model-catalog.json из инструкции Codex в ChatGPT

  2. Оставьте на месте и полный каталог model-catalog-full.json

  3. Создайте файл ~/.codex/full.config.toml с одной строкой:

    model_catalog_json = "./model-catalog-full.json"
  4. Запускайте Codex CLI с этим профилем:

    codex --profile full

В случае ошибок см. Значения ошибок.