Theme
Language

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.
The catalog changes: when new models appear, download the file again. To keep only some models, add ?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"
codex

Alternative: 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 = true

Then 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"}
Codex CLI goes strictly to /v1/responses (OpenAI Responses API format). Without wire_api = "responses" requests would go to the wrong endpoint.
A 403 Country, region, or territory not supported from api.openai.com means your GetVibe key was not picked up, not that GetVibe is blocked in your country.
Codex CLI + GetVibe API — config.toml, wire_api responses | GetVibe API