Kunci API Codex adalah kunci apa pun yang dapat digunakan Codex CLI untuk menagih per token, bukan paket ChatGPT: kunci OpenAI API dari platform.openai.com, atau kunci provider seperti sk-kn- milik Kunavo, yang dibaca Codex dari variabel lingkungan bernama env_key dalam blok model_providers. Provider tersebut harus menyediakan Responses API — satu-satunya persyaratan di bawah ini.
Codex CLI adalah agen coding terminal open-source milik OpenAI, dan dapat berjalan dengan login ChatGPT atau kunci API. Rute kunci API patut dipahami: rute ini menagih per token tanpa biaya bulanan, dan merupakan satu-satunya rute yang memungkinkan Anda mengarahkan CLI ke provider lain — atau bahkan ke keluarga model yang sepenuhnya berbeda. Panduan ini membahas konfigurasi yang berfungsi, satu persyaratan yang paling sering menyulitkan gateway, dan biaya nyata satu sesi.
Satu persyaratan yang penting
Codex CLI lebih ketat terhadap endpoint khusus dibandingkan sebagian besar tool. Blok model_providers memiliki kunci wire_api, dan hanya menerima satu nilai: responses. Artinya, provider khusus harus menyediakan Responses API OpenAI di POST /v1/responses — bukan /v1/chat/completions yang jauh lebih umum. Sebagian besar gateway yang kompatibel dengan OpenAI hanya menyediakan yang terakhir, sehingga banyak gateway tidak dapat menggerakkan Codex CLI sama sekali, apa pun base_url yang Anda berikan.
Kunavo menyediakan kedua permukaan, jadi konfigurasi di bawah berfungsi sebagaimana ditulis.
Konfigurasi
Codex membaca ~/.codex/config.toml. Dua kunci tingkat atas memilih model dan provider; blok provider menjelaskan cara mengaksesnya:
# ~/.codex/config.toml
model = "gpt-5-6-sol"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses"Perhatikan apa yang tidak ada dalam file tersebut: kuncinya sendiri. env_key menamai variabel lingkungan, dan Codex membaca kunci dari sana saat dijalankan — sehingga file konfigurasi tetap aman untuk di-commit atau dibagikan.
# Codex reads the key from the variable named by env_key.
export KUNAVO_API_KEY="sk-kn-..." # create at kunavo.com/app/keys
# Persist it (pick the file your shell actually loads):
echo 'export KUNAVO_API_KEY="sk-kn-..."' >> ~/.zshrc
codex "explain the structure of this repository"Buat kunci di dashboard setelah mendaftar dan mengisi ulang $10. Kunci hanya ditampilkan sekali, jadi simpan segera. Jika codex sudah berjalan di shell lain, mulai ulang — variabel dibaca saat dijalankan, bukan pada setiap permintaan.
Verifikasi sebelum melakukan debugging
Jika ada masalah, cari tahu apakah penyebabnya kunci, endpoint, atau CLI. Satu permintaan sudah cukup untuk memastikannya:
# Confirm the key and the endpoint before blaming Codex.
curl https://api.kunavo.com/v1/responses \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5-6-sol",
"input": "Say OK and nothing else."
}'Respons JSON berarti kunci dan endpoint sudah benar, dan masalah yang tersisa berada pada config.toml. 401 berarti kuncinya salah atau variabelnya kosong di shell ini. 404 pada model berarti slug tidak cocok dengan katalog.
Model yang harus ditetapkan
Nilai model hanyalah slug pada endpoint yang sama, jadi penggantian model cukup dilakukan dengan mengubah satu kata — tanpa kunci baru, tanpa blok provider baru.
| Tugas | Model | Input / output Kunavo (per 1 juta) |
|---|---|---|
| Default khusus coding | gpt-5-6-sol | $2,00 / $12,00 |
| Refaktor dan debugging tersulit | claude-opus-5 | $3,50 / $17,50 |
| Coding agentic sehari-hari | claude-sonnet-5 | $1,40 / $7,00 |
| Edit cepat dan Tanya Jawab | claude-haiku-4-5 | $0,70 / $3,50 |
gpt-5-6-sol adalah GPT yang disesuaikan untuk coding dan default alami untuk CLI ini, dengan harga $2,00 / $12,00 per 1M token dibandingkan harga daftar OpenAI sebesar $5,00 / $30,00 — meskipun OpenAI saat ini mengenakan harga promosi $4,00 / $20,00, yang tersedia setidaknya hingga 21 November 2026. Tarif lengkap untuk setiap model tersedia di halaman harga.
Menjalankan model Claude di Codex CLI
Hal ini mengejutkan banyak orang: Codex CLI terikat pada protokol, bukan model. Codex berbicara dalam format wire Responses, dan model chat apa pun yang berada di balik endpoint tersebut dapat menjawab. Arahkan ke claude-opus-5 dan Codex berjalan end-to-end — termasuk tool call, sehingga agen tetap membaca file, mengusulkan perubahan, dan menjalankan perintah seperti biasa.
# Same provider block, different model — no new key, no new config.
model = "claude-opus-5"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses"Gateway menerjemahkan permintaan Responses menjadi Anthropic Messages API dan balasannya kembali ke bentuk Responses. Satu catatan penting: Codex mengirim item reasoning yang hanya dapat dikonsumsi oleh model native Responses, dan item tersebut dihapus saat diteruskan ke upstream non-GPT. Model kehilangan scratchpad pribadinya dari giliran sebelumnya; transkrip yang terlihat dan menjadi dasar kerjanya tetap utuh. Dalam praktiknya, hal ini sedikit mengurangi kesinambungan pada rangkaian penalaran panjang, tetapi tidak berdampak sama sekali pada loop edit-jalankan-perbaiki biasa.
Apakah ini ide yang baik merupakan pertanyaan terpisah dari apakah ini berfungsi. Jika Anda menginginkan Claude secara khusus, Claude Code dibuat untuk itu dan meneruskan cache_control tanpa terjemahan. Namun, jika Anda lebih menyukai sandboxing Codex CLI dan ingin Claude berada di baliknya, kombinasi tersebut tersedia.
Biaya sebuah sesi
CLI agentik mengirim ulang prompt sistem, riwayat tugas, dan konteks berkas terbaru pada setiap langkah, sehingga token bertambah lebih cepat daripada yang ditunjukkan jumlah langkah. Satu langkah umumnya menggunakan sekitar 25.000 token input dan 1.200 token output:
| Satuan | Token (input / output) | gpt-5-6-sol | Pada harga daftar OpenAI |
|---|---|---|---|
| Satu langkah agentik | 25.000 / 1.200 | $0,024 | $0,061 |
| Tugas 20 langkah | ~500k / ~24k | ~$0,48 | ~$1,21 |
| Hari berat (5 tugas seperti itu) | — | ~$2,42 | ~$6,05 |
Karena tarif output berbeda jauh lebih besar antar-keluarga model daripada tarif input, pekerjaan yang berat di output dapat mengubah peringkat — masukkan angka Anda sendiri ke kalkulator biaya alih-alih mempercayai satu contoh perhitungan. Permintaan yang gagal tidak dikenai biaya.
Saat rute kunci API lebih unggul daripada langganan
Paket ChatGPT menggabungkan penggunaan Codex dengan tarif bulanan tetap; kunci API hanya menagih apa yang Anda jalankan. Rute kunci unggul ketika Anda menulis kode secara berkala, bukan setiap hari, ketika Anda menginginkan batas pengeluaran per kunci dan visibilitas penggunaan alih-alih jatah yang tidak transparan, atau ketika Anda menginginkan model yang tidak ditawarkan oleh langganan. Rute ini kalah ketika Anda adalah pengguna berat sehari-hari — pada volume tersebut, tarif tetap sulit dikalahkan. Kedua rute tidak saling eksklusif: profil Codex memungkinkan Anda mempertahankan keduanya dan beralih untuk setiap tugas.
Pemecahan masalah
| Gejala | Penyebab |
|---|---|
404 pada setiap permintaan | Penyedia tidak menyediakan /v1/responses, atau base_url sudah menyertakan jalurnya — jalur tersebut harus diakhiri di /v1. |
401 Unauthorized | Variabel bernama env_key kosong di shell yang meluncurkan Codex. Mulai ulang shell setelah mengekspornya. |
| Model tidak ditemukan | Slug tersebut tidak cocok dengan katalog. Slug menggunakan tanda hubung: gpt-5-6-sol, bukan gpt-5.3-codex. |
wire_api ditolak | Hanya "responses" yang diterima. Konfigurasi yang menggunakan "chat" tidak akan dimuat. |
| Kuota tidak mencukupi | Saldo dompet lebih rendah daripada perkiraan permintaan. Isi saldo di penagihan. |
Pertanyaan umum
Bagaimana cara menggunakan kunci API dengan Codex CLI?
Tambahkan blok [model_providers.NAME] ke ~/.codex/config.toml dengan base_url, env_key, dan wire_api = "responses", lalu tetapkan model_provider ke nama tersebut. Codex membaca kunci dari variabel lingkungan yang namanya ditentukan oleh env_key — Codex tidak menyimpan kunci di file konfigurasi. Dengan Kunavo, base URL-nya adalah https://api.kunavo.com/v1 dan kuncinya adalah kunci sk-kn- yang dibuat di kunavo.com/app/keys.
Dapatkah Codex CLI menggunakan endpoint API khusus, bukan OpenAI?
Ya, tetapi provider harus menyediakan OpenAI Responses API di POST /v1/responses. Blok model_providers Codex CLI hanya menerima wire_api = "responses", sehingga gateway yang hanya menyediakan /v1/chat/completions tidak dapat dikonfigurasi. Kunavo menyediakan keduanya, jadi konfigurasi di atas berfungsi.
Apakah saya memerlukan langganan ChatGPT Plus atau Pro untuk menjalankan Codex CLI?
Tidak. Codex CLI dapat masuk dengan paket ChatGPT atau dijalankan menggunakan kunci API. Rute kunci API mengenakan biaya per token tanpa biaya bulanan, sehingga lebih murah jika Anda coding secara berkala, bukan setiap hari, dan ini satu-satunya rute yang memungkinkan Anda mengarahkan CLI ke provider atau keluarga model lain.
Dapatkah Codex CLI menjalankan model Claude?
Ya, melalui gateway yang menyediakan Responses API. Codex CLI terikat pada protokol, bukan model: Codex berbicara dalam format wire Responses, dan model chat apa pun di balik endpoint tersebut dapat menjawab. Jika diarahkan ke Kunavo dengan model = claude-opus-5, Codex CLI berjalan end-to-end termasuk tool call — gateway menerjemahkan Responses ke Anthropic Messages API dan sebaliknya.
Mengapa Codex CLI mengembalikan 404 dengan provider khusus saya?
Hampir selalu karena provider tidak mengimplementasikan POST /v1/responses, atau karena base_url sudah menyertakan path /responses. Codex menambahkan path tersebut sendiri, jadi base_url harus berakhir di /v1. Status 401 berarti variabel lingkungan yang namanya ditentukan oleh env_key kosong di shell yang menjalankan Codex.
Di mana Codex CLI menyimpan kunci API?
Codex tidak menyimpannya. env_key menamai variabel lingkungan dan Codex membaca kunci dari lingkungan saat dijalankan, sehingga config.toml tidak berisi rahasia dan tetap aman untuk di-commit.
Apakah saya memerlukan langganan ChatGPT?
Tidak. Kunci merupakan alternatif lengkap untuk masuk, dan satu-satunya rute yang mendukung provider khusus atau model non-GPT.
Apakah ini berfungsi dengan Codex di ekstensi IDE?
Ekstensi menggunakan ~/.codex/config.toml bersama CLI, jadi blok provider yang sama berlaku. Mulai ulang editor setelah mengeditnya.
Dapatkah saya mempertahankan OpenAI dan gateway secara berdampingan?
Ya — definisikan beberapa blok [model_providers.*] dan beralih dengan model_provider, atau bungkus masing-masing dalam profil Codex dan pilih profilnya untuk setiap proses.
Bagaimana perbandingannya dengan Claude Code?
Claude Code membaca ANTHROPIC_BASE_URL dan berbicara dengan Messages API, jadi mengarahkannya ke gateway hanya memerlukan tiga variabel lingkungan dan tanpa file konfigurasi. Perbandingan lengkap — permukaan ekstensi, sandboxing, bentuk biaya — tersedia di Claude Code vs Codex CLI. Karena Codex terikat pada protokol, bukan model, model Claude di balik endpoint yang sama dapat digunakan dengan perubahan satu baris; daftar harga Anthropic Claude API berisi tarif per token untuk sisi pertukaran tersebut.