Skip to content

feat: Add macOS support#28

Open
spboyer wants to merge 3 commits intoshanselman:mainfrom
spboyer:feature/macos-support
Open

feat: Add macOS support#28
spboyer wants to merge 3 commits intoshanselman:mainfrom
spboyer:feature/macos-support

Conversation

@spboyer
Copy link

@spboyer spboyer commented Jan 23, 2026

Summary

Adds native macOS support to Toasty, allowing Mac developers to receive notifications when AI coding agents complete their tasks.

Fixes #27

Changes

  • main_mac.mm - Native Objective-C++ implementation for macOS
  • CMakeLists.txt - Cross-platform build support (Windows/macOS)
  • tests/test_mac.sh - macOS test suite (16 tests, all passing)
  • README.md - Updated with macOS installation and setup instructions

Features

  • ✅ Notifications via terminal-notifier (reliable on macOS 15+)
  • ✅ AI agent auto-detection (Claude, Copilot, Gemini, Codex, Cursor)
  • ✅ Icons for all presets
  • ✅ Hook installation for Claude, Gemini, and Copilot
  • ✅ Same CLI interface as Windows version

Requirements (macOS)

  • macOS 10.15+
  • terminal-notifier (brew install terminal-notifier)
  • Notification permissions enabled in System Settings

Screenshots

Notifications with icons for GitHub Copilot and Claude:

Screenshot 2026-01-23 at 11 00 22

Testing

# Build
clang++ -std=c++20 -x objective-c++ -framework Foundation -framework AppKit -o build/toasty main_mac.mm

# Run tests
./tests/test_mac.sh

All 16 tests passing on macOS 15 Sequoia.

- Add main_mac.mm with native Objective-C++ implementation
- Use terminal-notifier for reliable notifications on macOS 15+
- Implement process tree walking via libproc for AI agent detection
- Support Claude, Copilot, Gemini, Codex, and Cursor presets with icons
- Add hook installation for Claude, Gemini, and Copilot
- Update CMakeLists.txt for cross-platform builds
- Add macOS test suite (16 tests)
- Update README with macOS installation and notification setup instructions

Tested on macOS 15 Sequoia with working notifications and icons.
- Build Windows and macOS in parallel
- macOS: Build x64 (Intel), ARM64 (Apple Silicon), and Universal binary
- Combined release job uploads all artifacts
- Release includes: toasty-x64.exe, toasty-arm64.exe, toasty-macos, toasty-macos-x64, toasty-macos-arm64
- Add download links for macOS binaries from Releases
- Document Universal, x64, and ARM64 variants
- Include chmod and PATH setup instructions
@spboyer
Copy link
Author

spboyer commented Jan 23, 2026

CI/CD Build Structure

The GitHub Actions workflow now builds Windows and macOS in parallel:

┌─────────────────┐     ┌─────────────────┐
│  build-windows  │     │   build-macos   │
│  (parallel)     │     │   (parallel)    │
├─────────────────┤     ├─────────────────┤
│ • toasty-x64    │     │ • toasty-x64    │
│ • toasty-arm64  │     │ • toasty-arm64  │
│ • Code signing  │     │ • Universal bin │
└────────┬────────┘     └────────┬────────┘
         │                       │
         └───────────┬───────────┘
                     ▼
              ┌─────────────┐
              │   release   │
              ├─────────────┤
              │ All 5 bins  │
              └─────────────┘

Release artifacts:

Platform File Architecture
Windows toasty-x64.exe Intel/AMD 64-bit
Windows toasty-arm64.exe ARM64
macOS toasty-macos Universal (Intel + Apple Silicon)
macOS toasty-macos-x64 Intel only
macOS toasty-macos-arm64 Apple Silicon only

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add macOS support

1 participant