Skip to content

variadico/noti

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
November 23, 2019 21:21
October 10, 2022 09:13
July 26, 2022 12:13
July 26, 2022 11:31
July 26, 2022 11:21
October 16, 2017 11:44
August 3, 2020 18:54
March 1, 2018 21:48
July 26, 2022 14:42
July 26, 2022 14:42
August 3, 2020 18:51
July 26, 2022 11:21
July 26, 2022 11:21

noti

Go

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.

macOS Banner Notification

Services

Noti can send notifications on a number of services.

           | macOS | Linux | Windows
--------------------------------------
Banner     |   ✔   |   ✔   |    ✔
Speech     |   ✔   |   ✔   |    ✔
BearyChat  |   ✔   |   ✔   |    ✔
Keybase    |   ✔   |   ✔   |    ✔
Mattermost |   ✔   |   ✔   |    ✔
Pushbullet |   ✔   |   ✔   |    ✔
Pushover   |   ✔   |   ✔   |    ✔
Pushsafer  |   ✔   |   ✔   |    ✔
Simplepush |   ✔   |   ✔   |    ✔
Slack      |   ✔   |   ✔   |    ✔
Telegram   |   ✔   |   ✔   |    ✔
Zulip      |   ✔   |   ✔   |    ✔
Twilio     |   ✔   |   ✔   |    ✔
GChat      |   ✔   |   ✔   |    ✔

Checkout the screenshots directory to see what the notifications look like on different platforms.

Installation

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 -xz

Or download with your browser from the latest release page.

From source

If you want to build from source, then build like this.

# build binary
make build
# build binary and move to Go bin dir
make install

Examples

Just put noti at the beginning or end of your regular commands. For more details, checkout 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; noti

If 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 1234

You 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 -