Codex CLI Using 30% CPU While Waiting? Disable TUI Animations

Codex CLI Using 30% CPU While Waiting? Disable TUI Animations

Aident AI

A coral orb sends repeated cyan ripples across a cobalt basin in front of a calm lavender slab.

Codex CLI Using 30% CPU While Waiting? Disable TUI Animations

If codex-main keeps using roughly 30% CPU while Codex is only waiting for a background terminal, disable TUI animations in ~/.codex/config.toml, restart Codex, and repeat the same wait. Current reports trace the idle load to a status indicator that schedules redraws about every 32 milliseconds even though the foreground has no new work to display.

Start with this supported configuration:

[tui]
animations = false

Do not stop the background command just to quiet Codex. It may still be compiling, testing, or writing files. First separate CPU used by the child process from CPU used by the Codex TUI.

Confirm That Codex, Not the Background Command, Is Busy

The useful signature has three parts:

  1. Codex says it is waiting on a background terminal.

  2. The child command is idle or using much less CPU than codex-main.

  3. Codex CPU drops when the TUI is not redrawing or after animations are disabled.

On macOS or Linux, find the Codex and child processes with a read-only process listing:

ps -Ao pid,ppid,%cpu,%mem,etime,command | grep -E '[c]odex|[r]ustc|[n]ode|[p]ython|[c]argo|[p]npm'

Replace the child-process names with the command you actually started. Sample the output several times over 15 to 30 seconds. A single spike during normal output is not this bug.

Observation

More likely cause

Next step

codex-main stays busy while the child is quiet

TUI status redraw loop

Disable animations and repeat the same wait

The compiler, test runner, or dev server stays busy

Real background work

Let it finish or stop it through Codex after reviewing what it is doing

Memory grows but CPU is low

Different process or history leak

Use the Codex high-memory guide

replayd or WindowServer is busy after Computer Use

Computer Use capture path

Use the Computer Use CPU guide

Windows taskkill.exe or WMI is busy

Windows process-enumeration loop

Use the Codex Windows CPU guide

The August 9 report measured about 31 redraws per second and about 30% CPU in the Codex process while a separate Rust build was still running. An older upstream report independently measured excessive terminal writes during the animated status state, including rapid tmux history growth. Together, they make the TUI a defensible first A/B test, not proof that every busy Codex process has the same cause.

Disable TUI Animations Without Duplicating the Table

Open ~/.codex/config.toml. If the file already contains a [tui] table, add only the animations key inside that table:

[tui]
animations = false

Do not add a second [tui] header. Duplicate TOML tables can make Codex reject the configuration.

OpenAI's current configuration schema defines tui.animations as the switch for welcome-screen motion, shimmer effects, and spinners. It defaults to true. The same workaround was confirmed by an OpenAI maintainer in an earlier status-animation report.

Fully exit the current Codex CLI session after saving the file, then start a new session. The setting does not retroactively change a TUI process that is already running.

Remove the Animated Terminal Title Only if It Still Churns

Codex also supports a separate terminal-title configuration. The current default includes both spinner and project, so some terminals, SSH sessions, and multiplexers can still react to frequent title updates.

If CPU, terminal bells, cursor flicker, or tab-title churn remains after disabling animations, keep the title static:

[tui]
animations = false
terminal_title = ["project"]

Test one change at a time. The static title targets terminal-title updates; it does not prove that the 32-millisecond status redraw caused your CPU use. OpenAI also allows terminal_title = null to disable title updates entirely, but a static project title preserves useful context with less motion.

Run a Controlled Before-and-After Test

Use the same Codex version, repository, terminal, and background command for both runs.

  1. Record codex --version.

  2. Start one harmless bounded wait, such as a 60-second sleep, through Codex.

  3. While Codex reports that it is waiting, sample codex-main CPU for 15 to 30 seconds.

  4. Stop the test cleanly and exit Codex.

  5. Add animations = false under the existing [tui] table.

  6. Start a fresh Codex session and repeat the same bounded wait.

  7. Compare sustained CPU, not the launch spike.

Success means the Codex process settles near idle while the background command remains tracked and completes normally. If the improvement only appears after also removing spinner from terminal_title, record that distinction.

Do not use an unbounded build, production migration, deployment, or destructive command as the test workload. The purpose is to isolate redraw overhead, not to stress the machine.

If CPU Stays High

Keep the configuration change only if it improves the controlled test. Otherwise restore the prior setting and identify the actual busy process.

Check these branches:

  • If the child command owns the CPU, inspect its normal logs and stop it only through the workflow that launched it.

  • If codex-main stays busy with no background task, restart once and test in an empty repository to separate project hooks or integrations.

  • If CPU rises only inside tmux or screen, test a plain terminal and keep terminal-title animation disabled.

  • If the symptom began after an update, preserve the Codex version, OS, terminal, multiplexer version, and a short sanitized process sample for the upstream issue.

Avoid deleting ~/.codex, task history, configuration, or project files. None of the cited evidence indicates corrupted state, and destructive cleanup does not address a redraw cadence.

Monitor the Fix Without Keeping a Browser Open

The exact upstream issue can change as Codex releases move. A read-only GitHub lookup is a better monitor than repeatedly opening issue pages or running Computer Use.

Start with this setup phrase:

Follow https://aident.ai/SETUP.md

Then ask:

Check Aident Loadout authentication and Vault status. Search the staging capability catalog for the current read-only GitHub issue lookup Action, inspect its schema, and preflight exact lookups for openai/codex issues 37706, 11877, and 7125. If every estimate is valid and free, execute the lookups and return only issue number, state, updated time, labels, title, and canonical URL. Do not comment, react, edit, close, create, run Bash, or expose credentials.

Success is measurable: the three issue states return through the structured integration, no GitHub write occurs, and no provider credential appears in the prompt or output.

Set up Aident Loadout and monitor the Codex redraw fix.

Sources

Refresh this guide when issue 37706 closes with a released fix, the TUI redraw interval changes, or OpenAI changes the tui.animations or tui.terminal_title contract.

Home

Home

Home

Integrations

Integrations

Integrations

Vault

Vault

Vault

Audit

Audit

Audit

Arana Grande

Arana Grande

Arana Grande

Free

Free

Free

30-day audit summary

30-day audit summary

30-day audit summary

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

View Audit

View Audit

View Audit

Loadout usage

Loadout usage

Loadout usage

617 action calls in the last 30 days

617 action calls in the last 30 days

617 action calls in the last 30 days

May 19 - Jun 17

May 19 - Jun 17

May 19 - Jun 17

10 active days

10 active days

10 active days

Less

Less

Less

More

More

More

Recent activity

Recent activity

Recent activity

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Shopify

Shopify

Shopify

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Success

Success

Success

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Success

Success

Success

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Failed

Failed

Failed

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Connected integration coverage

Connected integration coverage

Connected integration coverage

162

162

162

of 753 accessible connected

of 753 accessible connected

of 753 accessible connected

Callable actions

Callable actions

Callable actions

1,126

1,126

1,126

Vault credentials

Vault credentials

Vault credentials

8

8

8

Explore what's possible

Explore what's possible

Explore what's possible

See all Integrations

See all Integrations

See all Integrations

Google Ads

Google Ads

Google Ads

All available Goolge Ads tools via...

All available Goolge Ads tools via...

All available Goolge Ads tools via...

X (twitter)

X (twitter)

X (twitter)

All available X tools via...

All available X tools via...

All available X tools via...

Github

Github

Github

All available Github tools via...

All available Github tools via...

All available Github tools via...

Notion

Notion

Notion

All available Notion tools via...

All available Notion tools via...

All available Notion tools via...

Slack

Slack

Slack

All available Slack tools via...

All available Slack tools via...

All available Slack tools via...

Firecrawl

Firecrawl

Firecrawl

All available Firecrawl tools via...

All available Firecrawl tools via...

All available Firecrawl tools via...

753 integrations are available for loadouts.

753 integrations are available for loadouts.

753 integrations are available for loadouts.

The one tool

for every tool

your agent needs.

Give any AI agent real capabilities in seconds. Connect 1,000+ tools once, skip the setup headache, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.