julienxx/terminal-notifier

Send User Notifications on macOS from the command-line.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 31 minutes ago
Added to GitGenius on September 9th, 2026
Created on July 15th, 2012
Open Issues & Pull Requests: 8 (+0)
GitHub issues: Enabled
Number of forks: 358
Total Stargazers: 7,314 (+0)
Total Subscribers: 115 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 41.6 days
Mean response time: 234.9 days
90th percentile: 812.2 days
Tracked items: 46

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 4% of issues opened in the past year have been closed. Three people close 100% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 4
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 1,153 days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (7)
  • bug (4)
  • question (3)
  • waiting for answer (3)
  • documentation (2)
  • Big Sur (1)
  • Catalina (1)
  • packaging (1)

Detailed Description

terminal-notifier is a command-line tool that sends macOS User Notifications from the terminal.

The tool solves the problem of programmatically triggering native macOS notifications without requiring a graphical application. It works by shipping as an app bundle that can be invoked from the command line with options specifying the notification content. Notifications are attributed to an application identity, and the tool supports customization through options like title, subtitle, and message body. It also provides mechanisms to remove previously delivered notifications by group identifier, list active or scheduled notifications, and schedule notifications to appear at specific times using `-in` or `-at` options.

The tool suits developers who need to integrate macOS notifications into shell scripts, build systems, or automation workflows. It requires macOS 10.14 or higher. The README notes that downloaded binaries are subject to macOS quarantine protections on first run, though installations via Homebrew or building from source avoid this issue. The tool handles a common pitfall where option values beginning with certain characters like brackets or braces are misread by the underlying property list parser; since version 3.0.0 it reports when a value cannot be read rather than failing silently. Custom icons can be applied to change the application identity shown in notifications on macOS 11 and later. The tool can also be used from Ruby through a dedicated interface.

Development activity shows consistent maintenance with attention to user-facing improvements. The project maintains clear documentation of breaking changes between major versions, helping users understand upgrade paths. Error reporting was enhanced to surface previously silent failures when parsing option values. The tool's approach to handling macOS-specific constraints like quarantine protections and property list parsing demonstrates practical problem-solving for platform-specific issues.