Sunday, July 12, 2026

Your Codex Pro Plan Is Burning Credits - Here's the Fix

 

Photo by Mariia Shalabaieva on Unsplash

If you’re using Codex Pro and watching your 5x or 20x plan drain faster than expected, the problem isn’t your workload — it’s how Codex routes requests to subagents. When you set the model picker to Ultra for a complex task, every subagent Codex spawns inherits that same routing tier, and your credits burn at Ultra rates for simple operations too.

Why Your Credits Disappear Faster Than Expected

The Codex Pro plan meters usage per request tier. When you’re in the editor and select GPT-5.6 Sol at “Ultra” from the model picker, you expect only that session to use Ultra credits. But every subagent Codex creates during that session — for code review, file search, git operations — also inherits the Ultra routing tier.

In my experience, this is the single most common cause of plan overrun. You run one Ultra task, forget to switch back, and the next 15 subagent calls all bill at Ultra rates. By the end of the week, your 5x plan has burned through credits that should have lasted weeks.

How Subagent Routing Actually Works

Codex uses a hierarchical model for task execution. When you send a prompt, Codex evaluates the complexity and routes it to the appropriate model tier. The model picker sets a session-level default — think of it as the “base tier” for that session.

The routing flaw is that subagents inherit this base tier rather than getting evaluated independently. A subagent that handles a trivial operation — like listing files or reading a short document — should route to a lower tier, but it inherits Ultra because the session default is Ultra.

A config.toml file at the root of your project can override this inheritance. Instead of every subagent inheriting the session default, you can set per-agent routing rules that evaluate each subagent’s task independently.

The 5-Minute Config.toml Fix

The fix is a single block in your project’s config.toml:

toml
[codex.routing]
default = "auto"

[codex.routing.agents]
"code-review" = "standard"
"file-search" = "fast"
"git" = "fast"
"general" = "auto"


This tells Codex to evaluate each subagent type independently instead of inheriting the session default. The "auto" tier routes simple requests to the cheapest adequate model and only escalates to Ultra when the task genuinely requires it.
Step 1: Open your project root and check for an existing config.toml. If you don't have one, create it.
Step 2: Add the routing block above. Adjust the agent names to match the subagents your workflow actually uses.
Step 3: Save the file. Codex detects config.toml changes on your next session — no restart needed.
Step 4: Refresh your Codex dashboard and verify per-agent credit consumption dropped.
What to Watch For After the Fix

After applying the config, you should see lower per-session credit consumption for file-search and git operations, standard-tier routing for code review instead of Ultra, and the same Ultra performance when you explicitly need it for complex tasks.

One thing to note: setting every agent to “fast” or “standard” isn’t the goal. The goal is accurate routing — each subagent gets the tier it actually needs. I’ve found that letting code-review and general agents use “auto” gives the best balance of speed and credit efficiency.

FAQ

Why does changing the model picker affect subagents?

The model picker sets a session-level routing default that propagates to all subagents Codex spawns during that session. Subagents don’t re-evaluate their routing independently unless you override this with a config.toml rule. This is by design for simplicity, but it means one Ultra selection can cascade into many Ultra-billed calls.

Can I set different routing per subagent type?

Yes — that’s exactly what the config.toml block does. Each agent type under [codex.routing.agents] gets its own routing rule. If you find your code review subagent is still burning too many credits, set it to “standard” explicitly. If a subagent handles truly trivial operations, “fast” is usually sufficient.

Will this fix work on both Codex 5x and 20x Pro plans?

Yes. The routing hierarchy and config.toml integration work the same way on both plan tiers. The difference is the total credit pool — 5x has fewer credits to burn, so the fix has a more noticeable impact there, but 20x users will also see extended plan life from proper routing.

What happens if I set Ultra on purpose for specific agents?

You can still use Ultra for the agents that need it. Set those agent types to “ultra” explicitly in config.toml, and leave the rest at “auto” or “standard.” The fix isn’t about avoiding Ultra — it’s about only paying Ultra rates for work that actually needs Ultra.

Does config.toml affect rate limits or concurrency?

No. Config.toml routing rules only affect the model tier assigned to each subagent request. Rate limits and concurrency caps are set at the plan level and aren’t affected by routing configuration. If you’re hitting rate limits, you need to adjust your workflow, not your routing.

Open your project root right now, create or edit config.toml, and add the routing block. It takes less than 5 minutes, and the difference will show in your next dashboard check. If you’re on a shared team plan, share this with your team — one misconfigured session can burn through collective credits faster than anyone notices.

No comments :

Post a Comment