Release Notes: v0.5.0¶
Release Date: 2026-03-28
Summary¶
This release adds IRC as the sixth messaging provider in OmniChat, enabling bidirectional communication with IRC channels and users.
Highlights¶
- IRC provider for channel and direct message support
New Features¶
IRC Provider¶
Full IRC client implementation using ergochat/irc-go:
import "github.com/plexusone/omnichat/providers/irc"
p, err := irc.New(irc.Config{
Server: "irc.libera.chat:6697",
Nick: "agentbot",
Password: os.Getenv("IRC_PASSWORD"),
Channels: []string{"#mychannel"},
UseTLS: true,
Logger: slog.Default(),
})
Features:
- TLS support (enabled by default)
- NickServ authentication via password
- Multi-channel support with auto-join on connect
- Channel and DM messaging - send to
#channelornickname - Event handling for JOIN, PART, QUIT events
- IRCv3 capabilities including message-tags and server-time
- Automatic message splitting for IRC line length limits
Supported Platforms¶
OmniChat now supports 6 messaging platforms:
| Provider | Package | Status |
|---|---|---|
| Discord | providers/discord |
Stable |
| Telegram | providers/telegram |
Stable |
providers/whatsapp |
Stable | |
| Slack | providers/slack |
Stable |
| Gmail | providers/email/gmail |
Stable |
| IRC | providers/irc |
New |
Dependencies¶
- Add
github.com/ergochat/irc-gov0.6.0 - Bump
go.mau.fi/whatsmeowto latest - Bump
cloud.google.com/go/authto v0.19.0 - Bump
google.golang.org/apito v0.273.0
Upgrade Guide¶
This release is backwards compatible. To add IRC support:
IRC Setup¶
- Choose an IRC network (e.g., Libera.Chat, OFTC)
- Register a nickname with NickServ (optional but recommended)
- Configure the provider with server, nick, and channels
- Connect and start messaging
See the IRC Provider Documentation for detailed setup instructions.
Example Configuration¶
router := provider.NewRouter(logger)
ircProvider, _ := irc.New(irc.Config{
Server: "irc.libera.chat:6697",
Nick: "myagentbot",
Password: os.Getenv("IRC_PASSWORD"),
Channels: []string{"#dev", "#support"},
UseTLS: true,
Logger: logger,
})
router.Register(ircProvider)
router.ConnectAll(ctx)
Contributors¶
- Claude Opus 4.5 (AI pair programming)