Skip to content
opencodex — Any LLM, One Proxy, Zero Patches

opencodex

Use any LLM with OpenAI Codex — Anthropic, Google, xAI, Kimi, Ollama Cloud, and any OpenAI-compatible endpoint. One proxy, zero Codex patches.

opencodex (ocx) is a local proxy that sits between OpenAI Codex and any LLM provider. Codex only speaks the Responses API (/v1/responses); opencodex translates that protocol — in both directions, including streaming, tool calls, reasoning, and images — into whatever wire format your provider expects, then translates the answer back.

Codex CLI / App / SDK ──/v1/responses──▶ opencodex ──▶ Any provider
Anthropic · Google · xAI · Kimi · Ollama Cloud · Groq
OpenRouter · Azure · DeepSeek · GLM · …and OpenAI itself

The opencodex dashboard — a dark provider control panel showing live proxy status, routed providers, and available models

Codex App showing opencodex routed models with reasoning effort picker

Any provider

Five adapters cover Anthropic Messages, Google Gemini, Azure, the OpenAI Responses passthrough, and every OpenAI-compatible Chat Completions endpoint — plus an 18-provider API-key catalog.

OAuth or API key

Log in with your xAI, Anthropic, or Kimi account (OAuth, auto-refreshed), forward your ChatGPT login, or paste an API key. Keys can be ${ENV_VARS}.

Drops into Codex

ocx init injects a provider into $CODEX_HOME/config.toml (default ~/.codex/config.toml) and writes a shared Codex catalog, so Codex CLI, TUI, App, and SDK all see the same routed models and subagent picks. ocx stop restores native Codex cleanly.

Subagents and transports

Pin up to five routed or native models for Codex spawn_agent. HTTP/SSE stays the default; Responses WebSocket support is advertised only when websockets: true.

Sidecars

Give non-OpenAI models real web search and image understanding by routing those capabilities through a gpt-5.4-mini sidecar over your ChatGPT login.

Terminal window
# Install
bun install -g @bitkyc08/opencodex # or: npm install -g @bitkyc08/opencodex
# Interactive setup (writes config + injects into Codex)
ocx init
# Start the proxy
ocx start
# Use Codex normally — it now routes through opencodex
codex "Write a hello world in Rust"