Codex guide only

Use Chutes through Codex-compatible config surfaces.

Codex support is guide-only: use Chutes where the runtime accepts an OpenAI-compatible base URL, and fall back to a sidecar, SDK script, or MCP bridge for locked runtimes.
Codex draftCodex recipesOpenAI-compatible guideCodex recipes
Status
Guide only
Base URL
https://llm.chutes.ai/v1
Live model example
Qwen/Qwen3-32B-TEE
Catalog checked
Jun 25, 2026; context 40K

Full setup walkthrough

Everything you need is on this page — no need to leave for the toolkit. Each step is copy-paste runnable and uses a live model id from the catalog.

  1. 01

    Map Chutes into the environment

    Keep CHUTES_API_KEY as the durable secret name, and map it into OpenAI variable names only inside tools that require them.
    env vars
    bash
    export CHUTES_API_KEY=cpk_...
    
    # For tools that read OpenAI's variable names:
    export OPENAI_BASE_URL="https://llm.chutes.ai/v1"
    export OPENAI_API_KEY="$CHUTES_API_KEY"
  2. 02

    Or use a config-driven provider block

    For config-driven runtimes, use the OpenAI-compatible shape with a live model id:
    provider block
    json
    {
      "base_url": "https://llm.chutes.ai/v1",
      "api_key_env": "CHUTES_API_KEY",
      "model": "Qwen/Qwen3-32B-TEE"
    }
  3. 03

    Smoke-test the key

    /v1/models is public, so a model list does not prove your key works. Validate with an authenticated completion:
    authenticated check
    python
    import os
    from openai import OpenAI
    
    client = OpenAI(
        base_url="https://llm.chutes.ai/v1",
        api_key=os.environ["CHUTES_API_KEY"],
    )
    
    resp = client.chat.completions.create(
        model="Qwen/Qwen3-32B-TEE",  # any live ID from /v1/models
        messages=[{"role": "user", "content": "Reply with one short sentence confirming Chutes is configured."}],
    )
    print(resp.choices[0].message.content)
  4. 04

    Locked runtime? Use a fallback

    If your Codex build does not expose custom provider configuration, keep Chutes in a sidecar tool, an SDK task runner, an MCP server, or a repo-local script.
    Honesty boundary: no upstream Codex build is claimed to ship a built-in Chutes provider. This is the OpenAI-compatible configuration surface that Codex-style agents accept.

Codex honesty boundary

Supported
Use Chutes where Codex accepts OpenAI-compatible configuration.
Fallback
Use a sidecar, SDK script, or MCP bridge when the runtime is locked.
Not claimed
Upstream Codex ships a built-in Chutes provider.
Status
guide_only in the toolkit use-case data.

Troubleshooting

Symptom
The model ID fails
Likely cause
The catalog changed or the client cached model metadata.
Fix
Refresh /v1/models and update the config.
Symptom
Auth falls into anonymous limits
Likely cause
The key is missing or not sent as Bearer auth.
Fix
Export CHUTES_API_KEY=cpk_... and send Authorization: Bearer.
Symptom
Routing aliases fail
Likely cause
Saved default aliases need a dashboard Model Routing pool.
Fix
Use a concrete model ID or an inline comma-separated pool first.