Skip to main content
All clients

Codex

OpenAI’s coding agent, on a separate bf16 profile.

Base URL
https://api.bf16.ai/v1
Protocol
openai-responses

Who this is for
Codex users who want a second profile rather than a swap.

Commands show $BF16_API_KEY. Sign in to fill in your own key automatically.

  1. 1

    Export your key

    The profile reads BF16_API_KEY from your shell environment.

    export BF16_API_KEY=sk-bf16-v1-...
  2. 2

    Write the profile

    ~/.codex/bf16.config.toml
    # ~/.codex/bf16.config.toml  (Codex 0.134+ profile file)
    model = "deepseek/deepseek-v4.1-flash-uncensored"
    model_provider = "bf16"
    model_context_window = 1048576
    model_auto_compact_token_limit = 900000
    
    [model_providers.bf16]
    name = "bf16.ai"
    base_url = "https://api.bf16.ai/v1"
    wire_api = "responses"
    env_key = "BF16_API_KEY"
  3. 3

    Start Codex on it

    Your default `codex` profile stays exactly as it was.

    mkdir -p ~/.codex
    cat > ~/.codex/bf16.config.toml <<'EOF'
    model = "deepseek/deepseek-v4.1-flash-uncensored"
    model_provider = "bf16"
    model_context_window = 1048576
    model_auto_compact_token_limit = 900000
    [model_providers.bf16]
    name = "bf16.ai"
    base_url = "https://api.bf16.ai/v1"
    wire_api = "responses"
    env_key = "BF16_API_KEY"
    EOF
    codex --profile bf16

How to know it worked

  • Codex reports the bf16 provider at startup.
  • The request shows up in your console logs.
  • curl https://api.bf16.ai/v1/models -H "Authorization: Bearer $BF16_API_KEY"

Common errors

Symptom
Codex ignores the profile.
Cause
It was started without --profile bf16.
Fix
Pass --profile bf16, or copy those fields into ~/.codex/config.toml.
Symptom
400 on an unsupported wire format.
Cause
wire_api is missing or set to chat.
Fix
Use wire_api = "responses", as the profile above does.

Do not have it yet?

npm install -g @openai/codex
Official docs