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.
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)
Cursor Settings (not VS Code settings) > Network > Run Diagnostics. Please run it and share the results.
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.
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)
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.
Cmd+Shift+P > type “Start Extension Host CPU Profiler” > Enter.
In the list, pick “Local: agent-exec”.
If it asks to restart for profiling, accept, wait for CPU to spike again, then repeat step 2.