> ## 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.

# Gunakan Codex dengan CometAPI

> Gunakan panduan ini untuk mengonfigurasi Codex dengan CometAPI dengan mengedit pengaturan provider pada config.toml tingkat pengguna.

Gunakan panduan ini untuk menjalankan [Codex](https://developers.openai.com/codex/quickstart) dengan CometAPI sebagai model provider.

Referensi resmi:

* [Codex quickstart](https://developers.openai.com/codex/quickstart)
* [Dasar konfigurasi Codex](https://developers.openai.com/codex/config-basic)
* [Custom model providers Codex](https://developers.openai.com/codex/config-advanced#custom-model-providers)
* [Autentikasi Codex](https://developers.openai.com/codex/auth)
* [Codex di Windows](https://developers.openai.com/codex/windows)

## Prasyarat

| Persyaratan      | Detail                                                                                                       |
| ---------------- | ------------------------------------------------------------------------------------------------------------ |
| OS               | macOS, Linux, PowerShell native Windows, atau Windows dengan WSL                                             |
| Git              | 2.23+ direkomendasikan                                                                                       |
| Codex            | Instal aplikasi Codex atau Codex CLI dari [Codex quickstart](https://developers.openai.com/codex/quickstart) |
| CometAPI API key | Dapatkan dari [dashboard CometAPI](https://www.cometapi.com/console/token)                                   |
| Model ID         | Gunakan model ID dari [halaman Models](/id/overview/models)                                                  |

## Pilih jalur penyiapan

Kami menyediakan dua opsi untuk membantu Anda mengonfigurasi Codex dengan cepat.

<CardGroup cols={2}>
  <Card title="Opsi 1: Konfigurasikan Codex secara manual (direkomendasikan)" icon="bolt" href="#configure-codex-manually">
    Edit file `~/.codex/config.toml` tingkat pengguna secara langsung. Ini adalah jalur yang paling andal, terutama untuk pengguna Windows dan WSL.
  </Card>

  <Card title="Opsi 2: Konfigurasikan melalui skrip" icon="puzzle-piece" href="#run-the-setup-script">
    Jalankan skrip penyiapan sebagai pintasan. Skrip ini menulis konfigurasi provider yang sama dan menyimpan CometAPI API key untuk Codex.
  </Card>
</CardGroup>

## Konfigurasikan Codex secara manual

Codex membaca default provider pribadi dari file `~/.codex/config.toml` pada level pengguna. Konfigurasikan provider CometAPI di sana, bukan di file proyek `.codex/config.toml`. Codex mengabaikan pengaturan provider dan provider-auth di file konfigurasi proyek.

Pengaturan yang direkomendasikan menggunakan provider bernama `cometapi` dan autentikasi berbasis perintah. Ini menjaga CometAPI tetap terpisah dari provider OpenAI bawaan, tidak memerlukan pewarisan environment shell, dan tidak menggantikan `~/.codex/auth.json`.

<Tabs>
  <Tab title="macOS / Linux / WSL">
    Simpan API key CometAPI Anda di file key lokal:

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

    Tambahkan konfigurasi ini ke `~/.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">
    Simpan API key CometAPI Anda di direktori home 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
    ```

    Tambahkan konfigurasi ini ke `$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 native Windows menggunakan `$HOME\.codex`, biasanya `C:\Users\<user>\.codex`. WSL menggunakan `~/.codex` milik distribusi Linux. Edit direktori yang sesuai dengan environment tempat agen Codex berjalan.
</Note>

## Gunakan autentikasi variabel environment

Jika Anda lebih memilih menyimpan API key CometAPI dalam variabel environment, gunakan `env_key` alih-alih blok `[model_providers.cometapi.auth]`.

Gunakan konfigurasi provider ini hanya ketika `COMETAPI_KEY` tersedia di environment yang menjalankan 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>
  Jangan gabungkan `env_key` dengan `[model_providers.cometapi.auth]`. Codex mendukung satu metode autentikasi per custom provider.
</Warning>

## Jalankan skrip setup

Skrip setup bersifat opsional. Skrip ini menulis konfigurasi provider `cometapi` yang sama ke `~/.codex/config.toml`, menyimpan CometAPI API key Anda di `~/.codex/cometapi_key`, membuat cadangan sebelum mengubah file, dan memverifikasi konfigurasi dengan `codex exec` saat Codex CLI tersedia.

Untuk macOS, Linux, atau WSL, jalankan installer interaktif:

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

Untuk setup non-interaktif, berikan API key secara eksplisit:

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

Untuk Windows PowerShell native, jalankan installer interaktif:

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

Untuk setup Windows non-interaktif, berikan API key secara eksplisit:

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

<Warning>
  Secara default, skrip tidak mengganti `~/.codex/auth.json` dan tidak menghapus login ChatGPT. Gunakan `--force-auth-json` atau `-ForceAuthJson` hanya jika Anda ingin skrip mengelola login API-key Codex melalui `auth.json`.
</Warning>

## Pilih atau ubah model ID

Gunakan model ID dari [halaman Models](/id/overview/models). Dalam konfigurasi manual, ubah nilai `model` di `~/.codex/config.toml`.

Untuk macOS, Linux, atau WSL, berikan `--model` saat Anda menjalankan skrip setup:

```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
```

Untuk Windows PowerShell native, berikan `-Model` saat Anda menjalankan skrip setup:

```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>
  Skrip menggunakan `CODEX_HOME` jika disetel. Jika tidak, skrip akan menulis ke `~/.codex` pada environment saat ini.
</Note>

## Verifikasi setup

Untuk memverifikasi setup dengan Codex CLI, jalankan perintah hanya-baca ini dari proyek lokal mana pun:

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

Jika Codex CLI tidak tersedia di `PATH`, buka aplikasi Codex dan kirim Prompt singkat dari proyek lokal.

## Pemecahan masalah

<AccordionGroup>
  <Accordion title="Codex masih menggunakan provider OpenAI default">
    Pastikan `model_provider = "cometapi"` ada di file `~/.codex/config.toml` tingkat pengguna.
  </Accordion>

  <Accordion title="API key berubah">
    Perbarui `~/.codex/cometapi_key`, atau jalankan ulang skrip setup dengan nilai `$COMETAPI_KEY` yang telah diperbarui.
  </Accordion>

  <Accordion title="Skrip PowerShell gagal saat pemeriksaan pra-penerbangan">
    Gunakan langkah PowerShell native Windows manual, lalu jalankan perintah verifikasi.
  </Accordion>

  <Accordion title="Setup shell yang dipipe tidak meminta API key">
    Gunakan `--key "$COMETAPI_KEY"`, set `COMETAPI_KEY`, atau jalankan perintah interaktif `sh -c "$(curl ...)"`.
  </Accordion>

  <Accordion title="Koneksi mengalami time out atau menggunakan base URL yang salah">
    Pastikan `base_url` adalah `https://api.cometapi.com/v1` di `~/.codex/config.toml`.
  </Accordion>

  <Accordion title="Model tidak ditemukan">
    Periksa [halaman Models](/id/overview/models) untuk model ID yang tersedia.
  </Accordion>

  <Accordion title="Setup Windows memengaruhi environment yang salah">
    Edit `$HOME\.codex` untuk mode native Windows, atau edit `~/.codex` di dalam WSL untuk mode agen WSL.
  </Accordion>

  <Accordion title="Login ChatGPT berubah">
    Jangan gunakan `--force-auth-json` atau `-ForceAuthJson` kecuali Anda ingin mode login 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": "Gunakan Codex dengan CometAPI",
        "description": "Gunakan panduan ini untuk mengonfigurasi Codex dengan CometAPI dengan mengedit pengaturan provider config.toml tingkat pengguna.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-1",
            "position": 1,
            "name": "Tinjau prasyarat",
            "text": "Selesaikan langkah Tinjau prasyarat dalam panduan Gunakan Codex dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-2",
            "position": 2,
            "name": "Pilih jalur setup",
            "text": "Selesaikan langkah Pilih jalur setup dalam panduan Gunakan Codex dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-3",
            "position": 3,
            "name": "Konfigurasikan Codex secara manual",
            "text": "Selesaikan langkah Konfigurasikan Codex secara manual dalam panduan Gunakan Codex dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-4",
            "position": 4,
            "name": "Gunakan autentikasi environment variable",
            "text": "Selesaikan langkah Gunakan autentikasi environment variable dalam panduan Gunakan Codex dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-5",
            "position": 5,
            "name": "Jalankan skrip setup",
            "text": "Selesaikan langkah Jalankan skrip setup dalam panduan Gunakan Codex dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-6",
            "position": 6,
            "name": "Pilih atau ubah model ID",
            "text": "Selesaikan langkah Pilih atau ubah model ID dalam panduan Gunakan Codex dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/codex#step-7",
            "position": 7,
            "name": "Verifikasi setup",
            "text": "Selesaikan langkah Verifikasi setup dalam panduan Gunakan Codex dengan CometAPI."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Dokumen CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Integrasi",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Gunakan Codex dengan CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/codex"
          }
        ]
      }
    ]
    }
    `}
</script>
