Appearance
Site language
Price currency
Compatible tools
Terminal agentWorks

Codex CLI + Evrona

Codex CLI understands only the OpenAI Responses API: from February 2026 on, wire_api = "chat" stops it from starting. The Evrona gateway serves POST /v1/responses itself, so no translating proxy is needed: a provider in config.toml and a separate profile file will do, and your usual codex with its old settings works as it did.

What to prepare

Base URLGateway address
https://evrona.ru/v1
Your API keyExample; yours is in the dashboard
ev-YOUR_KEY
Model IDAny catalog model
google/gemini-3.7-flash

No key yet? Create an account — keys are created in the dashboard under “API keys”, and the full value is shown only once. Copy the Model ID from the catalog in full, including the prefix before “/”.

Connection steps

  1. Copy the [model_providers.evrona] table from the first tab into ~/.codex/config.toml: base_url gets the gateway address ending in /v1, env_key gets the name of the environment variable that holds your key, plus wire_api = "responses". Keep every other line of the file unchanged.

  2. In the same folder, add the profile file ~/.codex/evrona.config.toml from the second tab: model_provider = "evrona", model takes an ID from the catalog, web_search = "disabled" and multi_agent = false. Since version 0.134 Codex stores profiles as separate files, and a [profiles.evrona] table in config.toml breaks launching with --profile.

  3. The web_search = "disabled" line is mandatory: the gateway does not run OpenAI's built-in web search and without it returns 400 with that same hint. multi_agent = false strips the sub-agent tools out of every request — about 1,700 tokens; leave it true only if you actually use Codex sub-agents.

  4. Keep the key in the EVRONA_API_KEY environment variable (third tab): via export on macOS and Linux, via $env: or setx in PowerShell. The key is issued in the dashboard and visible only at creation; never write it into the config files.

  5. Start it with codex --profile evrona. The full agentic mode is available: Codex reads and edits files, runs terminal commands, holds multi-turn conversations and streams its output. Without --profile it stays on your previous provider.

[model_providers.evrona]
name = "Evrona"
base_url = "https://evrona.ru/v1"
env_key = "EVRONA_API_KEY"
wire_api = "responses"
Good to know

We recommend the openai/gpt-5.3-codex model: Codex prompts and tools are tuned for GPT models, and this one has a cached-input rate in the catalog — Codex sends the whole history with every request, and the repeated beginning goes at the discounted rate. Models from other families with tool calling will do as well — anthropic/claude-sonnet-4.6, for instance. Codex holds the conversation history itself (store = false, the full input every turn), so the gateway turns down previous_response_id with code unsupported_parameter, and a response cannot be fetched or deleted by id — 404. OpenAI's built-in tools (web_search, file_search, code_interpreter, tool_search, custom) are not run by the gateway, which answers them 400 with the type name; functions that Codex runs itself work in full. The reasoning, include, prompt_cache_key, metadata, parallel_tool_calls, store and text.verbosity fields are accepted and never reach the model — they are OpenAI telemetry and hints; any text.format other than text, as well as input_file, answer 400 unsupported_parameter. Images work: an input_image part with a data:image/png;base64,… URL (PNG, JPEG or WebP, up to 5 MB each, up to 50 per request) reaches the model, including an image returned by a tool — the gateway hands it to the model as a separate user turn. A detail of original counts as high; remote URLs are not fetched, and a model without the "Understands images" mark returns unsupported_capability. The warning "Model metadata for … not found. Defaulting to fallback metadata" at the start of every session is normal: Codex does not know our IDs and falls back to default settings. Output ceiling: Codex does not set max_output_tokens, so every request reserves the input plus 32,000 output tokens — or as much as the remaining balance covers (about $0.09 per request for gpt-5.3-codex). With less than that on the balance a long answer is cut by balance (response.incomplete), Codex repeats the turn up to five times and hits 402 — keep several such reserves on the balance. Reserves add up only with parallel sub-agents (multi_agent = true). On Windows, a non-interactive codex exec without a configured sandbox blocks writes to files, and sandbox = "elevated" in the [windows] section of config.toml (the value the Codex desktop app sets) needs a UAC prompt and, in a session without a screen, fails while launching the helper; for codex exec set sandbox = "unelevated" and run with --sandbox workspace-write. In interactive codex the same thing is handled by action approvals. Editing files with Cyrillic text through apply_patch in PowerShell may go into retries — the turn gets more expensive.

Gateway capabilities and limits

Function calling is supported, so agentic modes work. Strict JSON mode (response_format) and the retired functions format are turned down with an unsupported_parameter error — no parameter is lost in silence. Image input is taken by models marked "Understands images" in the catalog: a content part of type image_url with a data:image/png;base64,… URL (PNG, JPEG or WebP, up to 5 MB each, up to 50 per request). Remote URLs are not fetched, and a model without that mark returns unsupported_capability — both errors name the reason outright.