Codex Desktop (ChatGPT)
Step-by-step Codex setup in the ChatGPT app for Windows and macOS: sign out of ChatGPT, sign in with a GetVibe API key, base_url and spend verification.
Ready-made config
Built from our catalog on request: the API address, every published model with its context and output limit, and the recommended settings. It contains no key. Codex reads the key from GETVIBE_API_KEY (env_key). Cheap model for one run: codex -m <model ID>; maximum reasoning: codex -c model_reasoning_effort="high". Delete [profiles.*] tables left from older versions of this file — Codex 0.134 and later refuses --profile while they are present.
# macOS / Linux
mkdir -p ~/.codex
curl -fsSL https://getvibeapi.com/api/integrations/codex.toml -o ~/.codex/config.toml# Windows PowerShell
New-Item -ItemType Directory -Force "$HOME\.codex" | Out-Null
Invoke-WebRequest https://getvibeapi.com/api/integrations/codex.toml -OutFile "$HOME\.codex\config.toml"- Main model —
gpt-6.1-sol: strong agentic coder with a large context at a moderate price; the bare id keeps cross-channel failover on. - Small tasks —
deepseek-v4.1-flash: cheapest capable model with a 1M context, for titles, summaries, commit messages and compaction. - Streaming on, a 600-second request timeout, reasoning effort medium: a long reasoning answer takes minutes, and without streaming it runs into the wait limit.
- Bare model IDs everywhere, no :suffix — that keeps automatic failover to a healthy channel on.
?models= with comma-separated IDs to the URL.Codex Desktop now lives inside the ChatGPT app for Windows and macOS. You can connect it to GetVibe API without a terminal: the app reads the same config.toml file that Codex CLI uses.
1. Install the app
Open the official ChatGPT desktop page, choose macOS or Windows, install and launch the app. In the top-left switch select Codex.
Codex Desktop: exact key setup
Codex Desktop is a GUI app. It must use GetVibe from config.toml and the key from auth.json, not an active ChatGPT session.
config.toml
Save this block to ~/.codex/config.toml. The getvibeapi.com placeholder is replaced automatically.
model = "gpt-5.6-luna"
model_provider = "getvibe"
model_reasoning_effort = "high"
[model_providers.getvibe]
name = "GetVibe API"
base_url = "https://getvibeapi.com/v1"
wire_api = "responses"
requires_openai_auth = trueauth.json
Save this JSON to ~/.codex/auth.json and replace the value with your real sk-pv-… key.
{"OPENAI_API_KEY": "PASTE_YOUR_GETVIBE_KEY_HERE"}Fully restart the app
After changing config.toml or auth.json, fully quit the app: on macOS press Cmd+Q; on Windows choose Exit. Closing the window or using Restart daemon alone is not enough: the app must reread both files.
Open a new Codex chat, send a short test, then check for a new record in Dashboard → Usage. If no record appears, the request did not go through GetVibe.