explaingit

caronc/apprise

16,556PythonAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

Apprise is a Python library and CLI tool that sends notifications to almost any popular service, Telegram, Discord, Slack, email, SMS, and dozens more, all through a single URL-based interface.

Mindmap

mindmap
  root((repo))
    What it does
      Multi-service notifications
      URL-based destinations
      Async parallel sends
    Interfaces
      Python library
      CLI tool
      Config file
    Service categories
      Chat apps
      Email and SMS
      Push and desktop
      Self-hosted services
    Use cases
      DevOps alerts
      Job completion alerts
      Home automation
    Audience
      Developers
      Sysadmins and DevOps
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Send a build failure alert to Discord and an SMS provider at the same time with a single apprise command.

USE CASE 2

Add in-app notifications to a Python script so it pings you on Telegram when a long-running job finishes.

USE CASE 3

Store all your notification destinations in a config file and reuse it across many scripts and cron jobs without retyping URLs.

USE CASE 4

Route server alerts to a self-hosted Gotify or Home Assistant instance without writing any service-specific API code.

Tech stack

Python

Getting it running

Difficulty · easy Time to first run · 5min
License information is not mentioned in the explanation.

In plain English

Apprise is a notifications library and command-line tool that lets you send the same message to almost any popular notification service through a single, consistent interface. Instead of learning the specific API of each service, one for Telegram, another for Discord, another for Slack, Amazon SNS, Gotify, email, SMS providers, push services, desktop notifiers and so on, you describe the destination as a short URL (for example discord://webhook_id/webhook_token or gotify://hostname/token) and Apprise figures out the rest. The library handles plain text messages, images, and file attachments for the services that accept them, and sends messages asynchronously so notifications go out in parallel rather than one at a time. It supports a long list of destinations, organised in the README into productivity-based notifications (Discord, Slack, Telegram, Microsoft Teams, Mattermost, etc.), SMS providers, desktop notifiers, email (including AWS SES and Brevo), and custom or self-hosted services like Apprise API, Home Assistant, Gotify, Bark, and many more. You can also load your own custom notification hooks. There are two main ways to use it. System administrators and DevOps users typically use the apprise command-line tool that ships with the package, point it at one or more notification URLs (or a configuration file containing them) and pass in a message. Developers who want to add notifications to their own program can import it as a library and call the same functionality from Python code. It supports configuration files so frequently used destinations don't have to be retyped every time, and supports environment variables and persistent storage for things like rate limiting and history. Someone would use Apprise when they want a single place that handles "tell me when X happens" across all the chat apps, email accounts, and mobile push services they actually use. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
I want to use caronc/apprise to send a message to both my Telegram bot and a Discord webhook at the same time. Show me the pip install command and the exact apprise CLI call with both URLs.
Prompt 2
How do I use apprise as a Python library to notify me on Slack when my data pipeline finishes or fails? Show me the import and the three lines of code needed.
Prompt 3
I have many notification destinations, Telegram, email, and a Gotify server. Show me how to create an Apprise config file so I can target all of them by name rather than repeating URLs in every script.
Prompt 4
What URL format does apprise use for sending an SMS via Twilio? Give me the URL pattern and the apprise command to send a test message.
Open on GitHub → Explain another repo

← caronc on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.