Skip to main content

A utility for sending push notifications

Project description

Version Docs Build WinBuild Coverage Requires

ntfy brings notification to your shell. It can automatically provide desktop notifications when long running commands finish or it can send push notifications to your phone when a specific command finishes. Confused? This video demonstrates some of this functionality:

https://raw.githubusercontent.com/dschep/ntfy/master/docs/demo.gif

Quickstart

$ sudo pip install ntfy
$ ntfy send test
# 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 -b pushover -o user_key t0k3n send 'Pushover test!'
$ ntfy -t 'ntfy' send "Here's a custom notification title!"
$ echo -e 'backends: ["pushover"]\npushover: {"user_token": "t0k3n"}' > ~/.config/ntfy/ntfy.yml
$ ntfy send "Pushover via config file!"
$ ntfy done --pid 6379  # PID extra
$ ntfy send ":tada: ntfy supports emoji! :100:"  # emoji extra
# Enable shell integration
$ echo 'eval "$(ntfy shell-integration)"' >> ~/.bashrc

Install

The install technique in the quickstart is the suggested method of installation. 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 can also be installed via pip, but pid support, emojis and xmpp are extras.

Shell integration

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 and the terminal is focused. Terminal focus works on X11(Linux) and with Terminal.app and iTerm2 on MacOS. Both options can be configured via the --longer-than and --foreground-too options.

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"

Configuring ntfy

ntfy is configured with a YAML file stored at ~/.config/ntfy/ntfy.yml

Backends

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
    - xmpp
pushover:
    user_key: hunter2
pushbullet:
    access_token: hunter2
xmpp:
     jid: "user@gmail.com"
     password: "xxxx"
     mtype: "chat"
     recipient: "me@jit.si"

If you want mulitple configs for the same backend type, you can specify any name and then specify the backend with a backend key. For example:

---
pushover:
    user_key: hunter2
cellphone:
    backend: pushover
    user_key: hunter2

See the backends bellow for available backends and options.

Pushover - pushover

Required parameters:
  • user_key

Optional parameters:
  • sound

  • priority

  • expire

  • retry

  • callback

  • access_token - use your own application token

  • device - target a device, if omitted, notification is sent to all devices

  • url

  • url_title

  • html

Pushbullet - pushbullet

Required parameter:
Optional parameters:
  • device_iden - a device identifier, if omited, notification is sent to all devices

  • email - send notification to pushbullte user with the specified email or send an email if they aren’t a pushullet user

XMPP - xmpp

Requires parameters:
  • jid

  • password

  • recipient

Optional parameters
  • hostname (if not from jid)

  • port

  • path_to_certs

  • mtype (‘chat’ required for Google Hangouts)

To verify the SSL certificates offered by a server: path_to_certs = “path/to/ca/cert”

Without dnspython library installed, you will need to specify the server hostname if it doesn’t match the jid.

For example, to use Google Talk you would need to use: hostname = ‘talk.google.com’

Specify port if other than 5222. NOTE: Ignored without specified hostname

Linux Desktop Notifications - linux

Works via dbus, works with most DEs like Gnome, KDE, XFCE and with libnotify.

Windows Desktop Notifications - win32

Uses pywin32.

Mac OS X Notification Center - darwin

Requires ntfy to be installed globally (not in a virtualenv).

Other options

Title is configurable with the title key in the config. Example:

---
title: Customized Title

Backends ToDo

Testing

python setup.py test

Contributors

  • dschep - Maintainer & Lead Developer

  • danryder - XMPP Backend & emoji support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ntfy-2.0.3.tar.gz (50.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ntfy-2.0.3-py2.py3-none-any.whl (39.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ntfy-2.0.3.tar.gz.

File metadata

  • Download URL: ntfy-2.0.3.tar.gz
  • Upload date:
  • Size: 50.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ntfy-2.0.3.tar.gz
Algorithm Hash digest
SHA256 b5beccd2276e1c3b28fb5e0cb26711117fb82ef3270370dc17edfc2dedc7121d
MD5 300268e2fcc75697ae3b22f26b5bc0b7
BLAKE2b-256 d8a826d1484c3afa4973ab409b7f3ba9713cd590c6921402f39453fc16e38a33

See more details on using hashes here.

File details

Details for the file ntfy-2.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ntfy-2.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 dc29f84eae5862501a1d319489d51d067512966c8c661a23056f35ff29725060
MD5 5d7aafb185cd5b26df5baf8b4413211a
BLAKE2b-256 95f99b9330d5e6935a97e62fbd744aa829a5b9801e75627a86dde47aaeaf6f3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page