ntfy
is a command line utility (and to a degree, python library) for
sending push notifications. It also can send a notification when a
program finishes.
Unlike many existing utilities for Pushover or Pushbullet, it supports multiple backends.
sudo pip install ntfy
Note: It is suggested to globally (as indicated above, without a
virtualenv) install ntfy. It can be installed in a virtualenv, with caveats.
Linux notifications requires --system-site-packages
to be used and OS X
notifications don't work at all.
ntfy
features emoji support, it is installable as an extra, just install
like this:
sudo pip install ntfy[emoji]
The xmpp module requires sleekxmpp. To install this extra install ntfy like this:
sudo pip install ntfy[xmpp]
# send a notification ntfy send "Here's a notification!" # send a notification with custom title (default is $USER@$HOST:$PWD) ntfy -t 'ntfy' send "Here's a notification with a custom title!" # send a notification when the command `sleep 10` finishes # this send the message '"sleep 10" succeeded in 0:10 minutes' ntfy done sleep 10
ntfy
has support for automatically sending notifications when long
running commands finish in bash and zsh. In bash it emulates zsh's preexec and
precmd functionality with rcaloras/bash-preexec.
To enable it add the following to your .bashrc
or .zshrc
:
eval "$(ntfy shell-integration)"
By default it will only send notifications for commands lasting longer than 10
seconds. This can be configured with the AUTO_NTFY_DONE_TIMEOUT
environment
variable.
To avoid unnecessary notifications when running interactive programs programs
listed in AUTO_NTFY_DONE_IGNORE
don't generate notifications. for example:
export AUTO_NTFY_DONE_IGNORE="vim screen meld"
- Pushover
- Pushbullet
- XMPP
- Linux Desktop Notifications (via dbus, works with most DEs like Gnome, KDE, XFCE and with libnotify)
- Windows Desktop Notifications
- Mac OS X Notification Center
ntfy
is configured with a YAML file stored at ~/.ntfy.yml
The backends key specifies what backends to use by default. Each backend has it's own configuration, stored in a key of it's own name. For example:
--- backends: - pushover - linux pushover: user_key: hunter2 pushbullet: access_token: hunter2
Note: versions prior to v1.0.0 used JSON instead of YAML.
The available backends are in ntfy.backends,
include only the module name in your config (eg: pushbullet
not
ntfy.backends.pushbullet
).
python setup.py test