Codex
Codex talks to an OpenAI-compatible endpoint. sotatek-proxy forwards the path
1:1, so pointing Codex at http://127.0.0.1:3817/openai/v1 reaches Bifrost’s
OpenAI-compatible route and adds local attribution headers along the way.
Bifrost currently exposes two Codex model providers on this route:
| Provider | Models |
|---|---|
fridaycodex | gpt-5.5, gpt-5.4 |
openai | gpt-5.5, gpt-5.4, gpt-5.5-codex, gpt-5.3-codex, and the full list |
Pick one provider first, then run the matching setup command or paste the
matching config.toml block below. The Bifrost key is stored in
experimental_bearer_token; no separate environment variable is needed.
Prerequisites
Section titled “Prerequisites”- Codex CLI installed
- sotatek-proxy installed and running on
127.0.0.1:3817 - A Bifrost virtual key (
sk-bf-xxx) — contact your admin
Configure with CLI
Section titled “Configure with CLI”Run one command based on the provider you want Codex to use. The CLI rewrites
~/.codex/config.toml with a clean Codex config and maps the profile to the
correct model id.
sotatek-proxy setup -p codex -m fridayaix -k sk-bf-your-virtual-key-heresotatek-proxy setup -p codex -m openai -k sk-bf-your-virtual-key-hereIf the file already exists, the CLI creates a timestamped backup first. It keeps
an existing experimental_bearer_token only when -k is omitted; stale
providers, profiles, and model ids are removed. Older openai_api_key values
are migrated into experimental_bearer_token.
Manual config.toml
Section titled “Manual config.toml”Open ~/.codex/config.toml (create it if missing). If you already have top-level
keys, update them to match one block below. Replace sk-bf-your-virtual-key-here
with your real Bifrost virtual key.
model = "fridaycodex/gpt-5.5"model_provider = "sotatek"model_reasoning_effort = "high"
[model_providers.sotatek]name = "Sotatek Proxy"base_url = "http://127.0.0.1:3817/openai/v1"experimental_bearer_token = "sk-bf-your-virtual-key-here"wire_api = "responses"model = "openai/gpt-5.5"model_provider = "sotatek"model_reasoning_effort = "high"
[model_providers.sotatek]name = "Sotatek Proxy"base_url = "http://127.0.0.1:3817/openai/v1"experimental_bearer_token = "sk-bf-your-virtual-key-here"wire_api = "responses"Verify
Section titled “Verify”codex "Hello, which model are you? Reply in 1 sentence."A successful response means Codex is routing through sotatek-proxy to Bifrost.
Available models
Section titled “Available models”Keep model_provider = "sotatek" and change only the top-level model.
FridayCodex
Section titled “FridayCodex”FridayCodex has two Codex models:
| Model | Notes |
|---|---|
fridaycodex/gpt-5.5 | Primary |
fridaycodex/gpt-5.4 | Fallback |
OpenAI
Section titled “OpenAI”OpenAI exposes the full Codex model set:
| Model | Notes |
|---|---|
openai/gpt-5.5 | Primary |
openai/gpt-5.4 | Fallback |
openai/gpt-5.5-codex | Codex primary |
openai/gpt-5.3-codex | Recommended fallback |
openai/gpt-5.2-codex | |
openai/gpt-5.1-codex | |
openai/gpt-5.1-codex-max | |
openai/gpt-5.1-codex-mini | |
openai/gpt-5-codex | |
openai/codex-mini-latest | Lightweight |
Quick reference
Section titled “Quick reference”| Setting | FridayCodex | OpenAI |
|---|---|---|
| Config file | ~/.codex/config.toml | ~/.codex/config.toml |
| CLI profile | -m fridayaix | -m openai |
| Base URL | http://127.0.0.1:3817/openai/v1 | http://127.0.0.1:3817/openai/v1 |
| Provider id | sotatek | sotatek |
| Default model | fridaycodex/gpt-5.5 | openai/gpt-5.5 |
| Wire API | responses | responses |
| Key field | experimental_bearer_token | experimental_bearer_token |
| Key format | sk-bf-xxx | sk-bf-xxx |
Troubleshooting
Section titled “Troubleshooting”| Issue | Solution |
|---|---|
| Authentication failed | Confirm experimental_bearer_token is set in config.toml and is a valid Bifrost virtual key. |
Connection refused on 127.0.0.1:3817 | sotatek-proxy is not running — sotatek-proxy status && sotatek-proxy start. |
| Model not found | Run setup with -m fridayaix or -m openai, or use a provider-prefixed model in manual config. |
| Key not picked up | Confirm the key is stored in experimental_bearer_token; no env var is required. |
| Wrong endpoint | base_url must end with /openai/v1 and wire_api must be responses. |