What is node-notifier?
The node-notifier package is a Node.js module for sending native notifications on different platforms like Windows, Mac, and Linux. It provides an easy-to-use API to show system notifications using the native notification system of the operating system.
What are node-notifier's main functionalities?
Cross-platform notifications
This feature allows you to send desktop notifications across different operating systems. The code sample shows how to send a simple notification with a title and a message.
const notifier = require('node-notifier');
notifier.notify({
title: 'My notification',
message: 'Hello, this is a notification!'
});
Notification actions
This feature allows you to listen for user interactions with the notification, such as clicking on it. The code sample demonstrates how to handle a click event on the notification.
const notifier = require('node-notifier');
notifier.notify({
title: 'My notification',
message: 'Click to perform an action',
wait: true
}, (err, response, metadata) => {
if (metadata.activationType === 'clicked') {
console.log('Notification clicked!');
}
});
Custom notification sound
This feature allows you to customize the notification sound and appearance. The code sample shows how to send a notification with a custom sound and icon.
const notifier = require('node-notifier');
notifier.notify({
title: 'My notification',
message: 'With a custom sound!',
sound: true, // Only Notification Center or Windows Toasters
appIcon: '/path/to/icon.png', // Absolute path (doesn't work on balloons)
contentImage: '/path/to/image.png' // Absolute Path to Attached Image (Content Image)
});
Other packages similar to node-notifier
electron-notifications
A package specifically designed for Electron applications to show desktop notifications. It is similar to node-notifier but tailored for the Electron environment, which means it might not be suitable for non-Electron Node.js applications.
pushover-notifications
This package allows you to send notifications using the Pushover service. It differs from node-notifier in that it requires an internet connection and uses the Pushover API to send messages to devices, whereas node-notifier works offline and uses the native OS notification systems.
toastr
Toastr is a Javascript library for non-blocking notifications. It is designed for web applications and provides in-browser notifications as opposed to the system-level notifications provided by node-notifier.
node-notifier
A node module for sending notification using node. Uses terminal-notifier on mac,
notify-send for Linux, toaster for Windows 8.1 and Growl for others.
Requirements
- Mac OS X >= 10.8.
- Linux with the notify-osd/notify-send module
- Windows >= 8.1.
- Or if no of the above requirements are met, Growl is used.
If using Linux, notify-osd
must be installed on your system.
For Mac, terminal-notifier, comes
bundled in the module. So on Mac, not additional installations is necessary.
This also goes for native Windows (version >=8.1) as well, where
toaster.exe is bundled. Note, for native
Windows notifications a toast must have a shortcut installed (though not
necessarily pinned) to the Start screen or in the Apps
view
If no of the other requirements are met, node-notifier will use Growl.
You have to have Growl installed on your system. See
Growl for Windows or
Growl for Mac.
Install
$ npm install node-notifier
Standard Usage
var Notification = require('node-notifier');
var notifier = new Notification();
notifier.notify({
title: 'My awesome title',
message: 'Hello from node, Mr. User!'
});
Notification
also has specifications for all types of notifications, to be used
manually.
Example:
var nn = require('node-notifier');
new nn.NotificationCenter().notify();
new nn.NotifySend().notify();
new nn.WindowsToaster().notify(options);
new nn.Growl().notify(options);
Mapping between notifiers
Common options between the modules (i.e. icon
) is mapped. This means,
if you are using a Mac and someone on your project is using Linux, you
can both see icons.
Usage NotificationCenter
Same usage and parameter setup as terminal-notifier.
Native Notification Center requires Mac OS X version 10.8 or higher. If you have
earlier versions, Growl will be the fallback. If Growl isn't installed, an error
will be thrown.
Note: Output parsing from Notification Center is deprecated as of 3.0.0
.
Parsing of output given by terminal-notifier is removed as of node-notifier 3.0.0
.
You can still use both remove
and list
but the output given will not be parsed into a object.
See removed documentation for pre version 3.0.0
in Deprecated documentation
Example
Where terminal-notifier say to use the -message
option, you can do this in node-notifier
var Notification = require('node-notifier');
var notifier = new Notification();
notifier.notify({
message: 'Hello World'
});
You can specify the second argument as a callback for getting error
and response
.
var Notification = require('node-notifier');
var notifier = new Notification({
});
notifier.notify({
title: 'My application',
message: 'New notification'
}, function(error, response) {
console.log(response);
});
As of version 3.0.0
, you can also specify image used as icon or content image. For Mac OS notifications, requires 10.9.
notifier.notify({
"title": "Phil Coulson",
"subtitle": "Agent of S.H.I.E.L.D.",
"message": "If I come out, will you shoot me? 'Cause then I won't come out.",
"sound": "Funk",
"contentImage": __dirname + "/coulson.jpg",
"appIcon": __dirname + "/coulson.jpg",
"open": "file://" + __dirname + "/coulson.jpg"
});
See terminal-notifier for more options.
Usage NotifySend
var Notification = require('node-notifier');
var notifier = new Notification({
});
notifier.notify({
title: 'Foo',
message: 'Hello World',
icon: __dirname + "/coulson.jpg",
});
See flags and options on the man pages
Usage Native Windows
var Notification = require('node-notifier');
var notifier = new Notification({
});
notifier.notify({
title: 'Foo',
message: 'Hello World',
icon: __dirname + "/coulson.jpg"
});
Usage Growl
var Notification = require('node-notifier');
var notifier = new Notification({
});
notifier.notify({
title: 'Foo',
message: 'Hello World',
icon: fs.readFileSync(__dirname + "/coulson.jpg")
});
See more information for constructor options in
growler.
Changelog
v3.2.0
- Adds native Windows 8.1 support.
v3.1.0
- Adds Growl as fallback for Mac OS X pre 10.8.
v3.0.6
- Fixes typo: Changes Growl app name from
Gulp
to Node
.
v3.0.5
- Maps common options between the different notifiers. Allowing for common usage with different notifiers.
v3.0.4
- Fixes expires for notify-send (Issue #13)
v3.0.2
- Fixes version check for Mac OS X Yosemite
v3.0.0
- Updates terminal-notifier to version 1.6.0; adding support for appIcon and contentImage
- Removes parsing of output sent from notifier (Notification Center)
License
MIT License