> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Использование Codex с CometAPI

> Используйте это руководство, чтобы настроить Codex с CometAPI в качестве провайдера моделей, отредактировав параметры provider в пользовательском config.toml.

Используйте это руководство, чтобы запускать [Codex](https://developers.openai.com/codex/quickstart) с CometAPI в качестве провайдера моделей.

Официальные материалы:

* [Быстрый старт Codex](https://developers.openai.com/codex/quickstart)
* [Основы конфигурации Codex](https://developers.openai.com/codex/config-basic)
* [Пользовательские провайдеры моделей в Codex](https://developers.openai.com/codex/config-advanced#custom-model-providers)
* [Аутентификация Codex](https://developers.openai.com/codex/auth)
* [Codex в Windows](https://developers.openai.com/codex/windows)

## Предварительные требования

| Требование       | Подробности                                                                                                          |
| ---------------- | -------------------------------------------------------------------------------------------------------------------- |
| OS               | macOS, Linux, Windows native PowerShell или Windows с WSL                                                            |
| Git              | Рекомендуется 2.23+                                                                                                  |
| Codex            | Установите приложение Codex или Codex CLI из [быстрого старта Codex](https://developers.openai.com/codex/quickstart) |
| CometAPI API key | Получите ключ в [панели управления CometAPI](https://www.cometapi.com/console/token)                                 |
| Model ID         | Используйте model ID со страницы [Models](/ru/overview/models)                                                       |

## Выберите способ настройки

Мы предлагаем два варианта, чтобы помочь вам быстро настроить Codex.

<CardGroup cols={2}>
  <Card title="Вариант 1: Настроить Codex вручную (рекомендуется)" icon="bolt" href="#configure-codex-manually">
    Напрямую отредактируйте пользовательский файл `~/.codex/config.toml`. Это самый надежный способ, особенно для пользователей Windows и WSL.
  </Card>

  <Card title="Вариант 2: Настройка через скрипт" icon="puzzle-piece" href="#run-the-setup-script">
    Запустите скрипт настройки как быстрый способ. Он записывает ту же конфигурацию provider и сохраняет CometAPI API key для Codex.
  </Card>
</CardGroup>

## Настройка Codex вручную

Codex считывает персональные настройки провайдера по умолчанию из пользовательского файла `~/.codex/config.toml`. Настраивайте провайдера CometAPI именно там, а не в файле проекта `.codex/config.toml`. Codex игнорирует настройки provider и provider-auth в файлах конфигурации проекта.

Рекомендуемая настройка использует именованный провайдер `cometapi` и аутентификацию через команду. Это позволяет держать CometAPI отдельно от встроенного провайдера OpenAI, не требует наследования переменных окружения из shell и не заменяет `~/.codex/auth.json`.

<Tabs>
  <Tab title="macOS / Linux / WSL">
    Сохраните ваш API-ключ CometAPI в локальном файле ключа:

    ```bash theme={null}
    mkdir -p "$HOME/.codex"
    printf "%s\n" "$COMETAPI_KEY" > "$HOME/.codex/cometapi_key"
    chmod 600 "$HOME/.codex/cometapi_key"
    ```

    Добавьте эту конфигурацию в `~/.codex/config.toml`:

    ```toml theme={null}
    model_provider = "cometapi"
    model = "your-model-id"

    [model_providers.cometapi]
    name = "CometAPI"
    base_url = "https://api.cometapi.com/v1"
    wire_api = "responses"

    [model_providers.cometapi.auth]
    command = "sh"
    args = ["-c", "cat \"$HOME/.codex/cometapi_key\""]
    ```
  </Tab>

  <Tab title="Windows PowerShell">
    Сохраните ваш API-ключ CometAPI в домашнем каталоге Codex в Windows:

    ```powershell theme={null}
    New-Item -ItemType Directory -Force "$HOME\.codex" | Out-Null
    Set-Content -NoNewline -Path "$HOME\.codex\cometapi_key" -Value $env:COMETAPI_KEY
    ```

    Добавьте эту конфигурацию в `$HOME\.codex\config.toml`:

    ```toml theme={null}
    model_provider = "cometapi"
    model = "your-model-id"

    [model_providers.cometapi]
    name = "CometAPI"
    base_url = "https://api.cometapi.com/v1"
    wire_api = "responses"

    [model_providers.cometapi.auth]
    command = "powershell.exe"
    args = [
      "-NoProfile",
      "-Command",
      "$p=Join-Path $HOME '.codex/cometapi_key'; (Get-Content -Raw $p).Trim()",
    ]
    ```
  </Tab>
</Tabs>

<Note>
  Нативный Codex в Windows использует `$HOME\.codex`, обычно `C:\Users\<user>\.codex`. WSL использует `~/.codex` дистрибутива Linux. Изменяйте каталог, соответствующий среде, в которой работает агент Codex.
</Note>

## Использование аутентификации через переменную окружения

Если вы предпочитаете хранить API-ключ CometAPI в переменной окружения, используйте `env_key` вместо блока `[model_providers.cometapi.auth]`.

Используйте эту конфигурацию провайдера только если `COMETAPI_KEY` доступен в окружении, из которого запускается Codex:

```toml theme={null}
model_provider = "cometapi"
model = "your-model-id"

[model_providers.cometapi]
name = "CometAPI"
base_url = "https://api.cometapi.com/v1"
wire_api = "responses"
env_key = "COMETAPI_KEY"
```

<Warning>
  Не используйте одновременно `env_key` и `[model_providers.cometapi.auth]`. Codex поддерживает один метод аутентификации для каждого пользовательского провайдера.
</Warning>

## Запустите скрипт настройки

Скрипт настройки необязателен. Он записывает ту же конфигурацию provider `cometapi` в `~/.codex/config.toml`, сохраняет ваш API-ключ CometAPI в `~/.codex/cometapi_key`, создает резервные копии перед изменением файлов и проверяет конфигурацию с помощью `codex exec`, если доступен Codex CLI.

Для macOS, Linux или WSL запустите интерактивный установщик:

```bash theme={null}
sh -c "$(curl -fsSL https://raw.githubusercontent.com/cometapi-dev/integrations/main/codex/setup.sh)"
```

Для неинтерактивной настройки передайте API-ключ явно:

```bash theme={null}
curl -fsSL https://raw.githubusercontent.com/cometapi-dev/integrations/main/codex/setup.sh | sh -s -- --key "$COMETAPI_KEY"
```

Для Windows native PowerShell запустите интерактивный установщик:

```powershell theme={null}
powershell -c "irm 'https://raw.githubusercontent.com/cometapi-dev/integrations/main/codex/setup.ps1' | iex"
```

Для неинтерактивной настройки в Windows передайте API-ключ явно:

```powershell theme={null}
powershell -c "& ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/cometapi-dev/integrations/main/codex/setup.ps1'))) -Key $env:COMETAPI_KEY"
```

<Warning>
  По умолчанию скрипт не заменяет `~/.codex/auth.json` и не удаляет вход через ChatGPT. Используйте `--force-auth-json` или `-ForceAuthJson` только если хотите, чтобы скрипт управлял входом в Codex по API-ключу через `auth.json`.
</Warning>

## Выберите или измените model ID

Используйте model ID со [страницы Models](/ru/overview/models). При ручной настройке измените значение `model` в `~/.codex/config.toml`.

Для macOS, Linux или WSL передайте `--model` при запуске скрипта настройки:

```bash theme={null}
curl -fsSL https://raw.githubusercontent.com/cometapi-dev/integrations/main/codex/setup.sh | sh -s -- --key "$COMETAPI_KEY" --model your-model-id
```

Для Windows native PowerShell передайте `-Model` при запуске скрипта настройки:

```powershell theme={null}
powershell -c "& ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/cometapi-dev/integrations/main/codex/setup.ps1'))) -Key $env:COMETAPI_KEY -Model 'your-model-id'"
```

<Note>
  Скрипт использует `CODEX_HOME`, если он задан. В противном случае он записывает файлы в `~/.codex` текущего окружения.
</Note>

## Проверьте настройку

Чтобы проверить настройку с помощью Codex CLI, выполните эту команду только для чтения из любого локального проекта:

```bash theme={null}
codex exec --ephemeral --skip-git-repo-check --sandbox read-only --color never "Reply exactly with: COMETAPI_CODEX_OK"
```

Если Codex CLI недоступен в `PATH`, откройте приложение Codex и отправьте короткий Prompt из локального проекта.

## Устранение неполадок

<AccordionGroup>
  <Accordion title="Codex по-прежнему использует провайдера OpenAI по умолчанию">
    Убедитесь, что `model_provider = "cometapi"` указан в пользовательском файле `~/.codex/config.toml`.
  </Accordion>

  <Accordion title="API key изменился">
    Обновите `~/.codex/cometapi_key` или повторно запустите скрипт настройки с обновлённым значением `$COMETAPI_KEY`.
  </Accordion>

  <Accordion title="Скрипт PowerShell завершается с ошибкой во время предварительных проверок">
    Используйте ручные шаги Windows native PowerShell, затем выполните команду проверки.
  </Accordion>

  <Accordion title="Настройка shell через pipe не запрашивает API key">
    Используйте `--key "$COMETAPI_KEY"`, задайте `COMETAPI_KEY` или выполните интерактивную команду `sh -c "$(curl ...)"`.
  </Accordion>

  <Accordion title="Соединение завершается по тайм-ауту или используется неправильный base URL">
    Убедитесь, что `base_url` имеет значение `https://api.cometapi.com/v1` в `~/.codex/config.toml`.
  </Accordion>

  <Accordion title="Модель не найдена">
    Проверьте доступные model ID на [странице Models](/ru/overview/models).
  </Accordion>

  <Accordion title="Настройка Windows влияет не на то окружение">
    Измените `$HOME\.codex` для режима Windows native или `~/.codex` внутри WSL для режима агента WSL.
  </Accordion>

  <Accordion title="Изменился вход через ChatGPT">
    Не используйте `--force-auth-json` или `-ForceAuthJson`, если только вам не нужен режим входа с API key.
  </Accordion>
</AccordionGroup>

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/codex#howto",
        "name": "Использование Codex с CometAPI",
        "description": "Используйте это руководство, чтобы настроить Codex с CometAPI, отредактировав параметры provider в пользовательском config.toml.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-1",
            "position": 1,
            "name": "Проверьте предварительные требования",
            "text": "Выполните шаг Проверьте предварительные требования в руководстве Использование Codex с CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-2",
            "position": 2,
            "name": "Выберите путь настройки",
            "text": "Выполните шаг Выберите путь настройки в руководстве Использование Codex с CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-3",
            "position": 3,
            "name": "Настройте Codex вручную",
            "text": "Выполните шаг Настройте Codex вручную в руководстве Использование Codex с CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-4",
            "position": 4,
            "name": "Используйте аутентификацию через переменную окружения",
            "text": "Выполните шаг Используйте аутентификацию через переменную окружения в руководстве Использование Codex с CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-5",
            "position": 5,
            "name": "Запустите скрипт настройки",
            "text": "Выполните шаг Запустите скрипт настройки в руководстве Использование Codex с CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-6",
            "position": 6,
            "name": "Выберите или измените model ID",
            "text": "Выполните шаг Выберите или измените model ID в руководстве Использование Codex с CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-7",
            "position": 7,
            "name": "Проверьте настройку",
            "text": "Выполните шаг Проверьте настройку в руководстве Использование Codex с CometAPI."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Документация CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Интеграции",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Использование Codex с CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/codex"
          }
        ]
      }
    ]
    }
    `}
</script>
