Codex Desktop on macOS keeps GPU process and WindowServer at high CPU after long session

Open 💬 2 comments Opened May 16, 2026 by zl939144892

What happened

Codex Desktop on macOS appears to keep its Electron GPU/rendering pipeline busy after a long desktop session. The high usage does not look like local model inference; it is concentrated in the Codex Electron GPU process, the Codex renderer process, and macOS WindowServer.

Environment

  • Codex Desktop version: 26.513.31313
  • Electron version shown in process annotations: 42.0.1
  • macOS: 26.4.1, build 25E253
  • Architecture: arm64 / Apple Silicon
  • Locale: zh-CN
  • Session age at observation: about 11 hours

Observed resource usage

A process sample showed the following while the Codex window was open:

WindowServer                                  ~42% - 46% CPU
Codex Helper --type=gpu-process              ~28% - 34% CPU
Codex Helper (Renderer)                      ~18% - 24% CPU
codex app-server --analytics-default-enabled ~5% - 25% CPU

After waiting several seconds and sampling again, the usage was still high:

WindowServer                                  ~44% CPU
Codex Helper --type=gpu-process              ~28% CPU
Codex Helper (Renderer)                      ~18% CPU
codex app-server --analytics-default-enabled  ~6% CPU

Other Electron/Chromium GPU processes on the machine were much lower at the time, so this appeared to be specific to the active Codex desktop window.

Steps to reproduce

  1. Open Codex Desktop on macOS.
  2. Use a long-running thread for several hours.
  3. Produce or view a large amount of streaming text / terminal output in the thread.
  4. Let the app stop actively responding.
  5. Check Activity Monitor or ps for Codex GPU/renderer and WindowServer usage.

Expected behavior

Once Codex is no longer streaming or actively updating the UI, the Electron GPU process, renderer process, and WindowServer usage should return close to idle levels.

Actual behavior

The Codex GPU process and renderer process remain high, and WindowServer also stays high, suggesting continuous UI redraw/compositing work.

Notes

I did not see any local model inference process involved. The process pattern points to the desktop app rendering/compositing path rather than model execution.

View original on GitHub ↗

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