Notify
A dead simple Go library for sending notifications to various messaging services.
Install / Use
npx skills add nikoksr/notifyInstalls into whichever agent you are using.
README
<p><i>A dead simple Go library for sending notifications to various messaging services.</i></p>
</div>
About <a id="about"></a>
Notify started as a solution to a personal problem: I needed a simple way to send notifications across different messaging platforms. What began as a tool for my own use has grown into a library designed for quick integration and ease of use, applicable to any notification scenario you might have.
Disclaimer <a id="disclaimer"></a>
Any misuse of this library is your own liability and responsibility and cannot be attributed to the authors of this library. See license for more.
Spamming through the use of this library may get you permanently banned on most supported platforms.
Since Notify is highly dependent on the consistency of the supported external services and the corresponding latest client libraries, we cannot guarantee its reliability nor its consistency, and therefore you should probably not use or rely on Notify in critical scenarios.
Install <a id="install"></a>
go get -u github.com/nikoksr/notify
Example usage <a id="usage"></a>
// Create a telegram service. Ignoring error for demo simplicity.
telegramService, _ := telegram.New("your_telegram_api_token")
// Passing a telegram chat id as receiver for our messages.
// Basically where should our message be sent?
telegramService.AddReceivers(-1234567890)
// Tell our notifier to use the telegram service. You can repeat the above process
// for as many services as you like and just tell the notifier to use them.
// Inspired by http middlewares used in higher level libraries.
notify.UseServices(telegramService)
// Send a test message.
_ = notify.Send(
context.Background(),
"Subject/Title",
"The actual message - Hello, you awesome gophers! :)",
)
Recommendation <a id="recommendation"></a>
In this example, we use the global Send() function. Similar to most logging libraries such as
zap, we provide global functions for convenience. However, as with most logging
libraries, we also recommend avoiding the use of global functions as much as possible. Instead, use one of our versatile
constructor functions to create a new local Notify instance and pass it down the stream.
Contributing <a id="contributing"></a>
Yes, please! Contributions of all kinds are very welcome! Feel free to check our open issues. Please also take a look at the contribution guidelines.
Psst, don't forget to check the list of missing services waiting to be added by you or create a new issue if you want a new service to be added.
Supported services <a id="supported_services"></a>
Click here to request a missing service.
| Service | Path | Credits | Status | |-----------------------------------------------------------------------------------|------------------------------------------|-------------------------------------------------------------------------------------------------|:------------------:| | Amazon SES | service/amazonses | aws/aws-sdk-go-v2 | :heavy_check_mark: | | Amazon SNS | service/amazonsns | aws/aws-sdk-go-v2 | :heavy_check_mark: | | Bark | service/bark | - | :heavy_check_mark: | | DingTalk | service/dinding | blinkbean/dingtalk | :heavy_check_mark: | | Discord | service/discord | bwmarrin/discordgo | :heavy_check_mark: | | Email | service/mail | jordan-wright/email | :heavy_check_mark: | | Firebase Cloud Messaging | service/fcm | appleboy/go-fcm | :heavy_check_mark: | | Google Chat | service/googlechat | googleapis/google-api-go-client | :heavy_check_mark: | | HTTP | service/http | - | :heavy_check_mark: | | Lark | service/lark | go-lark/lark | :heavy_check_mark: | | Line | service/line | line/line-bot-sdk-go | :heavy_check_mark: | | Line Notify | service/line | utahta/go-linenotify | :heavy_check_mark: | | Mailgun | service/mailgun | mailgun/mailgun-go | :heavy_check_mark: | | Matrix | service/matrix | mautrix/go | :heavy_check_mark: | | Microsoft Teams | service/msteams | atc0005/go-teams-notify | :heavy_check_mark: | | PagerDuty | service/pagerduty | PagerDuty/go-pagerduty | :heavy_check_mark: | | Plivo | service/plivo | plivo/plivo-go | :heavy_check_mark: | | Pushover | service/pushover | gregdel/pushover | :heavy_check_mark: | | Pushbullet | service/pushbullet | cschomburg/go-pushbullet | :heavy_check_mark: | | Reddit | service/reddit | vartanbeno/go-reddit | :heavy_check_mark: | | RocketChat | service/rocketchat | RocketChat/Rocket.Chat.Go.SDK | :heavy_check_mark: | | SendGrid | service/sendgrid | sendgrid/sendgrid-go
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
taskflow-inbox-triage
385.5kExample TaskFlow pattern for inbox triage, intent routing, waiting on replies, and later summaries.
taskflow
385.5kCoordinate multi-step detached tasks as one durable TaskFlow job with owner context, state, waits, and child tasks.
imsg
385.5kUse the imsg CLI from OpenClaw agents for iMessage/SMS DMs, groups, replies, reactions, polls, watching, and private-API actions.
