[BUG] Claude Desktop (macOS) bundles darwin-x64-only node-pty prebuild, no arm64 — forces Rosetta on Apple Silicon
Environment
- macOS, Apple Silicon (arm64)
- Claude Desktop app (
/Applications/Claude.app), current release channel
ISSUE
The main Claude executable inside Claude.app is a universal binary (x86_64 arm64) and runs natively on Apple Silicon. However, the bundled native PTY module used for terminal support only ships an Intel build, with no arm64 counterpart:
Contents/Resources/app.asar.unpacked/node_modules/node-pty/prebuilds/darwin-x64/pty.node (x86_64 only)
Contents/Resources/app.asar.unpacked/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper (x86_64 only)
Confirmed via lipo -archs on both files — neither contains an arm64 slice, and there is no sibling darwin-arm64 prebuild directory in node-pty/prebuilds/.
IMPACT
Because this native module has no arm64 slice, macOS has to invoke Rosetta 2 to run it whenever the terminal/PTY feature is exercised. This causes Claude to show up as a Rosetta-dependent app in macOS's Rosetta usage/deprecation surfacing, even though the rest of the app runs natively.
EXPECTED BEHAVIOR
node-pty should ship (or the build should vendor) the darwin-arm64 prebuild alongside darwin-x64, matching what upstream node-pty already publishes, so the app is Rosetta-free end-to-end on Apple Silicon.
REPRO
lipo -archs "/Applications/Claude.app/Contents/Resources/app.asar.unpacked/node_modules/node-pty/prebuilds/darwin-x64/pty.node"
# => x86_64 (expected: x86_64 arm64, or a separate darwin-arm64 prebuild should exist)This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗