Setup
To configure it by hand, add the provider to~/.codex/config.toml:
wire_api = "responses" sends Codex’s requests to Opper’s Responses endpoint. web_search = "disabled" turns off Codex’s default cached web search, which the gateway can’t serve across providers. The CLI passes both on every run.
Then export your key and start Codex:
Choosing a model
Pass any Opper model ID with--model, or set a default in config.toml:
tools capability. Browse IDs in the model catalog.
Troubleshooting
404 Model Not Found
404 Model Not Found
Copy the model ID exactly from the catalog — it includes the provider prefix, as in
anthropic/claude-sonnet-4-6.502 on Gemini, DeepSeek, and other non-OpenAI models
502 on Gemini, DeepSeek, and other non-OpenAI models
If the error says
web_search is not supported, Codex is requesting its default cached web search, which the gateway can’t serve for those models. Add web_search = "disabled" at the top level of config.toml.Codex ignores the provider
Codex ignores the provider
model_provider = "opper" and web_search = "disabled" have to sit at the top level of config.toml, not inside the [model_providers.opper] table. TOML tables capture every key that follows them.Related
Logs
Every Codex call, with model, latency, tokens, and cost.
All integrations
Every app that runs on Opper.