A Node.js module for sending native notifications on macOS, Windows, and Linux.
node-notifier is a Node.js module that sends native desktop notifications across macOS, Windows, and Linux operating systems. It provides a simple API to trigger system-level alerts, leveraging each platform's native notification systems like macOS Notification Center, Windows Toasters, and Linux notify-osd. The module handles cross-platform differences internally, offering a consistent interface for developers.
Node.js developers building desktop applications, CLI tools, or Electron apps that need to display system notifications to users. It's particularly useful for tools that run in the background and need to alert users upon task completion or errors.
Developers choose node-notifier because it abstracts away the platform-specific complexities of notification systems into a single, easy-to-use Node.js package. It provides reliable fallbacks, supports advanced features like actions and replies, and integrates seamlessly with popular frameworks like Electron.
A Node.js module for sending notifications on native Mac, Windows and Linux (or Growl as fallback)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Abstracts macOS Notification Center, Windows Toasters, and Linux notify-osd into a unified API, ensuring notifications look and feel native on each operating system without extra styling.
Automatically falls back to Growl or other methods when native systems are unavailable, as documented in the DECISION_FLOW.md, improving reliability across diverse setups.
Supports actions, reply inputs, and event handling (click/timeout), enabling interactive notifications like those shown in the Windows SnoreToast and macOS input examples.
Allows direct access to individual reporters (e.g., NotificationCenter, WindowsToaster) for platform-specific tuning, documented in separate sections for each notifier.
Relies on platform-specific software like notify-osd on Linux or SnoreToast on Windows, which can fail if not installed, and adds complexity with packaging in Electron or webpack, as noted in Common Issues.
Has limitations such as Windows image size constraints (PNG under 200kb), macOS custom icon issues requiring forking terminal-notifier, and varying behavior across OS versions, detailed in the documentation.
Common problems with Electron asar, webpack configurations, and pkg module require additional steps like unpacking vendor folders or setting node flags, increasing setup overhead.