[BUG] Claude Desktop (macOS) bundles darwin-x64-only node-pty prebuild, no arm64 — forces Rosetta on Apple Silicon

Resolved 💬 1 comment Opened Jul 10, 2026 by huajip Closed Jul 13, 2026

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)

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗