17.2k stars · BSD-2-Clause · v1.13.1 (2026-08-31) · Track this in Scout
One library that sends the same message to any of more than a hundred services, each written as a short URL-shaped address.
▶Repo detailsthe review · specs · pros & cons · install
What it is
Apprise is a small Python library and command-line tool. Each destination is written as a short address, like a web address, and Apprise knows how to talk to more than a hundred services behind those addresses.What it is good for. Anybody who runs anything unattended. The usual failure is not that a job breaks, it is that nobody hears about it. Apprise removes every excuse for staying quiet, because adding a message to a script is one line. It is also the piece that stops you writing separate code for email, for chat and for phone alerts. For you: put it at the end of the nightly backup and at the end of the ScalpingMate data pull, and use the same line for both.
- Five minutes to install, one line to use, nothing left running afterwards.
- More than a hundred services are supported, so you are not locked into one chat app.
- The licence is BSD-2-Clause, which is about as permissive as licences get. Nothing here restricts what you build.
- It sends and forgets. There is no screen showing what was delivered and no automatic retry, unless you also run the separate Apprise API service.
- Breadth is also a weakness. With that many services, one of them changing its rules will quietly break your channel, and you wait for the maintainer to fix it.
- The next major version is a rewrite, so expect a migration. Also, the address contains your secret token, so it is easy to leak it into a log file or your shell history.
- containrrr/shoutrrr
The same idea of one address per service, written in Go for Go programs, with far fewer services.
Track this in Scout - nikoksr/notify
The same single call to many services, also a Go library, with about thirty services and a simpler shape.
Track this in Scout - gotify/server
Solves the other half: a message server you run yourself, with a web screen and an Android app, rather than a library that sends.
Track this in Scout
pip install apprise # Send one test message to a Telegram bot apprise -vv -t "Backup finished" -b "All good" \ "tgram://<bot-token>/<chat-id>"
