Skip to content

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

Open

Description

@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.

Activity

  1. github-actions commented on May 16, 2026

    @github-actions
    Contributor

    Potential duplicates detected. Please review them and close your issue if it is a duplicate.

    Powered by Codex Action

  2. felixblaschke commented on May 17, 2026

    @felixblaschke

    Same here. Setting "Reduce Motion" to "On" helps a bit. To me it looks like those loading indicators are doing layout trashing in the UI, so whole layout / text needs be re-rendered every frame the indicator updates.

    Image
  3. OpenSource03 commented on Jul 30, 2026

    @OpenSource03

    Same. Hope for an update.

  4. ToTorShi commented on Aug 6, 2026

    @ToTorShi

    I reproduced the same issue on a newer Codex desktop build, with substantially higher CPU usage.

    Environment

    • ChatGPT/Codex app: 26.730.61639 (build 6234)
    • Bundled Codex CLI: 0.147.0-alpha.1.2
    • macOS 27.0, build 26A5388g (pre-release)
    • Mac17,2 / Apple M5 / 16 GB RAM
    • Built-in 3024 × 1964 Retina display, no external display
    • Feedback ID: 019fd4e2-3be4-71b3-a483-5af0844857a6

    Timeline and observed usage

    This was the first long-running app session after the app bundle updated. The app had been running for approximately 21 hours when the whole desktop became laggy.

    Sustained measurements during the incident:

    • WindowServer: approximately 86%–154% CPU
    • MenuBarAgent: approximately 33%–39% CPU
    • ChatGPT main process: approximately 55% CPU
    • Codex GPU service: approximately 35%–67% CPU
    • Codex renderer: approximately 11%–42% CPU
    • Load average peaked at approximately 15.93, 9.40, 6.13

    Closing WPS Office, DingTalk, and Xmind did not help. Quitting ChatGPT/Codex immediately restored normal responsiveness. After reopening it, system load fell to roughly 3–4 and the ChatGPT main process fell to about 2% CPU.

    There were no thermal/performance warnings, almost no swap activity, sufficient free disk space, and no sustained disk I/O that explained the lag. Unified logs repeatedly contained MenuBarAgent/CoreAnimation handler failures, WindowServer invalid-window and window-constraint errors, cursor-surface failures, and client datagram-buffer clearing. No crash report was generated.

    I have enabled an independent five-minute process monitor. If the issue recurs, I can provide a sanitized trend CSV and a pre-restart snapshot containing the most recent 15 minutes of relevant unified logs.

  5. OpenSource03 commented on Aug 7, 2026

    @OpenSource03

    I really hope more people recognize that this appears to be an interaction between Chromium and Apple’s WindowServer—not an issue specific to Codex or any one application. Windows and Linux don’t seem to be affected nearly as severely.

    Even simple combinations like backdrop-filter: blur() and pulse animations can create excessive load on powerful Macs, reportedly including the M5 Max. Adding shimmer animations, such as those used for “thinking” states, can make it considerably worse. The same behavior can be reproduced on many complex websites containing animations, transparency, or backdrop blur.

    I may be missing something, so please correct me if I’m wrong, but the evidence points primarily toward a macOS WindowServer/compositing problem, potentially amplified by Chromium’s rendering behavior or bug.

    Even @t3dotgg made a video referencing similar problems, yet the broader role of WindowServer still seems largely overlooked. At the very least, even if all I just said is wrong, people should not need PhD in performance engineering to have simple pulse or shimmer animations working, as I can guarantee, people at Cursor, Anthropic, OpenAI or any other company will hardly ever care to put time and effort to diagnose these and find best possible solution, specially not JUST FOR MAC.

    Really hope someone will investigate this at a lower level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingperformance

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions