Personal
$10/month
- 50M tokens a week
- 20 requests per minute
- For one person
Codex already lets you name your own model provider. Name Unbiased. Add one table to ~/.codex/config.toml, set the model to pareto, and the same sandbox, approvals and codex exec scripts carry on as before. Each request goes to Pareto, which selects frontier and open models for it and blends their outputs into one answer.
Tested live with Codex CLI 0.162.150M tokens a week
Codex reads custom providers from ~/.codex/config.toml (or $CODEX_HOME/config.toml). Add a provider for Unbiased, make it the default, and keep the key in an environment variable.
Choose a plan, then create a key in the Unbiased platform. New accounts are reviewed and approved by a person before the key works.
In ~/.codex/config.toml, add a [model_providers.unbiased] table with base_url = "https://api.unbiased.ai/v1" and wire_api = "responses". Keep the /v1: Codex adds /responses after it.
Set model_provider = "unbiased" and model = "pareto" at the top of the file. Codex has no model list to pick from here, so type the name yourself.
env_key tells Codex which environment variable holds the key, so export UNBIASED_API_KEY and run codex. For scripts, use codex exec -s workspace-write (add --skip-git-repo-check outside a git repo).
pareto). It found the off-by-one in a failing Python test, edited the file and reran the test to green. Run record.model = "pareto" model_provider = "unbiased" [model_providers.unbiased] name = "Unbiased" base_url = "https://api.unbiased.ai/v1" env_key = "UNBIASED_API_KEY" wire_api = "responses"
export UNBIASED_API_KEY=your-unbiased-api-key # interactive codex # headless (add --skip-git-repo-check outside a git repo) codex exec -s workspace-write "Fix the failing test in test_chunk.py"
Put these lines in your user-level file. Codex ignores model_provider and model_providers in a project’s own .codex/config.toml.
Codex keeps its sandbox, its approvals and its habits. Only the provider and the model name are new.
AGENTS.mdUnchangedcodex exec and your scripts around itUnchangedparetoapi.unbiased.ai/v1/responsesPareto is Unbiased’s blended AI model. On each request it selects frontier and open models and blends their outputs into one answer, so OpenAI Codex CLI talks to one model string, pareto, and never has to pick.
“When the frontier improves, Pareto improves; when frontier prices fall, you should benefit.” From the pricing page.
How a Pareto answer gets made →Agents make many model calls per task, so the price of a finished task matters more than the price of a token. The model card publishes both for Pareto on two public agent benchmarks.
Pareto 26.10, preliminary October 1, 2026 runs that may change; denominators and the cost method still require confirmation. Cost is the reported mean USD per task at API rates, not an estimate for your workload. Model card and method.
One API key works across OpenAI Codex CLI and any other tool you point at Pareto. Pick a monthly allowance, or pay per token on Team.
$10/month
$100/month
Pay as you go
Subscriptions are for one person and are not unlimited. New API accounts are reviewed by a person before access turns on, and commercial or production use needs a separate written agreement. Rates and limits are on Pricing.
Use wire_api = "responses". It is the setting the Codex docs show for custom providers, and it is what we ran: Codex CLI 0.162.1 sent its requests to https://api.unbiased.ai/v1/responses, found the bug, patched the file and reran the test to green. Format compatibility is not a promise that every Codex feature works, so tell us if one doesn’t.
It didn’t stop our run. Codex has metadata for OpenAI’s own model names and uses fallback metadata for any other name, including pareto. It prints that warning, says fallback metadata can degrade performance, and carries on. Our test run showed the warning and still found the bug, patched the file and reran the test to green.
No. With model_provider = "unbiased", Codex sends requests to Unbiased with the key in UNBIASED_API_KEY, and your Unbiased plan pays for them. Your ChatGPT sign-in stays where it is for when you switch back.
Yes. Leave config.toml alone, put the same lines in ~/.codex/unbiased.config.toml, and start Codex with codex --profile unbiased when you want Pareto. To switch back for good, delete the model and model_provider lines.
Codex reserves the provider IDs openai, ollama and lmstudio for its built-in providers. Any other ID works; we use unbiased.
No. Pareto is Unbiased’s model. OpenAI Codex CLI is made by OpenAI, and Unbiased is not affiliated with or endorsed by them. You keep OpenAI Codex CLI and point it at the Unbiased API.
Requests over your plan’s limits return an HTTP 429 error. Personal includes 50M tokens a week and 20 requests per minute. Personal Max raises that to 600M a week and 60 requests per minute for $100/month. Team uses prepaid pay-as-you-go credits with no weekly token cap.
No. You send every request to one model string, pareto. Pareto selects frontier and open models for each request and blends their outputs into one answer.
Personal and Personal Max are not our zero data retention tier: prompts and responses may be kept up to 30 days, as section 5(c) of the Terms explains. For work that must not be kept, ask about the Zero Data Retention API on the Private AI page.
The same key and the same model string go into each of these. See them all.
Product names belong to their owners. Except where a guide says otherwise, Unbiased is not affiliated with or endorsed by the makers of the tools on this page.
One table in config.toml, one key and the same terminal. Pareto starts at $10 a month for 50M tokens a week.