Integrated terminal cannot access local network devices on macOS — missing NSLocalNetworkUsageDescription

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

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.

Operating System

MacOS

Version Information

Version: 3.2.11
VSCode Version: 1.105.1
Commit: e9ee1339915a927dfb2df4a836dd9c8337e17cc0
Date: 2026-04-24T14:36:47.933Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.4.0

Additional Information

Probable Fix: Add to Info.plist:

NSLocalNetworkUsageDescription
Cursor needs access to devices on your local network for terminal and development workflows.

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the detailed report, your analysis is correct. Cursor’s Info.plist really doesn’t include NSLocalNetworkUsageDescription, so macOS silently blocks local network access and the app doesn’t show up in Privacy & Security > Local Network. This has been a long-running issue and it shows up in a few threads going back to macOS Sequoia, for example Cursor terminal unable to reach local network, Cant access local network on latest macOS version, Cursor not able to access local network.

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.

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

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

Operating System

MacOS

Version Information

Version: 3.2.11
VSCode Version: 1.105.1
Commit: e9ee1339915a927dfb2df4a836dd9c8337e17cc0
Date: 2026-04-24T14:36:47.933Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.4.0

MacOS: 26.4.1 (25E253)
Machine: Apple Silicon MacBook M5 Pro
Model Number: Z1KH0007LZE/A
Network: Wi-Fi, standard home/office LAN

Does this stop you from using Cursor

No - Cursor works, but with this issue