Notification library for gophers and their furry friends. Heavily inspired by caronc/apprise.

github actions workflow status codecov Codacy Badge report card reference github code size in bytes license godoc All Contributors

Quick Start

As a package

Using shoutrrr is easy! There is currently two ways of using it as a package.

Using the direct send command
  url := "slack://token-a/token-b/token-c"
  err := shoutrrr.Send(url, "Hello world (or slack channel) !")

Using a sender
  url := "slack://token-a/token-b/token-c"
  sender, err := shoutrrr.CreateSender(url)
  sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })
Using a sender with multiple URLs
  urls := []string {
  sender, err := shoutrrr.CreateSender(urls...)
  sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })
Through the CLI

Start by running the script. You may then run send notifications using the shoutrrr executable:

$ shoutrrr send [OPTIONS] <URL> <Message [...]>


For additional details, visit the full documentation.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Amir Schnell


nils måsén

💻 📖 🚧

Luka Peschke

💻 📖


💻 📖

Simon Aronsson

💻 📖 🚧

Arne Jørgensen

📖 💻

Alexei Tighineanu


Alexandru Bonini


Senan Kelly






This project follows the all-contributors specification. Contributions of any kind welcome!

  • watchtower - process for automating Docker container base image updates that uses shoutrrr for notifications
  • kured - kubernetes reboot daemon has adopted shoutrrr as their unified notification method starting with version 1.7.0.
Expand ▾ Collapse ▴




This section is empty.


This section is empty.


func CreateSender

func CreateSender(rawURLs ...string) (*router.ServiceRouter, error)

    CreateSender returns a notification sender configured according to the supplied URL

    func Send

    func Send(rawURL string, message string) error

      Send notifications using a supplied url and message

      func SetLogger

      func SetLogger(logger *log.Logger)

        SetLogger sets the logger that the services will use to write progress logs


        This section is empty.

        Source Files