Codex CLI (OpenAI)
Set up the Codex CLI with GetVibe API: config.toml, auth.json and environment variables. wire_api = "responses" is required — Codex calls /v1/responses.
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 CLI is an agentic tool from OpenAI for working with code in the terminal. It uses the /v1/responses endpoint, so the wire_api = "responses" parameter is required.
config.toml
Add the provider to ~/.codex/config.toml:
model = "gpt-6.1-sol"
model_provider = "getvibe"
model_reasoning_effort = "high"
[model_providers.getvibe]
name = "GetVibe API"
base_url = "https://getvibeapi.com/v1"
wire_api = "responses"
env_key = "GETVIBE_API_KEY"Primary method: environment variable
Set the variable named by env_key:
export GETVIBE_API_KEY="PASTE_YOUR_GETVIBE_KEY_HERE"
codexAlternative: auth.json
For this option, remove env_key and replace the provider block with this:
model = "gpt-6.1-sol"
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 = trueThen put the real key in ~/.codex/auth.json under the exact name OPENAI_API_KEY. The $GETVIBE_API_KEY string is not expanded inside JSON.
{"OPENAI_API_KEY": "PASTE_YOUR_GETVIBE_KEY_HERE"}/v1/responses (OpenAI Responses API format). Without wire_api = "responses" requests would go to the wrong endpoint.