Skip to content

variadico/noti

Repository files navigation

NOTICE: noti is moving to codeberg.org/roble/noti 🚚


github.com/variadico/noti is moving to codeberg.org/roble/noti

Effective immediately, the latest development source code will be hosted at https://codeberg.org/roble/noti/

Over the past few years, I've been trying out different code forges. This last year, I found that I've been using my Codeberg account the most. The thing I value the most about Codeberg is that it's an Open Source platform (based on Forgejo). I also like the UI/UX Codeberg has to offer.

Migration plan

Timeline

I expect the entire process to take months, both because of life and also to give people time to learn about this change.

Other notes

The maintainer is not changing. I'm variadico on GitHub, but roble on Codeberg. I'm the same person. This isn't a supply chain hack.

I'll update the readme as necessary with any updates.


noti

Testing

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.

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.

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 it with your browser from the latest release page.

From source

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

# build binary
make build

Configuration

Noti reads configuration from a YAML file.

It uses the following search order (unless overridden by the --file flag):

  • ./.noti.yaml
  • Then:
    • If $XDG_CONFIG_HOME is set:
      • $XDG_CONFIG_HOME/noti/noti.yaml
    • Otherwise:
      • $HOME/.config/noti/noti.yaml

There is an example configuration file, and a JSON schema for it, in the docs directory.

Examples

Just 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; 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 -

About

Monitor a process and trigger a notification.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors