Codex CLI di saldo prabayar, lewat satu blok provider
Codex CLI disambungkan dengan menambahkan satu blok model provider di ~/.codex/config.toml: base_url diisi https://api.relayswitch.io/v1 dan key disimpan di environment variable. Cara memakai Codex tidak berubah, dan setiap giliran dipotong per token dari saldo prabayar lewat rute Responses.
01Apa itu Codex, dan apa yang diubah di sini
Codex CLI adalah agent coding berbasis command line dari OpenAI. Konfigurasinya punya setelan model_provider yang nilai default-nya openai, sehingga request dikirim ke antarmuka OpenAI sendiri. Setelan itu bisa diganti: definisikan provider Anda di config.toml dengan alamat endpoint dan nama environment variable tempat key disimpan, lalu arahkan model_provider ke sana. Perintah dan cara pakai Codex tetap sama; yang berganti hanya pihak yang menagih.
Codex hanya berbicara satu protokol, yaitu Responses API dari OpenAI: referensi konfigurasinya menyebut wire_api hanya mendukung nilai responses. Karena itu hal pertama yang perlu dipastikan dari sebuah gateway adalah tersedianya /v1/responses, bukan hanya /v1/chat/completions. Di sini kedua rute ada, dan Codex memakai yang pertama.
02config.toml: satu blok provider
Blok di bawah berisi empat baris, dan API key tidak ditulis di file. Arti tiap setelan:
model_providermemilih blok berdasarkan nama tabelnya. Nama itu Anda tentukan sendiri, tetapiopenai,ollama,lmstudio,amazon-bedrock,amazon-bedrock-runtime, dangcpadalah id bawaan Codex yang tidak bisa ditimpa.base_urldiisi https://api.relayswitch.io/v1, dengan/v1; Codex menambahkan/responsesdi belakangnya.env_keyadalah nama environment variable tempat key disimpan, bukan key itu sendiri. Karena key tetap di environment variable, file konfigurasi aman untuk di-commit atau disinkronkan.wire_apihanya punya satu nilai yang berlaku,responses, dan itu juga nilai default-nya, jadi baris ini boleh dihapus.requires_openai_authbernilai defaultfalsedan tidak perlu ditulis: provider kustom memakai key darienv_key, bukan login akun OpenAI.
# ~/.codex/config.tomlmodel = "gpt-6.1-sol"model_provider = "relayswitch" [model_providers.relayswitch]name = "RelaySwitch"base_url = "https://api.relayswitch.io/v1"env_key = "RELAYSWITCH_API_KEY"wire_api = "responses"03Simpan key di environment variable, lalu jalankan codex
Tulis blok tadi di ~/.codex/config.toml. Direktori itu ditentukan oleh environment variable CODEX_HOME dan default-nya ~/.codex; provider harus ditulis di file tingkat pengguna ini. Setelah itu export key di terminal tempat Codex dijalankan, lalu mulai. Tambahkan baris export ke file konfigurasi shell supaya terminal baru ikut membawanya.
export RELAYSWITCH_API_KEY="sk-relay-..."codex04Uji rute Responses dengan curl
Sebelum menjalankan Codex, kirim satu request Responses yang kecil untuk memastikan key dan alamatnya benar. Opsi -i menampilkan baris status dan header respons, termasuk id request.
Jika jawabannya 200, jalankan codex dan kirim perintah pertama. Request itu muncul di halaman Usage pada console dalam hitungan detik, lengkap dengan token dan biayanya. Untuk mengganti model sementara, pakai codex --model diikuti id-nya.
curl -i https://api.relayswitch.io/v1/responses \ -H "Authorization: Bearer sk-relay-..." \ -H "content-type: application/json" \ -d '{"model": "gpt-6.1-sol", "input": "Reply with ok"}'05Harga model GPT dan biaya satu tugas
Tabel ini memuat model GPT di katalog dalam USD per satu juta token, dengan harga input, cached input, dan output yang terpisah. Codex dirancang untuk model GPT dan rute Responses, jadi pastikan id yang Anda tulis di config.toml menjawab uji curl di atas.
Codex mengirim ulang percakapan dan output tool pada setiap giliran. Token itu ditagih dengan harga cached input saat mengenai cache, dan respons melaporkan jumlah token yang ter-cache; kena atau tidaknya bergantung pada model dan request itu sendiri. Cara berhematnya jadi konkret: pakai model yang lebih murah untuk perubahan harian dan pindah ke yang lebih mahal hanya untuk review dan refactor yang sulit, mulai sesi baru setelah satu tugas selesai agar konteks tidak terus memanjang, dan buat key khusus Codex dengan anggaran dolar serta batas belanja harian. Saat batas tercapai, gateway menjawab 402 dan hanya key itu yang berhenti; sisa saldo akun tidak tersentuh.
| Model | Pengembang | Input | Output | Konteks |
|---|---|---|---|---|
| GPT-6.1 Solgpt-6.1-sol | OpenAI | $0.582≈ Rp 10.831 | $2.91≈ Rp 54.155 | 1,050,000 |
| GPT-6 Lunagpt-6-luna | OpenAI | $0.0625≈ Rp 1.163 | $0.20≈ Rp 3.722 | 1,050,000 |
| GPT-6 Solgpt-6-sol | OpenAI | $0.60≈ Rp 11.166 | $3.00≈ Rp 55.830 | 1,050,000 |
| GPT-6 Astragpt-6-astra | OpenAI | $3.00≈ Rp 55.830 | $15.00≈ Rp 279.149 | 1,050,000 |
| GPT-5.6 Lunagpt-5.6-luna | OpenAI | $0.12≈ Rp 2.233 | $0.72≈ Rp 13.399 | 1,050,000 |
| GPT-5.6 Solgpt-5.6-sol | OpenAI | $1.20≈ Rp 22.332 | $3.00≈ Rp 55.830 | 1,050,000 |
| GPT-5.6 Terragpt-5.6-terra | OpenAI | $1.20≈ Rp 22.332 | $3.60≈ Rp 66.996 | 1,050,000 |
| GPT-5.5gpt-5.5 | OpenAI | $1.80≈ Rp 33.498 | $9.00≈ Rp 167.489 | 1,050,000 |
| GPT-5.4 Minigpt-5.4-mini | OpenAI | $0.75≈ Rp 13.957 | $4.50≈ Rp 83.745 | 400,000 |
| GPT-5.4gpt-5.4 | OpenAI | $1.50≈ Rp 27.915 | $9.00≈ Rp 167.489 | 1,050,000 |
| GPT-5.3-Codexgpt-5.3-codex | OpenAI | $1.75≈ Rp 32.567 | $14.00≈ Rp 260.539 | 400,000 |
| GPT-4o minigpt-4o-mini | OpenAI | $0.15≈ Rp 2.791 | $0.60≈ Rp 11.166 | 128,000 |
| GPT-4ogpt-4o | OpenAI | $2.50≈ Rp 46.525 | $10.00≈ Rp 186.099 | 128,000 |
| GPT-4.1 Nanogpt-4.1-nano | OpenAI | $0.10≈ Rp 1.861 | $0.40≈ Rp 7.444 | 1,048,576 |
| GPT 5.4 Nanogpt-5.4-nano | OpenAI | $0.40≈ Rp 7.444 | $2.50≈ Rp 46.525 | 400,000 |
| GPT 5.6gpt-5.6 | OpenAI | $0.9412≈ Rp 17.515 | $4.7059≈ Rp 87.576 | 1,050,000 |
| GPT 6.1 Terragpt-6.1-terra | OpenAI | $0.2941≈ Rp 5.473 | $1.4706≈ Rp 27.367 | 1,000,000 |
| gpt-oss-120bgpt-oss-120b | OpenAI | $0.20≈ Rp 3.722 | $1.80≈ Rp 33.498 | |
| gpt-oss-20bgpt-oss-20b | OpenAI | $0.16≈ Rp 2.978 | $0.72≈ Rp 13.399 |
USD per satu juta token · ≈ adalah harga acuan dalam rupiah menurut kurs Bank Sentral Eropa tanggal 2026-11-13; tagihan tetap dalam dolar AS
07Error yang sering muncul
Status 401 sampai 404 dikembalikan sebelum request mencapai model, sedangkan 429, 502, dan 503 tidak membawa jawaban; semuanya tidak ditagih. Tabel lengkap per status ada di halaman OpenAI API. Untuk coding dengan Claude di terminal, pakai Claude Code; keduanya berjalan dengan key dan saldo yang sama, dan cara membuat key ada di halaman Claude API key.
| 401 | Key salah atau sudah dicabut, atau RELAYSWITCH_API_KEY kosong di terminal tempat Codex dijalankan. Jalankan export lagi, lalu mulai ulang. |
| 402 | Saldo tidak cukup, atau anggaran key habis. Kembali normal begitu Anda top up atau menaikkan anggaran. |
| 404 | Id model tidak ada di katalog, biasanya karena menu /model menulis ulang profile. Kembalikan baris model. |
| 429 | Batas laju key tercapai. Tunggu sesuai header retry-after, atau naikkan batas request per menit key itu di console. |
| Blok provider tidak berlaku | Nama tabel memakai id bawaan, atau model_provider tidak berisi nama tabel tersebut. |
| Profile tidak berlaku | Isinya masih berupa tabel [profiles.<name>] di config.toml; pindahkan barisnya ke file tersendiri. |
Pertanyaan umum
- Apa itu Codex CLI?
- Codex CLI adalah agent coding berbasis command line dari OpenAI. Setelan model_provider di konfigurasinya menentukan ke mana request dikirim; default-nya openai, dan nilainya bisa diarahkan ke provider yang Anda definisikan sendiri di config.toml.
- Bagaimana cara setup Codex dengan API key sendiri?
- Tambahkan blok model_providers.relayswitch di ~/.codex/config.toml berisi name, base_url (https://api.relayswitch.io/v1), dan env_key (RELAYSWITCH_API_KEY). Lalu isi model_provider di tingkat atas dengan relayswitch dan model dengan salah satu id GPT dari katalog. Simpan key di environment variable dengan export, kemudian jalankan codex.
- Apakah perlu akun ChatGPT atau API key OpenAI?
- Menurut referensi konfigurasi Codex, requires_openai_auth pada provider kustom bernilai default false, dan request diautentikasi dengan key dari environment variable yang ditunjuk env_key. Akun dan saldo Anda ada di RelaySwitch, dan key berawalan sk-relay-.
- base_url perlu /v1 atau tidak, dan wire_api diisi apa?
- base_url diisi https://api.relayswitch.io/v1, dengan /v1; Codex menambahkan /responses di belakangnya. wire_api hanya punya satu nilai yang berlaku, yaitu responses, yang juga nilai default-nya, jadi barisnya boleh dihapus. Nilai chat dari tutorial lama sudah tidak bisa dipakai.
- Bagaimana tahu model tidak diganti diam-diam?
- Dua hal bisa Anda periksa sendiri. Setiap model menerima prompt uji yang sama sekali sehari dan jawabannya dibandingkan dengan hasil sebelumnya; hasilnya terbuka di https://api.relayswitch.io/v1/proof. Setiap request juga punya struk bertanda tangan yang mencatat id model, token yang ditagih, dan biayanya. Nilai model_reasoning_effort dikirim Codex di setiap request dan diteruskan gateway ke model apa adanya.
- Token Codex terasa mahal, bagaimana menghematnya?
- Codex mengirim ulang percakapan dan output tool di setiap giliran, jadi biayanya terutama ada di input dan cached input. Tiga cara: pakai model yang lebih murah untuk perubahan harian dan yang mahal hanya untuk masalah sulit, mulai sesi baru setelah tugas selesai, dan beri key Codex anggaran dolar serta batas harian supaya berhenti saat batas tercapai.
Satu blok provider, satu environment variable
base_url https://api.relayswitch.io/v1, model GPT ditagih per token sesuai harga katalog, dengan cek harian yang terbuka untuk publik.