Desktop app GPU process renders continuously while backgrounded with a Claude Code remote session open (~60-90% system GPU)
Summary
The Claude desktop app's GPU process (Claude Helper --type=gpu-process) renders continuously while the app is in the background, keeping overall system GPU utilization pinned at ~60–90%. The trigger appears to be having a Claude Code remote session view open in the app — the view keeps animating/repainting even when the window is fully occluded behind other apps.
Environment
- Claude desktop app 1.25927.0 (deploymentMode 1p)
- macOS Darwin 25.5.0, MacBook Pro (Apple M5 Pro)
- Displays: built-in Liquid Retina XDR (3024×1964) + external 6K (6016×3384, "looks like" 3008×1692 @ 60 Hz)
Observed behavior
Long-uptime accumulation: after ~4 days of app uptime, the GPU process had accumulated ~104 hours of CPU time (steady ~20% CPU), with system GPU utilization pinned at 65–67% and WindowServer at 40–50% CPU recompositing the 6K display. Quitting the app dropped system GPU utilization to ~26–39%.
Fresh launch is fine: immediately after relaunch with no session open, the GPU process idled at 0.0% CPU (3.5 s total CPU time), and system GPU utilization touched 0%.
Recurrence with trigger: within ~1 hour of relaunch, after opening a Claude Code remote session in the app, the GPU process resumed 13–18% CPU sustained (measured over 3+ consecutive minutes) with the app backgrounded the entire time (terminal/Slack frontmost, Claude window occluded). System GPU utilization returned to 60–66% baseline with peaks to ~90%. Nothing else was running in the app.
Expected behavior
A backgrounded/occluded window should stop or throttle rendering; the GPU process should idle near 0% when the user isn't looking at the app, regardless of whether a remote session view is open.
Repro
- On a machine with a high-resolution external display, launch the Claude desktop app.
- Open a Claude Code remote session view.
- Background the app completely (other apps frontmost, window occluded).
- Watch the GPU process:
ps -p $(pgrep -f 'Claude Helper.*gpu-process') -o %cpu,time— stays at 13–20% CPU indefinitely. - System GPU:
ioreg -r -d1 -c IOAccelerator | grep -o '"Device Utilization %"=[0-9]*'— elevated ~30 points vs. app quit.
Impact
Sustained GPU/compositor load (battery drain, fan noise) that compounds over days of uptime; on this machine it amounted to >100 CPU-hours in the GPU process alone over 4 days.