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 NewSender

    func NewSender(logger types.StdLogger, serviceURLs ...string) (*router.ServiceRouter, error)

      NewSender returns a notification sender, writing any log output to logger and configured to send to the services indicated by the supplied URLs

      func Send

      func Send(rawURL string, message string) error

        Send notifications using a supplied url and message

        func SetLogger

        func SetLogger(logger types.StdLogger)

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


          This section is empty.

          Source Files