[Bug] Claude Desktop Linux - severe UI lag, Electron performance degradation on high-end hardware

Resolved 💬 3 comments Opened Apr 15, 2026 by ericvael Closed Apr 18, 2026

Environment

  • Hardware: Intel i9 (20 cores), 64 GB RAM, RTX 4060, NVMe SSD (0% wear, SMART PASSED)
  • OS: Linux Mint / Ubuntu 24.04, kernel 6.8.0-110-generic
  • Claude Desktop: latest Linux version
  • Claude Code: 2.1.87
  • MCP plugins: ~14 plugin-dirs loaded simultaneously

Symptoms

  • Constant UI lag in Claude Desktop — typing, scrolling, and panel switching all stutter
  • Progressive degradation over the session: the longer the app runs, the worse it gets
  • Affects all interactions, not tied to a specific feature

Diagnostic performed

Full system diagnostic shows zero hardware bottleneck:

| Metric | Value |
|--------|-------|
| Load average | 1.5 / 2.1 / 2.0 on 20 cores (~10% utilization) |
| RAM | 11 GB used / 62 GB total, 51 GB available |
| Swap | 256 KB used / 2 GB |
| SSD I/O | < 2% utilization, latency < 2ms |
| SSD health | 0% wear, 29°C |
| Claude Cache | 291 MB (clean) |
| Code Cache | 158 MB |
| vm_bundles | 37 MB |
| ~/.claude.json | 22 KB |

The Electron zygote process alone consumes 20% CPU and 600 MB RAM — disproportionate for a chat UI.

Key observation

Claude Code in terminal on the same machine is instantaneous. The problem is 100% in the Electron rendering layer, not the backend or the API.

Possible aggravating factor

14 MCP plugin directories are loaded per agent session. Each agent subprocess spawns with all --plugin-dir flags. This may contribute to memory pressure and IPC overhead within Electron.

Related issues

  • #26302
  • #31643
  • #42045
  • #4896

Request

  • A performance roadmap for the Electron app on Linux (renderer process optimization, IPC batching, lazy plugin loading)
  • Or consideration for a lighter-weight native Linux client

This is from a daily power user — the lag makes extended work sessions impractical.

View original on GitHub ↗

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