Codex CLI supports custom model providers, so you can point it at OpenRouter instead of the default OpenAI endpoint.
#!/bin/bash
set -euo pipefail
export OPENROUTER_API_KEY=`keyring get codex openrouter-key`
exec npx @openai/codex \
-c 'model_provider="openrouter"' \
-c 'model="openai/gpt-5-codex"' \
-c 'model_providers.openrouter.name="OpenRouter"' \
-c 'model_providers.openrouter.base_url="https://openrouter.ai/api/v1"' \
-c 'model_providers.openrouter.env_key="OPENROUTER_API_KEY"' \
-c 'model_providers.openrouter.wire_api="responses"' \
"$@"Save that as ~/bin/codex, then make it executable:
chmod +x ~/bin/codexmodel_provider="openrouter"tells Codex to use the custom provider.base_url="https://openrouter.ai/api/v1"points Codex to OpenRouter's OpenAI-compatible API.env_key="OPENROUTER_API_KEY"tells Codex which environment variable contains the bearer token.model="openai/gpt-5-codex"is just a default; swap it for any OpenRouter model that supports the Responses API.
Then run:
codex