Since the latest Cursor update (3.2.11), the integrated terminal can no longer reach local network devices (e.g. ESP32 at 192.168.4.1). All connections fail with errno 65: No route to host. This was working fine on the previous version. The same commands (ping, TCP connect, Python scripts) still work from Terminal.app.
Root cause: Cursor’s Info.plist does not include the NSLocalNetworkUsageDescription key. Without it, macOS silently blocks all local network access from the app and its child processes, and never shows a permission prompt. The app also never appears in System Settings > Privacy & Security > Local Network, so users cannot grant the permission manually.
It appears this key was either present in a previous build or the entitlement/signing changed in a way that revoked a previously granted Local Network permission.
Steps to Reproduce
Connect to a local network device (e.g. an ESP32 SoftAP at 192.168.4.1)
From Cursor’s integrated terminal: ping 192.168.4.1 → fails with “No route to host”
From Terminal.app: ping 192.168.4.1 → works
Expected Behavior
Cursor should prompt for Local Network permission and allow access when granted, as it did before the update.
Upstream VS Code added this key in early April, but the change hasn’t landed in Cursor yet. I’ve reported it internally as a build bug, no timeline for the fix yet.
A workaround that sometimes helps, but not for everyone, is to toggle the Local Network permission for any other app in System Settings > Privacy & Security > Local Network. macOS re-reads permissions and sometimes lets Cursor through. There’s no permanent solution yet, we need the plist key in a signed build.
Once the fix ships to stable, we’ll reply in this thread.
Problem
Cursor’s terminal cannot reach any local network host (192.168.x.x) while internet connectivity works fine. Error returned:
nc: connectx to 192.168.1.55 port 22 (tcp) failed: No route to host
ping: sendto: No route to host
SSH to the same host works perfectly from macOS native Terminal.app.
Root Cause (confirmed)
Running codesign -d --entitlements - /Applications/Cursor.app reveals the app is missing critical network entitlements:
[Key] com.apple.security.automation.apple-events → true
[Key] com.apple.security.cs.allow-jit → true
[Key] com.apple.security.device.audio-input → true
[Key] com.apple.security.device.camera → true
Absent:
• com.apple.security.network.client — required for outbound TCP
• NSLocalNetworkUsageDescription — required for macOS Sequoia Local Network privacy prompt
Without NSLocalNetworkUsageDescription , macOS silently blocks all RFC-1918 traffic and never shows the permission dialog. The app never appears in System Settings → Privacy & Security → Local Network, making it impossible for the user to grant access manually. tccutil reset LocalNetwork also fails because there is no TCC entry to reset.
Steps to Reproduce
1. Open Cursor terminal (not agent, regular terminal)
2. Run ping -c 3 192.168.1.x to any local machine
3. Observe: No route to host — no permission dialog appears
4. Run ping github.com — works fine
5. Check System Settings → Privacy & Security → Local Network — Cursor is absent from the list
Expected Behavior
On first local network access attempt, macOS should display a permission dialog. After granting, local network hosts should be reachable from Cursor’s terminal.
Fix Required
Add to Cursor.app entitlements and Info.plist :
• com.apple.security.network.client = true
• NSLocalNetworkUsageDescription with a usage description string