Codex on macOS can drive high WindowServer CPU/GPU while idle when visible in Stage Manager preview

Open 💬 4 comments Opened Apr 19, 2026 by tonyzhoup

What version of the Codex App are you using (From “About Codex” dialog)?

26.415.40636 (1799)

What subscription do you have?

Not sure

What platform is your computer?

macOS 26.3 (25D125) arm64

What issue are you seeing?

On macOS, Codex can drive very high WindowServer CPU/GPU usage even when I am not actively using the app, as long as Codex remains visible in Stage Manager's left-side live window preview.

This does not look like model execution or background task work. The heavy usage appears to come from the app's UI/rendering/compositing path interacting with Stage Manager's live preview.

In my case, shortly after restarting Codex and doing nothing in the app:

  • WindowServer was around 46% CPU and 24-30% GPU
  • Codex Helper --type=gpu-process was around 43% CPU
  • Codex Helper (Renderer) was around 29% CPU
  • two SkyComputerUseClient helper processes were present but mostly idle

Once I turned Stage Manager off and sent Codex to the background, WindowServer CPU/GPU dropped back down significantly.

What steps can reproduce the bug?

  1. On macOS, enable Stage Manager.
  2. Launch Codex desktop.
  3. Leave the app open, then switch to another app so Codex remains visible in the Stage Manager left-side preview column.
  4. Do not actively use Codex.
  5. Open Activity Monitor and observe WindowServer, Codex GPU/renderer helpers, and GPU usage.
  6. Turn Stage Manager off and keep Codex in the background.
  7. Observe that WindowServer CPU/GPU usage drops significantly.

What is the expected behavior?

When Codex is idle in the background, even if macOS Stage Manager keeps a live preview of the window, it should not continuously drive high WindowServer CPU/GPU usage.

Additional information

A few points that may help narrow this down:

  • This looks specifically like a render/compositing issue rather than remote inference or local agent execution.
  • Sampled stacks from the Codex GPU/renderer processes were dominated by symbols in the display/compositor path, including:
  • CA::Transaction::commit
  • CA::Layer::commit_if_needed
  • IOSurface
  • ColorSync
  • CVDisplayLink
  • VizCompositorThread
  • The SkyComputerUseClient helper processes appeared mostly blocked in mach_msg / idle waits, so they did not look like the main CPU source.
  • This suggests an interaction between:
  • Codex's idle UI redraw / compositing behavior, and
  • Stage Manager's live window preview rendering.

If useful, I can provide:

  • Activity Monitor screenshots
  • sample output from the Codex GPU and renderer processes
  • exact process snapshots from the affected state

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗