Fix Codex Astra Sparkles Blocking Terminal Text Selection

Fix Codex Astra Sparkles Blocking Terminal Text Selection

Todd Mercer

Coral sparks circle a blue ribbon before a translucent boundary restores calm, stable motion.

Fix Codex Astra Sparkles Blocking Terminal Text Selection

If Codex starts drawing stars or sparkles around the composer when GPT-6 Astra is selected and terminal text selection stops holding, set whimsy = false in the [tui] section of your active Codex config.toml, fully quit Codex, and start a fresh session. This is the narrow setting for decorative effects such as Astra composer stars. It preserves other terminal UI animation unless you disable that separately.

[tui]
whimsy = false

Use this fix only when the symptom follows the decorative Astra effect. Open Codex reports also describe the input cursor jumping while those stars are active. Those reports document repeated symptoms and one reporter's working configuration change; they do not establish independent reproduction, a confirmed rendering root cause, or a released upstream repair.

Confirm the sparkle-specific signature

Before changing configuration, separate this problem from ordinary terminal selection behavior.

The sparkle-specific signature is:

  1. GPT-6 Astra is selected in the Codex terminal UI.

  2. Decorative stars or sparkles animate around the composer.

  3. A mouse drag briefly selects text, then the selection collapses or changes while the pointer is still held.

  4. The input cursor may also jump while you are typing or moving within the composer.

  5. Selecting another model makes the effect and the selection problem disappear, while returning to Astra reproduces both.

Issue 44398 reported this sequence with Codex CLI 0.154.0 on macOS 26.6.2 in Kitty 0.48.2. Issues 44444 and 44561 independently describe cursor movement or unwanted stars around the Astra composer. Different terminals or Codex versions may have different behavior, so record yours rather than assuming every selection failure has the same cause.

If text selection fails outside Codex, fails with every model, or continues when no decorative effect is visible, stop here. Test the terminal itself, its mouse bindings, multiplexer, and clipboard behavior. The whimsy setting is not a general terminal repair.

1. Record the current state

Capture the smallest useful environment record before editing:

codex --version
printf 'TERM=%s\n' "$TERM"

Also note the terminal application, operating-system version, selected model, and whether a multiplexer such as tmux or Zellij is active. Do not post your entire configuration. It can contain private MCP endpoints, environment-variable names, project paths, and other operational details.

Find the active Codex home. The default user configuration is ~/.codex/config.toml; an explicit CODEX_HOME changes that location. Make a sibling backup of the file before editing it.

2. Disable only the decorative effect

Open the active config.toml. If it already contains a [tui] table, add the key inside that table:

[tui]
whimsy = false

Do not create a second [tui] table elsewhere in the same file. TOML parsers reject duplicate tables, which can turn one visual problem into a configuration startup failure.

The current Codex configuration schema describes tui.whimsy as the switch for decorative effects such as Astra composer stars and says it defaults to true. The schema also says those effects require animations. That makes whimsy = false the narrow first change: it removes the decorative layer without disabling all terminal UI animation.

Do not change the model, approval policy, sandbox policy, MCP servers, or provider credentials as part of this repair. None of those settings is needed to test whether the decorative effect owns the symptom.

3. Restart and verify

Fully exit the current Codex process and start a new one. An already-running terminal UI may retain state initialized before the configuration edit.

Select GPT-6 Astra and run three checks:

  1. The stars or sparkles no longer appear around the composer.

  2. A mouse drag across several lines remains selected until you release it.

  3. The composer cursor stays at the position you choose while you pause and while you type.

Then repeat one ordinary Codex interaction to make sure input, scrolling, and nondecorative status behavior still work. Success is not merely that the stars are gone. Success is that selection and cursor position are stable in a fresh Astra session without unrelated configuration changes.

If you want the effect back, restore the backup, set whimsy = true, or remove the explicit key to return to the current default.

If whimsy = false does not fix it

Avoid accumulating speculative changes. Check these boundaries in order:

Check

What it tells you

Safe next move

Stars still appear

Codex may be reading another configuration file, or the edit did not parse

Confirm the active Codex home and look for a duplicate [tui] table

Stars disappear but selection still fails

The decorative effect was present but may not own the selection failure

Test the same drag in the terminal outside Codex and without a multiplexer

Only the input cursor jumps

The composer symptom may differ from mouse selection

Record an exact keystroke sequence and terminal details

Every animation seems implicated

The problem may be broader than whimsy

Temporarily test animations = false in the same [tui] table, then restore it if the symptom is unchanged

Another model behaves the same

The failure is not Astra-specific

Restore the narrow change and investigate terminal or version behavior

The broader diagnostic looks like this:

[tui]
whimsy = false
animations = false

Use it only as a temporary isolation test. Disabling all animations can hide more UI behavior than the reported workaround requires. If it changes nothing, restore the original animation setting instead of leaving an unexplained difference in place.

When the narrow setting does not work, prepare a redacted upstream report with:

  • codex --version output;

  • operating system and terminal versions;

  • whether tmux, Zellij, or another multiplexer is active;

  • the selected model;

  • the exact selection or cursor reproduction steps;

  • whether whimsy = false removed the stars;

  • whether switching models changed the symptom; and

  • a short recording with private prompts, paths, and account details removed.

That evidence helps distinguish a decorative redraw problem from terminal mouse handling, cursor rendering, or configuration precedence.

Common wrong turns

Do not:

  • disable every TUI animation before testing the narrower key;

  • change models permanently and call the underlying issue fixed;

  • delete config.toml to return to defaults;

  • paste a complete private configuration into a public issue;

  • change terminal mouse protocols without proving the symptom exists outside Codex;

  • treat an open issue comment as a released Codex fix; or

  • claim a redraw interval or renderer bug as the root cause before maintainers confirm it.

The durable distinction is simple: the current schema documents what whimsy controls, while the issue threads document observed symptoms and user-reported results. Neither source currently proves the internal cause.

Track the upstream change without widening GitHub access

Once local input is stable, you may want an agent to monitor the three open reports and the configuration schema. Keep that job read-only. It needs current issue state, labels, comments, and a bounded schema-file read. It does not need permission to comment, close issues, modify labels, push code, or edit your repository.

With Aident Loadout, connect the intended GitHub account, inspect the current issue-search or issue-read Action, and preflight a request limited to openai/codex and issues 44398, 44444, and 44561. A useful review prompt is:

Read the current state of openai/codex issues 44398, 44444, and 44561.
Report only maintainer-confirmed fixes, linked pull requests, release versions, and
changes to tui.whimsy or tui.animations. Do not comment, close, label, or modify
anything. Distinguish issue reports from merged code and released behavior

Follow the Aident Loadout setup guide and stop after a reviewed read-only preflight if monitoring is all you need. How to Use Aident Loadout covers the complete discovery and preflight loop. The Codex model-at-capacity guide helps when the model itself is unavailable, and the Codex usage-spike guide keeps a separate resource symptom from being misdiagnosed as this TUI problem.

Verification checklist

Before closing the repair, confirm:

  1. Did the symptom occur only while the Astra composer effect was active?

  2. Did you edit the active config.toml and preserve a backup?

  3. Is there only one [tui] table?

  4. Did you set whimsy = false without changing unrelated policy or credentials?

  5. Did you restart Codex completely?

  6. Are both mouse selection and composer cursor position stable?

  7. If the fix failed, did you restore speculative diagnostic changes and record a minimal reproduction?

Sources and refresh trigger

These sources were reviewed September 11, 2026. All three issues were open at review time. Refresh this guide when Codex documents the setting in its public configuration reference, changes either TUI key, closes the reports with a maintainer-confirmed cause, or ships a release that changes the default or rendering behavior.

About the author

Illustrated editorial avatar of Todd Mercer

Todd Mercer

Todd Mercer is an editorial pen name used by Aident's developer-tools team. This column covers agent CLI configuration, MCP connectivity, authentication, permissions, and troubleshooting. Guides focus on observable symptoms, documented fixes, reproducible checks where available, and the limits of each workaround.

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 27,000+ tools once, skip the setup headache, and let your agents execute.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.