Codex config.toml untuk provider API kustom: hanya Responses sejak 2026

Wokey Team · 2026-09-24

Jawaban singkat: untuk mengarahkan Codex ke API pihak ketiga, definisikan provider kustom di ~/.codex/config.toml, atur base_url ke gateway, dan taruh key Anda di variabel lingkungan yang namanya disebut oleh env_key. Protokolnya harus Responses. Codex menghapus dukungan Chat Completions pada Februari 2026, dan wire_api = "chat" kini gagal saat startup, sehingga sebagian besar tutorial yang masih menampilkan wire_api = "chat" tidak lagi berfungsi.

Konfigurasi di bawah berjalan di rilis Codex CLI saat ini. Setiap string error di panduan ini dikutip dari kode sumber Codex atau dari respons nyata API Wokey.

Konfigurasi lengkap (salin dan tempel)

# ~/.codex/config.toml
model = "gpt-6-sol"
model_provider = "wokey"

[model_providers.wokey]
name = "Wokey"
base_url = "https://api.wokey.ai"
env_key = "WOKEY_API_KEY"
wire_api = "responses"
export WOKEY_API_KEY="your Wokey API key"
codex

Fungsi tiap kolom:

Kolom Fungsi Kesalahan umum
model_provider Key tingkat teratas yang menyebut tabel [model_providers.<id>] yang dipakai Jika tidak ditulis, Codex tetap memakai provider bawaan openai dan meminta Anda masuk ke ChatGPT
base_url Alamat gateway; Codex menambahkan /responses Jangan menambahkan /responses sendiri, atau permintaan menuju /responses/responses
env_key Nama variabel lingkungan yang menyimpan key; Codex mengirimnya sebagai Authorization: Bearer Ini nama variabel, bukan key-nya
wire_api Protokol; "responses" adalah satu-satunya nilai yang valid sekaligus nilai bawaan "chat" gagal saat startup

Di Wokey, base_url bisa berupa https://api.wokey.ai atau https://api.wokey.ai/v1; gateway melayani /responses maupun /v1/responses. Untuk gateway lain, ikuti dokumentasinya: banyak yang hanya mendaftarkan path /v1.

Nama variabelnya terserah Anda. OPENAI_API_KEY bisa dipakai, tetapi jika Anda juga memakai API OpenAI resmi, WOKEY_API_KEY yang terpisah mencegah kedua key saling menimpa.

Mengapa tutorial lama tidak lagi berfungsi

Kronologi:

Sejak itu WireApi di Codex hanya punya satu nilai, Responses. Jika wire_api = "chat" masih ada di konfigurasi, Codex gagal saat startup dengan:

`wire_api = "chat"` is no longer supported.
How to fix: set `wire_api = "responses"` in your provider config.
More info: https://github.com/openai/codex/discussions/7782

Ubah menjadi wire_api = "responses" atau hapus barisnya. Ini juga berarti gateway yang hanya mendukung Chat Completions tidak lagi bisa melayani Codex: periksa adanya endpoint /v1/responses sebelum Anda memilih gateway.

Pengaturan lain yang usang atau diabaikan

api_key di dalam tabel provider. Codex menolak kolom yang tidak dikenal di konfigurasi provider, sehingga baris api_key = "sk-..." membuat konfigurasi gagal di-parse. Berikan key lewat variabel yang disebut oleh env_key. Jika Anda benar-benar harus menaruh token di berkas, kolomnya adalah experimental_bearer_token, meski itu tidak disarankan.

[profiles.xxx] dan profile = "xxx" di tingkat teratas. Sejak Codex 0.134.0, --profile xxx menumpangkan ~/.codex/xxx.config.toml. Tabel [profiles.xxx] di config.toml tidak lagi dibaca, dan profile = di tingkat teratas tidak lagi didukung. Untuk beralih antara akun resmi dan gateway, taruh provider Wokey di ~/.codex/wokey.config.toml lalu jalankan dengan codex --profile wokey.

Provider di .codex/config.toml milik proyek. Konfigurasi tingkat proyek mengabaikan model_provider dan model_providers. Provider hanya bisa didefinisikan di ~/.codex/ pada direktori home Anda.

ID provider openai, ollama, atau lmstudio. ID ini dicadangkan untuk provider bawaan dan tidak bisa dipakai untuk mendefinisikan provider kustom. Gunakan nama lain, seperti wokey.

Model mana yang dipakai

Codex hanya mengirim permintaan Responses, jadi utamakan model yang melayani /v1/responses secara native. Di Wokey, saat ini itu berarti keluarga GPT (gpt-6-sol, gpt-6-luna, gpt-6-astra, gpt-5.6-sol), keluarga Grok (grok-4.7, grok-4.6), dan deepseek-v4.1-flash. Daftar "Supported endpoints" di tiap halaman model adalah acuan resminya, dan jajaran modelnya berubah dari waktu ke waktu.

Model tanpa Responses native, seperti yang hanya mencantumkan Chat Completions, tetap bisa dipakai dari Codex di Wokey. Gateway mengonversi permintaan ke protokol upstream dan mengonversi hasilnya kembali ke Responses. Namun konversi ini tidak lossless:

  • Sebagian tool khusus Codex hilang saat dikonversi ke Chat Completions, seperti apply_patch bentuk bebas, local_shell, dan web_search bawaan.
  • Tool call baru muncul setelah seluruh balasan selesai.

Untuk model coding utama Anda, pilih yang mendukung Responses secara native.

Pemecahan masalah

Missing environment variable: `WOKEY_API_KEY`. Codex tidak menemukan variabel yang disebut oleh env_key. Periksa ejaannya dan pastikan Anda meng-export-nya di terminal yang sama dengan yang menjalankan codex. Jika Anda menambahkannya ke ~/.zshrc atau ~/.bashrc, buka terminal baru.

HTTP 401 dengan code invalid_api_key Wokey mengembalikan ini untuk key yang tidak ada atau salah, dan message menjelaskan yang mana: tidak ada key yang dikirim, key tidak ditemukan, atau key yang sudah dihapus, dijeda, atau kedaluwarsa. Pastikan key disalin utuh, belum dihapus atau dijeda di konsol, dan tidak ada tanda kutip atau spasi yang terbawa di variabel.

HTTP 404 dengan Route POST:/responses/responses not found base_url berakhir dengan /responses. Codex menambahkan path itu sendiri, jadi base_url seharusnya berhenti di domain (atau /v1).

Codex meminta Anda masuk ke ChatGPT Tidak ada model_provider = "wokey" di tingkat teratas, atau provider berada di .codex/config.toml milik proyek yang diabaikan. Codex kembali memakai provider bawaan openai.

wire_api = "chat" is no longer supported Lihat di atas: ubah menjadi "responses" atau hapus barisnya.

HTTP 402 Saldo akun Anda habis.

Untuk memastikan masalahnya bukan di Codex, uji key dan endpoint dengan curl lebih dulu:

curl https://api.wokey.ai/v1/responses \
  -H "Authorization: Bearer $WOKEY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-6-sol","input":"ping"}'

Jika curl berhasil dan Codex tidak, masalahnya ada di config.toml. Jika curl juga gagal, masalahnya ada di key atau jaringan.

Pertanyaan umum

Apakah Codex masih bisa memakai wire_api = "chat"?

Tidak. Codex menghapus dukungan Chat Completions di PR #10157, yang di-merge pada 2026-02-03. wire_api kini hanya menerima responses, dan chat gagal saat startup. Ubah menjadi wire_api = "responses" atau hapus barisnya; itu memang nilai bawaan.

Apakah base_url Codex perlu memakai /v1?

Codex menambahkan /responses ke base_url. Dengan Wokey, https://api.wokey.ai dan https://api.wokey.ai/v1 sama-sama bisa dipakai. Jangan menambahkan /responses sendiri, atau Anda mendapat 404 Route POST:/responses/responses not found.

Bisakah API key ditaruh langsung di config.toml?

Kolom api_key di tabel provider membuat konfigurasi gagal di-parse, karena Codex menolak kolom provider yang tidak dikenal. Sebutkan nama variabel lingkungan dengan env_key lalu export variabel itu.

Bisakah Codex memakai Claude atau model non-GPT lain?

Di Wokey, bisa: gateway mengonversi permintaan Responses ke protokol upstream. Konversi ini menghilangkan sebagian tool khusus Codex, jadi untuk coding pilih model dengan /v1/responses native, seperti gpt-6-sol, grok-4.7, atau deepseek-v4.1-flash.

Mengapa konfigurasi [profiles] saya berhenti berfungsi?

Sejak Codex 0.134.0, --profile name menumpangkan ~/.codex/name.config.toml, dan tabel [profiles.name] di config.toml tidak lagi dibaca. Pindahkan konfigurasi itu ke berkas tersendiri.