Matrix (also written [matrix]) is an open source project and a communication protocol. The protocol standard is open and it is free to use or implement. Matrix is being recognized as a modern successor to the older Internet Relay Chat (IRC) protocol. Mozilla, KDE, FOSDEM and GNOME are among several large projects that have started using chat clients and servers that operate over the Matrix protocol. Members of the Fedora project have discussed whether or not the community should switch to using the Matrix protocol.
The Matrix project has implemented an IRC bridge to enable communication between IRC networks (for example, freenode) and Matrix homeservers. This article is a guide on how to register, identify and join freenode channels from a Matrix client via the Matrix IRC bridge.
Check out Beginner’s guide to IRC for more information about IRC.
You need to set everything up before you register a nick. A nick is a username.
Install a client
Before you use the IRC bridge, you need to install a Matrix client. This guide will use Element. Other Matrix clients are available.
First, install the Matrix client Element from Flathub on your PC. Alternatively, browse to element.io to run the Element client directly in your browser.
Next, click Create Account to register a new account on matrix.org (a homeserver hosted by the Matrix project).
For the IRC bridge, you need to create rooms with the required users.
First, click the ➕ (plus) button next to People on the left side in Element and type @appservice-irc:matrix.org in the field to create a new room with the user.
Second, create another new room with @freenode_NickServ:matrix.org.
Register a nick at freenode
If you have already registered a nick at freenode, skip the remainder of this section.
Registering a nickname is optional, but strongly recommended. Many freenode channels require a registered nickname to join.
First, open the room with appservice-irc and enter the following:
Substitute <your_nick> with the username you want to use. If the nick is already taken, NickServ will send you the following message:
This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>.
If you receive the above message, use another nick.
Second, open the room with NickServ and enter the following:
REGISTER <your_password> <firstname.lastname@example.org>
You will receive a verification email from freenode. The email will contain a verification command similar to the following:
/msg NickServ VERIFY REGISTER <your_nick> <verification_code>
Ignore /msg NickServ at the start of the command. Enter the remainder of the command in the room with NickServ. Be quick! You will have 24 hours to verify before the code expires.
Identify your nick at freenode
If you just registered a new nick using the procedure in the previous section, then you should already be identified. If you are already identified, skip the remainder of this section.
First, open the room with @appservice-irc:matrix.org and enter the following:
Next, open the room with @freenode_NickServ:matrix.org and enter the following:
IDENTIFY <your_nick> <your_password>
Join a freenode channel
To join a freenode channel, press the ➕ (plus) button next to Rooms on the left side in Element and type #freenode_#<your_channel>:matrix.org. Substitute <your_channel> with the freenode channel you want to join. For example, to join the #fedora channel, use #freenode_#fedora:matrix.org. For a list of Fedora Project IRC channels, see Communicating_and_getting_help — IRC_for_interactive_community_support.
Addendum – June 1st, 2021
Due to the recent announcement, many projects have switched to Libera Chat, including Fedora.
To join Libera Chat channels, make the following substitutions when using this guide:
- @appservice-irc:matrix.org → @appservice:libera.chat
- @freenode_NickServ:matrix.org → @NickServ:libera.chat
- appservice-irc → appservice
- freenode_#<your_channel>:matrix.org → #<your_channel>:libera.chat
- freenode_#fedora:matrix.org → #fedora:libera.chat
GSmall typo on the third topic: Creat rooms.
I’ve fixed it. I’m sure it was a mistake that I introduced during editing. The editors sometimes try to remove -ing from words to put them in the active tense. I’m sure I did that there and forgot to add the e.
I love that Fedora is doing this migration, but this creates such a high barrier to non-technical users seeking live support. I hope eventually users can just get access through matrix without the confusing IRC config.
We’re working on getting a Fedora homeserver set up. This will make it easier for more parts of the project to use Matrix natively. Whether or not the user support channel (#fedora) moves from IRC-based to Matrix-based remains to be seen
I agree! I think we’ll eventually move to a matrix-first approach, which will make this all much easier.
Jumping through hoops with NickServ and the like just remind me how painful IRC can often be, especially for new users. I am for a matrix-first approach 110%
I’d rather not use a browser to access the IRC as I use to use the oldr irc chat clients that had it’s own window with the use of a browser.
Plenty of Matrix clients available for the command line: https://matrix.org/clients/
I meant without the use of a browser.
Give gomuks a try. Using it I have 3 tabs open in Guake: 1) irssi, 2) gomuks, 3) terminal
I 100% support a move to Matrix!
I wouldn’t be against a move to Matrix as long as an IRC bridge remains functional; a Matrix migration isn’t worth forcing IRC users to pull out a second client. I’ve written up my concerns about Matrix in the past: https://seirdy.one/2021/02/23/keeping-platforms-open.html
It mostly boils down to Matrix’s complexity and lack of implementation diversity. Yes, it’s an open protocol, but it’s not as open a platform as IRC.
I’d prefer sticking to the current setup (Freenode with the matrix.org Freenode bridge) but skip the registration requirement for Matrix users, if possible. This might require writing a new bot that checks for nick hostnames.
I think most of IRC’s issues are client-side; the protocol itself is fine for public rooms (the lack of e2ee isn’t a concern if a room is public).