Codex CLI

OpenAI's terminal agent, pointed at Tium with a custom provider in config.toml.

Setup

Point Codex CLI at Tium

You need the base URL https://api.tium.ai/v1 and an API key from your dashboard. Keys are shown once at creation.

  1. 1.Add the provider to ~/.codex/config.toml

    Codex reads a user-level config at ~/.codex/config.toml and an optional project-level one at .codex/config.toml. Either works.

    ~/.codex/config.toml
    model = "glm-5.3-flash"
    model_provider = "tium"
    
    [model_providers.tium]
    name = "Tium"
    base_url = "https://api.tium.ai/v1"
    env_key = "TIUM_API_KEY"
    # chat, not responses. POST /v1/responses is not served.
    wire_api = "chat"
  2. 2.Export your key under the name env_key gives

    Codex reads the key from the environment variable named by env_key, so export TIUM_API_KEY. The key never goes in config.toml.

Worth knowing

What Codex CLI gets wrong

Tool-specific behaviour that surprises people, and what to do about it.

wire_api must be chat, not responses

This is the setting that decides whether it works at all. Codex speaks either the chat-completions or the responses API, and POST /v1/responses returns 404 here, because we serve /v1/chat/completions and /v1/completions. Left on responses, every request fails with a key that is perfectly good.

The provider id cannot be openai

Codex reserves openai, ollama and lmstudio as built-in provider ids and refuses to let a custom block reuse them. tium is used above for that reason.

Elsewhere

Other tools

The same base URL and key work anywhere that takes an OpenAI-compatible endpoint.