A Go port of Apprise - Push Notifications That Work with Everything
Features • Installation • Usage • Releases • Contributing
Latest parity report: GitHub Actions parity workflow
apprise-go is a Go port of Apprise by Chris Caron. It aims to provide the same powerful notification capabilities in a standalone, compiled binary with no runtime dependencies.
Note: This project is not affiliated with or endorsed by the upstream Apprise project.
Download the latest release for your platform from the Releases page.
# Download and extract (replace VERSION with the latest version)
curl -LO https://github.com/unraid/apprise-go/releases/download/vVERSION/apprise-go-darwin-arm64.zip
unzip apprise-go-darwin-arm64.zip
chmod +x apprise-go
sudo mv apprise-go /usr/local/bin/
# Download and extract (replace VERSION with the latest version)
curl -LO https://github.com/unraid/apprise-go/releases/download/vVERSION/apprise-go-linux-amd64
chmod +x apprise-go-linux-amd64
sudo mv apprise-go-linux-amd64 /usr/local/bin/apprise-go
Download the .exe file from the Releases page and add it to your PATH.
git clone https://github.com/unraid/apprise-go.git
cd apprise-go
go build -o apprise-go ./cmd/apprise
package main
import (
"log"
apprise "github.com/unraid/apprise-go"
)
func main() {
client := apprise.New()
if err := client.Add("discord://webhook_id/webhook_token"); err != nil {
log.Fatal(err)
}
if err := client.Send(
"Something happened!",
apprise.WithTitle("Alert"),
apprise.WithNotifyType(apprise.NotifyWarning),
); err != nil {
log.Fatal(err)
}
}
For one-off sends, use apprise.Send(urls, body, options...).
# Send a simple notification
apprise -b "Hello from apprise!" "discord://webhook_id/webhook_token"
# Send to multiple services at once
apprise -b "Multi-platform notification" "discord://..." "slack://..."
# Add a title to your notification
apprise -t "Alert" -b "Something happened!" "discord://..."
# Get full Apprise schema as JSON
apprise --schema
# Print details about all supported services
apprise --details
# Store and reuse configurations
apprise --storage-path /path/to/config -b "Using saved config"
apprise-go supports Apprise-style TEXT and YAML configuration files. YAML tagged URLs should use the upstream mapping form where the URL has a trailing colon:
version: 1
groups:
now: my_now_pers
urls:
- tgram://token_id/chat_id/?format=markdown&mdv=v1:
tag: my_now_pers
Do not put tag under a bare scalar URL; that is not valid YAML and will not be
loaded as a tagged Apprise URL.
The latest stable release can always be found on the GitHub Releases page.
Each release includes:
apprise-go-darwin-amd64.zip - macOS Intel (signed & notarized)apprise-go-darwin-arm64.zip - macOS Apple Silicon (signed & notarized)apprise-go-linux-amd64 - Linux AMD64apprise-go-linux-arm64 - Linux ARM64apprise-go-linux-386 - Linux 32-bitapprise-go-linux-armv7 - Linux ARMv7 (Raspberry Pi, etc.)apprise-go-windows-amd64.exe - Windows AMD64apprise-go-windows-arm64.exe - Windows ARM64apprise-go-windows-386.exe - Windows 32-bitapprise-go-freebsd-amd64 - FreeBSD AMD64apprise-go-freebsd-arm64 - FreeBSD ARM64This project maintains its own semantic versioning independent of upstream Apprise. Compatibility with the upstream caronc/apprise project is tracked via internal/version.UpstreamVersion.
All notable changes are documented in CHANGELOG.md. The changelog follows the Keep a Changelog format.
Releases are automated through GitHub Actions:
See PROCESS.md for detailed release procedures.
apprise-go/
├── cmd/ # Command-line application
├── internal/ # Internal Go packages
├── assets/ # Default notification icons and themes
├── dist/ # Build output directory
├── scripts/ # Build and release scripts
├── .github/ # GitHub Actions workflows
├── CHANGELOG.md # Version history and changes
├── PROCESS.md # Development and release processes
├── AGENTS.md # Agent configuration documentation
└── README.md # This file
Contributions are welcome! Please see PROCESS.md for development guidelines and the release process.
# Clone the repository
git clone https://github.com/unraid/apprise-go.git
cd apprise-go
# Build the project
go build -o apprise-go ./cmd/apprise
# Run tests
go test ./...
Made with ❤️ by the developers of Unraid
Go
93.3%
Python
6.6%
A Go port of Apprise - Push Notifications That Work with Everything
Features • Installation • Usage • Releases • Contributing
Latest parity report: GitHub Actions parity workflow
apprise-go is a Go port of Apprise by Chris Caron. It aims to provide the same powerful notification capabilities in a standalone, compiled binary with no runtime dependencies.
Note: This project is not affiliated with or endorsed by the upstream Apprise project.
Download the latest release for your platform from the Releases page.
# Download and extract (replace VERSION with the latest version)
curl -LO https://github.com/unraid/apprise-go/releases/download/vVERSION/apprise-go-darwin-arm64.zip
unzip apprise-go-darwin-arm64.zip
chmod +x apprise-go
sudo mv apprise-go /usr/local/bin/
# Download and extract (replace VERSION with the latest version)
curl -LO https://github.com/unraid/apprise-go/releases/download/vVERSION/apprise-go-linux-amd64
chmod +x apprise-go-linux-amd64
sudo mv apprise-go-linux-amd64 /usr/local/bin/apprise-go
Download the .exe file from the Releases page and add it to your PATH.
git clone https://github.com/unraid/apprise-go.git
cd apprise-go
go build -o apprise-go ./cmd/apprise
package main
import (
"log"
apprise "github.com/unraid/apprise-go"
)
func main() {
client := apprise.New()
if err := client.Add("discord://webhook_id/webhook_token"); err != nil {
log.Fatal(err)
}
if err := client.Send(
"Something happened!",
apprise.WithTitle("Alert"),
apprise.WithNotifyType(apprise.NotifyWarning),
); err != nil {
log.Fatal(err)
}
}
For one-off sends, use apprise.Send(urls, body, options...).
# Send a simple notification
apprise -b "Hello from apprise!" "discord://webhook_id/webhook_token"
# Send to multiple services at once
apprise -b "Multi-platform notification" "discord://..." "slack://..."
# Add a title to your notification
apprise -t "Alert" -b "Something happened!" "discord://..."
# Get full Apprise schema as JSON
apprise --schema
# Print details about all supported services
apprise --details
# Store and reuse configurations
apprise --storage-path /path/to/config -b "Using saved config"
apprise-go supports Apprise-style TEXT and YAML configuration files. YAML tagged URLs should use the upstream mapping form where the URL has a trailing colon:
version: 1
groups:
now: my_now_pers
urls:
- tgram://token_id/chat_id/?format=markdown&mdv=v1:
tag: my_now_pers
Do not put tag under a bare scalar URL; that is not valid YAML and will not be
loaded as a tagged Apprise URL.
The latest stable release can always be found on the GitHub Releases page.
Each release includes:
apprise-go-darwin-amd64.zip - macOS Intel (signed & notarized)apprise-go-darwin-arm64.zip - macOS Apple Silicon (signed & notarized)apprise-go-linux-amd64 - Linux AMD64apprise-go-linux-arm64 - Linux ARM64apprise-go-linux-386 - Linux 32-bitapprise-go-linux-armv7 - Linux ARMv7 (Raspberry Pi, etc.)apprise-go-windows-amd64.exe - Windows AMD64apprise-go-windows-arm64.exe - Windows ARM64apprise-go-windows-386.exe - Windows 32-bitapprise-go-freebsd-amd64 - FreeBSD AMD64apprise-go-freebsd-arm64 - FreeBSD ARM64This project maintains its own semantic versioning independent of upstream Apprise. Compatibility with the upstream caronc/apprise project is tracked via internal/version.UpstreamVersion.
All notable changes are documented in CHANGELOG.md. The changelog follows the Keep a Changelog format.
Releases are automated through GitHub Actions:
See PROCESS.md for detailed release procedures.
apprise-go/
├── cmd/ # Command-line application
├── internal/ # Internal Go packages
├── assets/ # Default notification icons and themes
├── dist/ # Build output directory
├── scripts/ # Build and release scripts
├── .github/ # GitHub Actions workflows
├── CHANGELOG.md # Version history and changes
├── PROCESS.md # Development and release processes
├── AGENTS.md # Agent configuration documentation
└── README.md # This file
Contributions are welcome! Please see PROCESS.md for development guidelines and the release process.
# Clone the repository
git clone https://github.com/unraid/apprise-go.git
cd apprise-go
# Build the project
go build -o apprise-go ./cmd/apprise
# Run tests
go test ./...
Made with ❤️ by the developers of Unraid
Go
93.3%
Python
6.6%