Desktop app GPU process renders continuously while backgrounded with a Claude Code remote session open (~60-90% system GPU)

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 10, 2026

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

  1. On a machine with a high-resolution external display, launch the Claude desktop app.
  2. Open a Claude Code remote session view.
  3. Background the app completely (other apps frontmost, window occluded).
  4. Watch the GPU process: ps -p $(pgrep -f 'Claude Helper.*gpu-process') -o %cpu,time — stays at 13–20% CPU indefinitely.
  5. 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.

View original on GitHub ↗