Skip to content

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 #channel or nickname
  • 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
WhatsApp providers/whatsapp Stable
Slack providers/slack Stable
Gmail providers/email/gmail Stable
IRC providers/irc New

Dependencies

  • Add github.com/ergochat/irc-go v0.6.0
  • Bump go.mau.fi/whatsmeow to latest
  • Bump cloud.google.com/go/auth to v0.19.0
  • Bump google.golang.org/api to v0.273.0

Upgrade Guide

This release is backwards compatible. To add IRC support:

go get github.com/plexusone/omnichat@v0.5.0

IRC Setup

  1. Choose an IRC network (e.g., Libera.Chat, OFTC)
  2. Register a nickname with NickServ (optional but recommended)
  3. Configure the provider with server, nick, and channels
  4. 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)