heroku / heroku/cli

macOS warns about Intel-based terminal-notifier in Heroku CLI arm64 package

Open
#3,784 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.