The IRC bridge now bridges all of Freenode!

We’ve been running an IRC gateway from Matrix to Freenode almost since day 1 – originally it was a simple perl bot written by tm604 using Net::Async::Matrix; later it was rewritten by LeoNerd to be a bit more modular, and nowadays it’s a full IRC/Matrix Application Service written in Node.js by Kegan.

Up until the end of last week the bridge was limited to synchronising a fixed number of channels between Freenode and Matrix (#matrix, #matrix-dev, #openwebrtc, #vuc and, to be precise), as well as any PMs. But as of Friday, with huge thanks to the admins over at Freenode, we can now bridge *any* channel in Freenode through to Matrix.

Doing this is trivial – you just /join from a typical Matrix client – e.g. /join will give you access to all of #Node.js via Matrix, effectively using Matrix as a great big distributed IRC bouncer in the sky ;)

There are a few limitations in the current setup:
* We only incrementally synchronise the membership lists when folks speak in either IRC or Matrix. This is to avoid flooding either IRC or Matrix with lurkers when the bridge initially joins a channel. We have some plans to improve this in future – see BOTS-53 for some of the sordid details.
* We don’t synchronise joins/parts currently to avoid flooding Matrix with lots of IRC join/part spam. Again, this will improve in future.
* You can’t join +k channels.
* Kicks/bans/invites and other ACLs currently don’t propagate between IRC & Matrix. (I.e. a Matrix user can be kicked from IRC, but it’ll continue to sit in Matrix unless also kicked for there). +i chanmode supported however.
* Bridged public IRC rooms are not yet advertised in the public room list on
* It should be possible to change the nickname of your IRC user by messaging !nick MrFlibble to (This isn’t actually turned on right now, but should be fixed shortly. See for details.

We’ll keep chipping away at making the IRC<->Matrix mapping perfect, but in its current state it’s still really usable. It’s obviously beta still, but please give it a go and let us know in how you get on with it!


  1. I wonder, would this be easier to implement as a pseudo-IRC serverserver connection?

  2. Since this was written things have evolved:
    * We synchronise all Matrix users into IRC, so folks in IRC at least see an accurate view of who’s in the room.
    * We still don’t synchronise all IRC users into Matrix to avoid the constant join/part spam, other than in certain channels explicitly on request (e.g. #openwebrtc). This will be improved.
    * Nick changing was turned on as per


Submit a Comment

Your email address will not be published. Required fields are marked *