macOS: Codex power rises sharply at 120 Hz; add an app-level frame-rate cap
What variant of Codex are you using?
App (macOS desktop)
What feature would you like to see?
Please add a supported app-level UI frame-rate / Energy Saver setting for the macOS desktop app, especially on ProMotion displays. Suggested options:
- Automatic
- 30 FPS
- 60 FPS
- Follow display refresh rate
The app should avoid continuously compositing at the full display refresh rate when the UI is static, and throttle or suspend redraw when the window is minimized, occluded, or running in the background. It would also be useful to honor macOS Reduce Motion.
The current workaround is lowering the entire display to 60 Hz, but that affects every other app. An app-level setting would let users keep 120 Hz system-wide while limiting Codex's rendering cost.
Additional information
Environment:
- Codex desktop 151.0.7922.137
- macOS 26.5.2 (25F84)
- MacBook Pro with M3 Pro, 14-core GPU
- Built-in 3024x1964 Liquid Retina XDR display; no external display
Observed during the same investigation with the Codex UI mostly static:
- At 120 Hz:
SystemLoadwas approximately 21.5–36.4 W in samples; the user also observed peaks around 60 W.WindowServerwas approximately 42–56% CPU and the Codex GPU process approximately 30–53% CPU. - After switching the system display to 60 Hz: comparable samples were approximately 13.3–15.7 W, with Codex GPU approximately 10–21% and
WindowServerapproximately 34–41% CPU. This reduced system load by roughly 6–8 W (about 30%). - Hiding Codex Pet removed its pet windows but did not materially eliminate the remaining load, so the issue does not appear to be only the pet overlay.
mds_storeswas near 0–0.2% CPU during the measurements, so Spotlight indexing was not the main source of this behavior.
Reproduction:
- On a ProMotion Mac, set the built-in display to 120 Hz.
- Launch the Codex macOS app and open a normal, mostly static conversation.
- Observe Activity Monitor and system power telemetry for a short period.
- Switch the display to 60 Hz and repeat the observation.
- Compare Codex GPU,
WindowServer, and total system load.
Expected behavior:
Codex should not require full-rate rendering for a static conversation. Users should be able to cap Codex rendering independently from the system display refresh rate, while animation-heavy interactions can temporarily use a higher rate when needed.
Related issues: #34286, #32024, #26736, #16857.