Notification library for gophers and their furry friends.
1,670
stars
387
commits
Go
primary language
Jul 1, 2026
updated
Notification library for gophers and their furry friends. Heavily inspired by caronc/apprise.
$ sudo snap install shoutrrr
$ go install github.com/containrrr/shoutrrr/shoutrrr@latest
$ go build -o shoutrrr ./shoutrrr
Using shoutrrr is easy! There is currently two ways of using it as a package.
url := "slack://token-a/token-b/token-c"
err := shoutrrr.Send(url, "Hello world (or slack channel) !")
url := "slack://token-a/token-b/token-c"
sender, err := shoutrrr.CreateSender(url)
sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })
urls := []string {
"slack://token-a/token-b/token-c"
"discord://token@channel"
}
sender, err := shoutrrr.CreateSender(urls...)
sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })
Start by running the build.sh script.
You may then run send notifications using the shoutrrr executable:
$ shoutrrr send [OPTIONS] <URL> <Message [...]>
You can also use Shoutrrr from a GitHub Actions workflow.
See this example and the action on GitHub Marketplace:
name: Deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Some other steps needed for deploying
run: ...
- name: Shoutrrr
uses: containrrr/shoutrrr-action@v1
with:
url: ${{ secrets.SHOUTRRR_URL }}
title: Deployed ${{ github.sha }}
message: See changes at ${{ github.event.compare }}.
For additional details, visit the full documentation.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Go
99.6%
Notification library for gophers and their furry friends.
1,670
stars
387
commits
Go
primary language
Jul 1, 2026
updated
Notification library for gophers and their furry friends. Heavily inspired by caronc/apprise.
$ sudo snap install shoutrrr
$ go install github.com/containrrr/shoutrrr/shoutrrr@latest
$ go build -o shoutrrr ./shoutrrr
Using shoutrrr is easy! There is currently two ways of using it as a package.
url := "slack://token-a/token-b/token-c"
err := shoutrrr.Send(url, "Hello world (or slack channel) !")
url := "slack://token-a/token-b/token-c"
sender, err := shoutrrr.CreateSender(url)
sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })
urls := []string {
"slack://token-a/token-b/token-c"
"discord://token@channel"
}
sender, err := shoutrrr.CreateSender(urls...)
sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })
Start by running the build.sh script.
You may then run send notifications using the shoutrrr executable:
$ shoutrrr send [OPTIONS] <URL> <Message [...]>
You can also use Shoutrrr from a GitHub Actions workflow.
See this example and the action on GitHub Marketplace:
name: Deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Some other steps needed for deploying
run: ...
- name: Shoutrrr
uses: containrrr/shoutrrr-action@v1
with:
url: ${{ secrets.SHOUTRRR_URL }}
title: Deployed ${{ github.sha }}
message: See changes at ${{ github.event.compare }}.
For additional details, visit the full documentation.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Go
99.6%