macOS warns about Intel-based terminal-notifier in Heroku CLI arm64 package
- Dominant language
- TypeScript
- Stars
- 889
- Forks
- 236
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 33
Description
**This project is for the Heroku CLI only and issues are reviewed as we are able. If you need more immediate assistance or help with anything not specific to the CLI itself, please use https://help.heroku.com.**
Do you want to request a *feature* or report a *bug*?
-----------------------------------------------------
Bug.
What is the current behavior?
-----------------------------
On Apple Silicon macOS, Heroku CLI 11.6.0 is distributed as `darwin-arm64`, but the packaged `node-notifier` dependency still includes an Intel-only `terminal-notifier.app`.
macOS shows this system warning when the bundled notifier is invoked:
> Support Ending for Intel-based Apps
> This version of "terminal-notifier" includes a component that will not work with a future release of macOS. Learn how to update to an Apple silicon version.
This appears related to the previous Apple Silicon/node-notifier work in #2471, but that issue was closed after suppressing visible CLI errors. The bundled app is still x86_64, so newer macOS versions now surface this as a system compatibility warning.
Environment:
```console
$ heroku --version
heroku/11.6.0 darwin-arm64 node-v22.22.3
$ sw_vers
ProductName: macOS
ProductVersion: 26.5.1
BuildVersion: 25F80
$ uname -m
arm64
```
Evidence from the pristine Homebrew Heroku 11.6.0 arm64 archive:
```console
$ file heroku/node_modules/node-notifier/vendor/mac.noindex/terminal-notifier.app/Contents/MacOS/terminal-notifier
Mach-O 64-bit executable x86_64
$ lipo -archs heroku/node_modules/node-notifier/vendor/mac.noindex/terminal-notifier.app/Contents/MacOS/terminal-notifier
x86_64
$ plutil -extract CFBundleShortVersionString raw heroku/node_modules/node-notifier/vendor/mac.noindex/terminal-notifier.app/Contents/Info.plist
1.7.2
```
For comparison, Homebrew’s standalone `terminal-notifier` 2.0.0 is arm64 on the same machine.
What is the expected behavior?
------------------------------
The Heroku CLI arm64 package should not invoke or ship an Intel-only macOS notifier component.
Possible fixes:
- update/replace `node-notifier` or `@heroku-cli/notifications` so the macOS notifier is arm64/universal
- remove/disable the bundled macOS notifier path on Apple Silicon
- vendor a current Apple Silicon-compatible `terminal-notifier.app`
This should prevent the macOS "Support Ending for Intel-based Apps" warning and avoid future breakage when Intel-only components stop working.
Contributor guide
Research direction
Start by tracing the packaged node-notifier dependency, especially node_modules/node-notifier/vendor/mac.noindex/terminal-notifier.app, and the @heroku-cli/notifications path in the darwin-arm64 archive. Verify the bundled executable with file and lipo, then determine whether the dependency can be updated or the notifier path changed. Done means the arm64 package no longer ships or invokes an Intel-only component and the macOS warning is absent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, node.js, typescript
- Domain
- cli, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100