Summary
Codex Desktop cannot connect to devices on the local network on macOS 27. Direct connections from Terminal work, but the exact same SSH/TCP connection launched by Codex Desktop fails immediately with EHOSTUNREACH / No route to host.
The app never appears under System Settings → Privacy & Security → Local Network, and macOS never presents a Local Network permission prompt.
Environment
- Codex Desktop / ChatGPT app version:
26.721.41059
- Build:
5848
- Bundle identifier:
com.openai.codex
- macOS:
27.0
- Architecture: Apple Silicon (arm64)
- Effective Codex permission profile tested: full access /
danger-full-access
- Network access enabled
Reproduction
- Put the Mac and an SSH server on the same private subnet.
- In Terminal, run:
The connection succeeds.
- Ask Codex Desktop to run the same SSH command, including with full access and network enabled.
- The Codex-launched command fails immediately:
ssh: connect to host 192.168.x.x port 22: No route to host
- Check System Settings → Privacy & Security → Local Network.
- ChatGPT/Codex is not listed, and no permission prompt is shown.
The behavior also affects TCP probes to the router and other LAN devices, while Terminal can reach them.
Diagnostics
The installed application is correctly signed and has a stable main executable UUID, but its Info.plist does not contain NSLocalNetworkUsageDescription:
/usr/libexec/PlistBuddy -c 'Print :NSLocalNetworkUsageDescription' \
/Applications/ChatGPT.app/Contents/Info.plist
Output:
Print: Entry, ":NSLocalNetworkUsageDescription", Does Not Exist
Additional app metadata:
CFBundleIdentifier: com.openai.codex
CFBundleExecutable: ChatGPT
TeamIdentifier: 2DC432GLL2
Architecture: arm64
Resetting the app's privacy state does not help:
tccutil reset All com.openai.codex
After restarting the app, it still does not trigger a Local Network prompt and still does not appear in the Local Network privacy list.
Expected behavior
Codex Desktop should either:
- declare and request Local Network access correctly on macOS, then appear in the Local Network privacy list; or
- provide a supported mechanism for commands running with network/full access to connect to private-subnet hosts.
If local network access is intentionally blocked, the UI should distinguish OS Local Network Privacy denial from Codex sandbox/network-policy denial and provide actionable guidance.
Workaround
Running SSH directly from Terminal works. A persistent SSH relay created outside Codex can expose the remote SSH service on localhost, which Codex can then use, but this is cumbersome and should not be required.
Summary
Codex Desktop cannot connect to devices on the local network on macOS 27. Direct connections from Terminal work, but the exact same SSH/TCP connection launched by Codex Desktop fails immediately with
EHOSTUNREACH/No route to host.The app never appears under System Settings → Privacy & Security → Local Network, and macOS never presents a Local Network permission prompt.
Environment
26.721.410595848com.openai.codex27.0danger-full-accessReproduction
The behavior also affects TCP probes to the router and other LAN devices, while Terminal can reach them.
Diagnostics
The installed application is correctly signed and has a stable main executable UUID, but its
Info.plistdoes not containNSLocalNetworkUsageDescription:/usr/libexec/PlistBuddy -c 'Print :NSLocalNetworkUsageDescription' \ /Applications/ChatGPT.app/Contents/Info.plistOutput:
Additional app metadata:
Resetting the app's privacy state does not help:
After restarting the app, it still does not trigger a Local Network prompt and still does not appear in the Local Network privacy list.
Expected behavior
Codex Desktop should either:
If local network access is intentionally blocked, the UI should distinguish OS Local Network Privacy denial from Codex sandbox/network-policy denial and provide actionable guidance.
Workaround
Running SSH directly from Terminal works. A persistent SSH relay created outside Codex can expose the remote SSH service on
localhost, which Codex can then use, but this is cumbersome and should not be required.