Awesome Open Source
Awesome Open Source

npm version Build Status Coverage devDependency Status Dependency Status


Sends native desktop notifications if CLI apps fail

Technically: if a command exits with an exit code other than 0


To use it in your project:

$ npm install --save-dev cli-error-notifier

To use it globally:

$ npm install --global cli-error-notifier

It requires Node.js (v4 or greater).

General usage

$ onerror --help

  Sends native desktop notifications if CLI apps fail

	  $ onerror <command> [options]

	  --title,   -t   Sets the title of the notification.
	                  Default: "An error has occured"
	  --message, -m   Sets the message body of the notification.
	                  Default: "Check the terminal for more information"
	  --icon,    -i   Sets an icon. Can be any absolute path.
	  --sound,   -s   Defines which sound to use.
	                  Use "mute" to disable default sound notification.
	                  Options: Mute, Basso, Blow, Bottle, Frog, Funk, Glass, Hero,
	                           Morse, Ping, Pop, Purr, Sosumi, Submarine, Tink
	                  Default: Bottle
	  --version  -v   Displays the version number.
	  --help     -h   Displays the help.

	  $ onerror "wget"
	  $ onerror "wget" -s mute
	  $ onerror "wget" -t Error -m "My error message"
	  $ onerror "wget"  -s Glass -i

Usage with npm scripts

This little CLI comes in handy when writing build scripts.

Lets imagine you have setup the following npm script for linting your JavaScript files:

  "scripts": {
    "eslint": "eslint src",

With using cli-error-notifier a desktop notification can be generated at the moment the linting fails:

  "scripts": {
    "eslint": "onerror \"eslint src\"",

This is especially useful for watching files while developing. You could use it in conjunction with onchange like in the following example:

  "scripts": {
    "eslint": "eslint src",
    "eslint:fix": "npm run eslint --silent -- --fix",
    "eslint:watch": "onchange \"src/**/*.js\" -- onerror \"npm run eslint --silent\""

It also works flawlessly together with npm-run-all.

Cross platform compatibility

cli-error-notifier uses the brilliant node-notifier and therefore should work with Notification Center for macOS, notify-osd/libnotify-bin for Linux, Toasters for Windows 8/10, or taskbar Balloons for earlier Windows versions. Growl is used if none of these requirements are met.


  • onchange - Watch files and folders and run a command when anything is changed.
  • npm-run-all - CLI tool to run multiple npm-scripts in parallel or serial.


MIT Michael Khnel

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,555,917
Nodejs (54,817
Cli (15,473
Error Handling (635
Notifier (244
Notify (179
Npm Scripts (157
Related Projects