Codex burns ~1.5K tokens on font rules for backend sessions

Codex gpt-5.5 cold-starts at ~15K tokens; ~1.5K are frontend rules. Issue #19720 requested removal and is now closed.

Codex burns ~1.5K tokens on font rules for backend sessions
Share

Open a fresh Codex session with nothing configured — no plugins, no skills, memories off — and roughly 15,000 input tokens are already spent before you type a word. A public GitHub issue argues that about a tenth of that goes to frontend design rules most backend developers never use.

What Issue #19720 Found: Frontend Guidance Bloat Preloaded in Codex

Screenshot of https://github.com/asgeirtj/system_prompts_leaks/blob/86a95b27da09282888cd9ccb7779cbd15c455658/OpenAI/codex/gpt-5.5.md

Codex issue #19720 is a filed complaint that OpenAI's gpt-5.5 base system prompt spends roughly ~1.5K tokens on frontend/UI design guidance that non-frontend workflows inherit but never use. It was opened April 26, 2026 by @whoschek against the openai/codex repository from Codex App version 26.422.30944 on macOS under a Business subscription, and labeled app, context, enhancement, and model-behavior . One correction to the framing: the issue is now closed, with no on-thread maintainer commitment to remove or gate the block .

The reporter's measurement: a bare thread — zero MCP servers, zero skills, a single-line AGENTS.md — still loads on the order of ~15K input tokens at startup, with ~1.5K attributed to the aesthetic block. The argument is that this is "systematic context pollution": backend, infrastructure, data, and research sessions pay for UI rules they never invoke.

What the block actually says reads as design taste, not pixel math. OpenAI's own prompting materials tell the model to "avoid collapsing into 'AI slop' or safe, average-looking layouts," to use "expressive, purposeful fonts" (not Inter, Roboto, Arial, or system stacks), to define CSS variables, avoid purple-on-white defaults, and add "a few meaningful animations (page-load, staggered reveals)" .

"Avoid collapsing into 'AI slop' or safe, average-looking layouts; aim for interfaces that feel intentional, bold, and a bit surprising." — OpenAI Codex prompting guidance (source: learn.chatgpt.com)

The primary evidence is a third-party leak, not an official dump. The repo asgeirtj/system_prompts_leaks lists the Codex gpt-5.5 file at 373 lines, 30.9 KB, with a "Frontend guidance" section starting near line 262 . The current official default.md on main — 275 lines, 20.4 KB — contains no such section, so provenance and current applicability stay uncertain . This audit was seeded by a developer YouTube walkthrough, but the documentary trail lives in the repo.

Before Proceeding: Inspect the Preload Footprint

Before Proceeding: Inspect the Preload Footprint

Before reaching for any mitigation, measure what your own setup actually loads — the numbers vary widely by CLI, extension, model, and enabled capabilities. The clearest breakdown comes from issue #19212, where a 'what is 2+2' query on the VS Code/Cursor extension v26.417.40842 returned Codex's own itemization :

  • System instructions: 2K–4K
  • Browsing/source-handling policy: 3K–5K
  • Developer coding instructions: 3K–5K
  • Tool schemas: 2K–4K
  • AGENTS.md + environment context: 0.5K–1K
  • User message: under 100 tokens

Fresh-thread totals cluster on the same point — a large hidden payload before any real work — but the magnitude depends entirely on configuration:

IssueSetupReported fresh-thread tokens
#19720Stripped (no MCP/skills/plugins)~15K
#18498Normal / most removed / capabilities off~21K–24K / ~10.9K / ~6.9K
#18526codex-cli 0.121.0, gpt-5.4 xhigh~102K–105K

Then check ~/.codex/config.toml: if model_instructions_file is unset, the Codex agent loop reads model-specific base_instructions bundled in the CLI binary . The frontend block, if still shipped, lives there — not in the default.md visible on GitHub main.

Available Levers to Trim the Frontend Guidance Bloat

Screenshot of https://openai.com/index/unrolling-the-codex-agent-loop/

You cannot delete the frontend block by name, but four levers reduce or replace it — ordered here from lowest to highest risk. Start with capability toggles, escalate to prompt overrides only if you still need the savings, and reach for a full base-instructions swap last.

Step 1 — Disable unused capabilities. In Codex settings, toggle off skills, apps, and plugins. Issue #18498 reports that a normal enabled setup carries roughly 21K–24K input tokens on a fresh thread, dropping to about 6.9K with those capabilities off — even when they were never used. This is the highest-return lever and carries no behavioral risk, since you are only unloading machinery you were not invoking.

Step 2 — Append developer instructions without touching the base prompt. Pass an extra instruction layer on the CLI:

codex -c developer_instructions='Skip frontend/UI styling guidance; this is a backend task.'

This is the mechanism maintainers pointed to when they closed issue #11588 ('Add system prompt customization flags') as completed on February 12, 2026. It layers on top of the base prompt rather than removing tokens, so it steers the model without editing sanctioned instructions.

Step 3 — Override base instructions entirely. Point Codex at your own file in ~/.codex/config.toml:

model_instructions_file = "/path/to/your.md"

This replaces the full bundled gpt-5.5 block, frontend rules included. It is the only lever that actually strips those tokens — but it also discards OpenAI's sanctioned instructions, so read the next section before you set it.

Step 4 — Package frontend guidance on demand. Vipul Gupta's MIT-licensed vipulgupta2048/codex-skills ships five design systems — Brutalist, Editorial, Retro-Futuristic, Soft Craft, and Industrial — as explicit skills that activate only for web-UI tasks. The aesthetic payload loads when you invoke it, not on every session, which is the progressive-discovery pattern issue #19720 originally requested.

Gotchas: No Toggle, and the Escape Hatch Carries a Warning

The catch with the levers above is that none of them surgically remove the frontend block. The model_instructions_file override replaces the entire base prompt, not just the ~1.5K-token frontend section, and OpenAI explicitly discourages it — deviating from the sanctioned instructions "may degrade performance" . There is no config.toml switch scoped to frontend guidance. Issue #19720's three proposed fixes — migrate to a skill, add a config toggle, or find another approach — were not committed to before the tracker was closed .

Part of the reluctance is architectural intent, not oversight. OpenAI's Codex prompting guide treats frontend quality as load-bearing, ranking it alongside autonomy and persistence, codebase exploration, and tool use as the most critical prompt sections . A related complaint, issue #19212 ("Your system prompt is too big"), was closed as "not planned" . Whether the gpt-5.5 frontend block still ships in the current CLI binary remains unconfirmed by official sources as of July 2026 — the public default base instructions no longer render that section, so treat every mitigation here as best-effort, not guaranteed.

codex-skills: A Demonstration of On-Demand Frontend Guidance Loading

The clearest working proof that the fix is feasible sits outside OpenAI's repo. Vipul Gupta's MIT-licensed vipulgupta2048/codex-skills (tagline: "Save yourself from the purple AI slop") repackages the aesthetic directives as explicit opt-in skills, so the frontend block loads only when a web-UI task requests it — never for backend, infrastructure, or research sessions. The project ships five design systems (Brutalist, Editorial, Retro-Futuristic, Soft Craft, Industrial) plus layout, motion, responsive, and accessibility patterns, activated on demand. That is exactly the progressive-discovery approach proposed in issue #19720, which OpenAI has not adopted officially. The concrete takeaway: use the community skill today, and watch the openai/codex repo for issues or PRs mentioning model-specific instruction gating — that is the first signal an official mechanism is coming.

Frequently asked questions

Is the ~1.5K frontend guidance block present in every Codex version?

Uncertain. The evidence is a third-party leak of the gpt-5.5 prompt in the asgeirtj/system_prompts_leaks repository , not an official OpenAI prompt dump. The current default base-instructions file (default.md) on openai/codex main contains no Frontend guidance section in the GitHub rendering . The block may be model-specific, app-specific, dynamically injected, or removed since the April 2026 report. The reliable check is your own machine: compare your cold-start token count against the baselines in section 2 before assuming you carry it.

Can I remove the frontend guidance block without breaking Codex?

Not surgically. The model_instructions_file option replaces the entire built-in instructions file rather than editing a single section, and OpenAI warns that deviating from sanctioned instructions may degrade performance. No targeted per-section toggle exists. The safest lever is disabling unused capabilities — plugins, skills, and apps — as covered in Step 1, which lowers the fresh-session baseline without touching the base instructions at all. That trims real quota without gambling on prompt integrity.

How much does this actually cost in dollars?

Very little at the billing line. At current API input rates, ~1,500 tokens is a fraction of a cent per cold start, and much of a fresh-session payload is typically cached rather than fully re-charged. The cost that matters is rate-limit quota and context-window space. At high session frequency — hundreds of cold starts a day across a team — the cumulative quota drain and the crowding of the usable context window outweigh the trivial per-request dollar amount.

What is the codex-skills repo and does it solve the problem?

vipulgupta2048/codex-skills is an MIT-licensed community project that packages frontend design as opt-in skills, loaded only for web-UI tasks . It demonstrates the "skill migration" fix requested in issue #19720 . It is not an official OpenAI mechanism, and it does not surgically remove the gpt-5.5 base-prompt block if that block ships in your CLI binary — it adds an on-demand alternative, not a removal path.

Why did OpenAI close issue #19720 without adding a toggle?

No documented on-thread explanation was given; GitHub shows #19720 closed with no maintainer commitment in-thread to remove or gate the block . OpenAI's own prompting guidance treats frontend quality as load-bearing — ranked alongside autonomy, codebase exploration, and tool use as a most-critical prompt section , which likely makes clean removal or optional loading non-trivial. The architectural question the issue raised — why progressive discovery via skills isn't already used for this block — remains unanswered.

Enjoyed this article? Subscribe to get new stories by email whenever they're published.

Subscribe