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 #hypothes.is, 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 #freenode_#channelname:matrix.org from a typical Matrix client – e.g. /join #freenode_#Node.js:matrix.org 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 matrix.org.
* It should be possible to change the nickname of your IRC user by messaging !nick irc.freenode.net MrFlibble to @appservice-irc:matrix.org. (This isn’t actually turned on right now, but should be fixed shortly. See https://github.com/matrix-org/matrix-appservice-irc/blob/master/HOWTO.md#changing-nicks 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 #matrix:matrix.org how you get on with it!
Hi.
I’m just trying Riot and FreeNode.
I notices that when you connect to the IRC you will be logged (from IRC) as [your-name](m).
It seems that Matrix and/or Riot remembers your IRC name each time you log on, which is good.
I can live with the (m),but how do you change your IRC name from Riot?
Thanks
https://github.com/matrix-org/matrix-appservice-irc/blob/master/HOWTO.md#changing-nicks has the details :)
I wonder, would this be easier to implement as a pseudo-IRC serverserver connection?
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 https://github.com/matrix-org/matrix-appservice-irc/blob/master/HOWTO.md#changing-nicks