Bridging IRC to Discord, Matrix, Twitch and everything else
Updated July 26, 2026
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:
- Source and issues: codeberg.org/poezio/biboumi
- Packaged as
biboumiin Debian, Ubuntu, Fedora and Arch — the easy route
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
- Building the bot rather than configuring one — writing an IRC bot
- The wider ecosystem of relays, services and search — IRC services and tools
- Existing bot software before you write your own — IRC bots overview
- The protocol underneath all of it — the IRC protocol explained