Monitor a process and trigger a notification.
Never sit and wait for some long-running process to finish. Noti can alert you when it's done. You can receive messages on your computer or phone.
Noti can send notifications on a number of services.
| Service | macOS | Linux | Windows |
|---|---|---|---|
| Banner | ✔ | ✔ | ✔ |
| Speech | ✔ | ✔ | ✔ |
| BearyChat | ✔ | ✔ | ✔ |
| Keybase | ✔ | ✔ | ✔ |
| Mattermost | ✔ | ✔ | ✔ |
| Pushbullet | ✔ | ✔ | ✔ |
| Pushover | ✔ | ✔ | ✔ |
| Pushsafer | ✔ | ✔ | ✔ |
| Simplepush | ✔ | ✔ | ✔ |
| Slack | ✔ | ✔ | ✔ |
| Telegram | ✔ | ✔ | ✔ |
| Zulip | ✔ | ✔ | ✔ |
| Twilio | ✔ | ✔ | ✔ |
| GChat | ✔ | ✔ | ✔ |
| Chanify | ✔ | ✔ | ✔ |
| Bark | ✔ | ✔ | ✔ |
| ntfy | ✔ | ✔ | ✔ |
Check the screenshots directory to see what the notifications look like on different platforms.
Install the Go binary with these commands.
# macOS install with Brew
brew install noti
# macOS install with curl
curl -L $(curl -s https://api.github.com/repos/variadico/noti/releases/latest | awk '/browser_download_url/ { print $2 }' | grep 'darwin-amd64' | sed 's/"//g') | tar -xz
# Linux install with curl
curl -L $(curl -s https://api.github.com/repos/variadico/noti/releases/latest | awk '/browser_download_url/ { print $2 }' | grep 'linux-amd64' | sed 's/"//g') | tar -xzOr download it with your browser from the latest release page.
If you want to build from the source, then build like this.
# build binary
make buildJust put noti at the beginning or end of your regular commands. For more details, check the docs.
Display a notification when tar finishes compressing files.
noti tar -cjf music.tar.bz2 Music/Add noti after a command, in case you forgot at the beginning.
clang foo.c -Wall -lm -L/usr/X11R6/lib -lX11 -o bizz; notiIf you already started a command but forgot to use noti, then you can do this to get notified when that process' PID disappears.
noti --pwatch 1234You can also press ctrl+z after you started a process. This will temporarily suspend the process, but you can resume it with noti.
$ dd if=/dev/zero of=foo bs=1M count=2000
^Z
zsh: suspended dd if=/dev/zero of=foo bs=1M count=2000
$ fg; noti
[1] + continued dd if=/dev/zero of=foo bs=1M count=2000
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 12 s, 175 MB/s
Additionally, noti can send a message piped from stdin with -.
$ make test 2>&1 | tail --lines 5 | noti -t "Test Results" -m -