ircbits.com

Index / Bridging IRC to Discord, Matrix, Twitch and everything else

Bridging IRC to Discord, Matrix, Twitch and everything else

Updated July 26, 2026

Illustration: the three kinds of IRC bridge

Most bridges are a config file and a single binary. One of them is not a bridge at all — Twitch chat is IRC, so anything that can open a socket already works.

Which bridge for which platform

Platform What you run How remote people appear State, July 2026
Twitch nothing — connect directly they are IRC users native; Twitch still ships new features to it
Matrix matrix-appservice-irc, or Heisenbridge one IRC user each (puppeted) maintained; hosted bridges are mostly gone
Discord Matterbridge one relay nick on IRC works, needs a bot token
Slack Matterbridge one relay nick on IRC works; Slack's own gateway died in 2018
Telegram Matterbridge one relay nick on IRC works
XMPP biboumi channels become XMPP rooms actively packaged
Mumble, Zulip, WhatsApp, Teams, Mastodon, Rocket.Chat… Matterbridge one relay nick on IRC varies by protocol

Relay bot, puppet, or RELAYMSG

The third column is the decision that shapes everything else.

A relay bot joins as one nick and speaks for everyone, so the channel sees <bridge> <dave> hello. It is one process and five minutes of setup, and it reads badly forever.

A puppeting bridge opens a separate IRC connection per remote person, so dave[m] is a real user you can /whois, op and ban. Much nicer, much more work, and some networks restrict it.

RELAYMSG is the third option, if you run Ergo. One bot connection posts under spoofed nicks containing a reserved separator, so Discord's dave shows up as dave/d — a nick no real user can register and no one can be fooled by:

RELAYMSG #ircv3 Mallory/D :Welp, we linked Discord...

It is on by default in Ergo, the separator is /, and channel operators can use it in their own channels without being network operators. This is IRCv3 thinking applied to an annoyance as old as bridging itself, and a genuine reason to pick Ergo when running your own server for a bridged community.

Twitch — no bridge needed

Twitch chat is served over IRC at irc.chat.twitch.tv:6697, so the client you already use can join it: your Twitch name in lowercase as the nick, an OAuth token as the server password. Twitch was still adding message tags to the IRC interface in July 2026.

Read: Twitch IRC explained — the settings for every client, where to get a token now that the old generator has shut down, and how to bot it once you are connected.

Matrix — the software is fine, the hosting is not

OFTC, hackint, IRCnet, Snoonet and W3C are still joinable from Matrix with no setup. Libera.Chat is not, and will not be — its bridge died in August 2023. If you host your own, the choice is between matrix-appservice-irc for a community and Heisenbridge for one person.

Read: bridging IRC and Matrix — the room aliases that work today, why Libera's bridge died, and Libera's rules for third-party bridges.

Discord — Matterbridge, and mind the intents

Fifteen lines of TOML, a bot token, and two privileged intents that make the whole thing fail silently if you miss them. Never a user account: that violates Discord's terms of service and gets accounts banned.

Read: bridging IRC and Discord — the complete config and the settings everyone misses.

Slack, Telegram and the long tail

All Matterbridge, all the same three-block config. Slack shut down its own IRC gateway on 15 May 2018, so the relay bot is what remains there.

Read: Matterbridge setup guide — install, config anatomy, per-platform channel formats, and which connectors have no maintainer.

XMPP — biboumi, which is not a relay bot

Rather than shuffling messages between two rooms, biboumi is an XMPP component that makes IRC networks appear as XMPP servers: #channel%irc.libera.chat@biboumi.example.org is a normal MUC, IRC users are normal occupants, and private messages work. Your XMPP client becomes an IRC client without knowing it.

Development moved to Codeberg, and the old louiz.org site is dead — the certificate has expired and the host does not answer. Ignore any guide that still points there. The project itself is fine: last tagged release 9.0, commits from July 2026, and Debian ships a January 2026 snapshot.

Download:

The other direction — BitlBee

Everything above brings other platforms to IRC users. BitlBee inverts it: a small IRC server that runs on your machine and presents other chat networks as IRC channels, so your IRC client becomes the one window for everything.

This was a beautiful trick when the other networks were open. Most of them no longer are, and the plugin ecosystem shows it — bitlbee-discord has not been touched since January 2022. The core is still maintained; treat the plugins as case-by-case.

Download: bitlbee.org — packaged nearly everywhere.

Before you bridge anything

Ask the channel operators first. Libera.Chat's policy is explicit — "bots must not join channels without explicit permission from those channels' operators", and a bot "must be clearly labeled as a bot and be in some way attributable to its administrator(s)". Most networks take the same line even where it is unwritten.

Set bot mode so clients can tell what your relay is.

Say what you are logging. A bridge usually means everything said in the channel is now stored somewhere else, under someone else's terms, indefinitely. People are entitled to know that before they type.

Accept that it will be lossy. Threads, edits, reactions, replies and attachments have no IRC equivalent; edits typically arrive as a second message, and files need a media server configured or they simply do not cross.

Where to go next