High CPU usage of the Cursor Helper (Plugin): extension-host process when running Cursor with VPN restricting public networks

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

High CPU usage of the Cursor Helper (Plugin): extension-host process when running Cursor with VPN restricting public networks.
Sometimes I just want to open Cursor IDE to take a quick look at the code, but it ends up hogging a ton of CPU.

Steps to Reproduce

Open the VPN software to restrict public network access. When attempting to visit a public website in the browser, it does not immediately return an error indicating the site is unavailable; instead, it appears to be waiting until it times out.
Under these conditions, run Cursor IDE, and the issue can be reproduced after waiting for a period of time.

Screenshots / Screen Recordings

Operating System

MacOS

Version Information

Version: 3.20.21
VS Code Extension API: 1.128.0
Commit: f09fca384ceca23f7bf21f9c23655b162641d740
Date: 2026-09-13T19:02:51.781Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 42.10.0
Chromium: 148.0.7778.280
Node.js: 24.18.1
V8: 14.8.178.38-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin x64 24.6.0

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey, thanks for the report and the Activity Monitor screenshot. It really helps narrow things down.

The two top processes are built-in extension hosts. Cursor’s own network traffic goes through them. It makes sense they spike when the VPN allows opening a connection but doesn’t reply to it. There are two paths here: a couple quick tests you can do right now, and a CPU profile for a precise root cause.

Quick tests (while you collect profiles)

  1. Cursor Settings (not VS Code settings) > Network > Run Diagnostics. Please run it and share the results.
  2. Switch HTTP Compatibility Mode to HTTP/1.1. App Settings Cmd+, > search for “HTTP/2” > enable “Disable HTTP/2”. Restart Cursor and check if CPU drops. VPN proxies often buffer HTTP/2 streams, and switching to HTTP/1.1 can fix it.
  3. If possible, try the VPN in TUN mode instead of system proxy, or set up split tunneling to exclude the Cursor process or the domains *.cursor.sh, *.cursorapi.com, *.cursor.com from the tunnel. System proxy mode is usually what buffers streams. Related case with analysis: Timeout waiting for EverythingProvider - #10 by deanrie

CPU profile (to pinpoint the exact cause)

  1. Turn on the VPN in the mode that restricts public network access, open Cursor on the same project, and wait until the two Cursor Helper (Plugin): extension-host processes spike CPU again.
  2. Cmd+Shift+P > type “Start Extension Host CPU Profiler” > Enter.
  3. In the list, pick “Local: agent-exec”.
  4. If it asks to restart for profiling, accept, wait for CPU to spike again, then repeat step 2.
  5. Record for about 30 seconds while CPU is high.
  6. Cmd+Shift+P > “Stop Extension Host Profiler” > Enter.
  7. Cmd+Shift+P > “Save Extension Host Profile” > Enter, save the .cpuprofile file.
  8. Repeat steps 2 to 7 for “Local: always-local”.
  9. Cmd+Shift+P > “Developer: Open Process Explorer” > Enter, then take a screenshot while CPU is high.

Please attach the two .cpuprofile files (zip them) and the Process Explorer screenshot here or via DM.

A couple questions

  • Is Cursor using the VPN proxy via system settings, or via its own http.proxy setting in Cursor Settings (not VS Code settings), search “proxy”?
  • Does CPU stay high if you fully quit the VPN client, not just leave it in restricted mode?

Let me know which quick test helped. That alone will narrow this down a lot.