Skip to content
Mac OS notifications from Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea initial commit Feb 12, 2019
klaxon
static update readme May 15, 2019
tests minor stuff May 15, 2019
.gitignore initial commit Feb 12, 2019
LICENSE.txt less loud please Feb 12, 2019
README.md update readme May 15, 2019
invoke.yml
poetry.lock
pyproject.toml bump version May 15, 2019
tasks.py minor updates Mar 11, 2019

README.md

klaxon

Send Mac OS (or notifiers) notifications from the terminal or Python programs.

This is especially useful for when you want a push notification for some long-running background task.

Similar to the terminal-notifier ruby gem, but posix-compliant and able to send notifications via the notifiers library.

hello-klaxon

Installation

For command-line use, the recommended method of installation is through pipx.

pipx install klaxon

Naturally, klaxon can also be pip-installed.

pip install klaxon

Usage

terminal

# blank notification
klaxon
# with custom message
klaxon --message "this is the message body"
# pipe message from other program
echo "this is the message body" | klaxon --

python

from klaxon import klaxon, klaxonify

# send a notification

klaxon(
    title='hello, klaxon',
    subtitle='hola',
    message='it me'
)

# we can decorate our functions to have
# them send notifications at termination

@klaxonify
def hello(name='world'):
    return f'hello, {name}'


@klaxonify(title='oh hai', output_as_message=True)
def foo():
    return "This will be the message body."

Non-MacOS Notifications

i.e. mobile | email | slack

You'll need to install klaxon with the notifiers extra.

pipx install klaxon[notifiers]

You will need a ~/.config/klaxon/config.toml or pyproject.toml file with the tool.klaxon namespace configured at the top level. Values from the latter will override values in the former.

enable-notifiers will need to be set to true and you will need a [[notifiers]] key.

The latter will determine the parameters passed to the notifiers.notify method.

For example:

~/.config/klaxon/config.toml

enable-notifiers = true

[[notifiers]]
name = 'slack'
# see https://api.slack.com/incoming-webhooks#getting-started
webhook_url = {{your webhook url}}

[[notifiers]]
name = 'pushover'
user = {{your user token}}
token = {{your application token}}

Voila! Now messages sent from klaxon will be pushed to slack and pushover.

You can’t perform that action at this time.