Problem
On a fresh macOS install where the only python3 on PATH is the system Python (3.9.6 on macOS 14/15), install.sh exits with status 1 immediately after printing Setting up voice engine... with no obvious indication of what went wrong.
The installer does print a helpful message (install.sh:56-57):
Could not find Python ≥ 3.10. Install one (e.g. brew install python@3.13) or set STACKNUDGE_PYTHON=/path/to/python3 and re-run.
…but on macOS that message is buried under ~120 lines of NSUserNotification Swift deprecation warnings emitted during the build/stack-nudge.app step. Anyone scrolling the install output (or using tail) misses the actionable line entirely and just sees a non-zero exit.
Repro
- macOS with no Homebrew Python and no pyenv (only
/usr/bin/python3 → 3.9.6).
git clone and ./install.sh.
- Build succeeds, app bundles install, then exits 1 after
Setting up voice engine....
Suggested fixes
- Silence or filter the Swift deprecation warnings during
build.sh (e.g. -suppress-warnings or redirect to a log) so install output stays scannable.
- Make the "no Python ≥ 3.10" message louder — e.g. blank lines around it, a
❌ marker, or print it again at the very end before exit 1.
- Optionally: detect Homebrew and offer to run
brew install python@3.13 automatically (with a yes/no prompt).
- Bonus: docs note in README install section that Python ≥ 3.10 is a prerequisite.
Environment
- macOS Darwin 25.3.0
/usr/bin/python3 → Python 3.9.6
- Homebrew 5.1.8 installed but no
python@3.x formula
- No pyenv
Problem
On a fresh macOS install where the only
python3on PATH is the system Python (3.9.6 on macOS 14/15),install.shexits with status 1 immediately after printingSetting up voice engine...with no obvious indication of what went wrong.The installer does print a helpful message (
install.sh:56-57):…but on macOS that message is buried under ~120 lines of
NSUserNotificationSwift deprecation warnings emitted during thebuild/stack-nudge.appstep. Anyone scrolling the install output (or usingtail) misses the actionable line entirely and just sees a non-zero exit.Repro
/usr/bin/python3→ 3.9.6).git cloneand./install.sh.Setting up voice engine....Suggested fixes
build.sh(e.g.-suppress-warningsor redirect to a log) so install output stays scannable.❌marker, or print it again at the very end beforeexit 1.brew install python@3.13automatically (with a yes/no prompt).Environment
/usr/bin/python3→ Python 3.9.6python@3.xformula