[This is potentially out of date and in the meantime I’ve switched back to
IRCCloud, since it isn’t freezing anymore and I had a variety of problems with
Matrix. — ]
For the benefit of my friends who are still dealing with IRCCloud freezing up
entirely every time freenode looks at it funny…
Just over 2 weeks ago I switched from the closed-source IRCCloud to the
open-source Matrix (Wikipedia article) for my IRC client
needs. I had been using the free version of IRCCloud, with an always-open tab on
my desktop so I would remain connected. I used the web and Android clients and
connected only to the Mozilla and freenode networks, as free IRCCloud has a
limit of two.
I replaced those clients with the equivalent open-source web and Android clients
from Riot (previously known as Vector). Riot runs no servers; its clients
connect (by default) to the Matrix servers hosted by Matrix.org. I used the
Riot web client to create an account on the Matrix.org server.
Now, Matrix isn’t specifically related to IRC at all, but the Matrix servers are
also host to IRC bridges to the freenode and Mozilla networks. The bridged
channels are named like normal Matrix rooms (
#firstname.lastname@example.org) but with a
special prefix chosen by the people running the IRC bridges.
||Matrix.org bridge name
Managing your bridged username
Each bridged Matrix user shows up on IRC as a separate connection with its own
nickname. To set your nickname for each network, there is a special magic bot
you can talk to:
They accept commands like:
!nick <new nickname>
!cmd ... for sending raw IRC commands
You will need to use
!nick to set your bridged IRC nickname.
The Matrix IRC bridges currently have zero support for automatically logging
into NickServ. You will need to open a chat with
identify <your account> <your password> each time the bridge
If you are a heavy freenode user and being logged-in is important to you, this
may be annoying. Since I mostly use Mozilla, which is far more stable, this
hasn’t been much of a problem for me.
Here’s what I liked about the switch.
- When freenode explodes, the freenode bridge may go down, but I can carry on
chatting in Matrix or Mozilla channels.
- Riot’s web app is way snappier than IRCCloud’s in all my experience so far.
- Riot’s web app loads history when I scroll up much faster than IRCCloud.
- Riot’s web app has a wonderful side bar showing all the messages that pinged
me from all channels.
- It’s much easier to catch up on pings in the morning compared to IRCCloud.
- You can click the timestamp to jump directly to a ping in context, and it
loads very quickly.
- Riot is just one Matrix client among many. There are GUI and terminal Matrix
clients for all sorts of platforms, all open source.
- There’s a Matrix server being written in Rust, called Ruma, so that’s fun.
Here’s what I dislike about using Matrix for IRC so far.
- Riot’s web app lacks polish in a number of areas.
- The default input mode parses markdown in your input, turning things like
*foo* into mIRC italics escape codes. This is problematic when discussing
* when you forget to write backticks around the code.
- The formatting of the chat log is rather low-density.
- There is no option for nickname coloring or a more IRC-like chat log.
- Due to the above problems, it can be hard to follow very rapid
- The interface in general doesn’t look as nice as IRCCloud’s.
- There is no dark mode.
- The Matrix IRC bridges lack polish pretty severely.
- You cannot see channel topics.
- You cannot see the IRC usernames of other Matrix users.
- You cannot easily see your own IRC username.
- You cannot see joins and parts (but I usually hid them in IRC anyway).
- You cannot automatically authenticate with NickServ.
- Strangest of all: you cannot tell which bridged IRC users are actually
online, because the bridge populates the channel with every nickname it has
ever seen in that channel.
- In general, if you need more than bare bones IRC support, Matrix will not
work for you.
- You cannot mass-join channels from a list. I had to run
/j <channel> for
every channel I was in on IRCCloud.
- You cannot join arbitrary IRC networks on demand. They need to be bridged
These are things where Riot and IRCCloud are roughly equal.
- Push notifications to my phone work just as well.
- File uploads work quite well in both.
- You or I could run our own Matrix server with an IRC bridge to any network we
please. Since Matrix is federated, we could use this bridge from our
Matrix.org accounts; the channels would just be named like
- You, I or others could fix any problems because it’s all open source.
- In fact, I’m currently running a fork of riot-web at
https://solson.me/chat which disables the markdown
input parsing. Since it’s an entirely client-side application, all I need is
a static web server.
- The issues I’ve discussed are already known by the developers and there is
already work in-progress to fix some of them.
- Matrix might never take off and thus end up abandoned.
- Development could be slow.
Hopefully this was enough braindump for you to figure out whether Matrix could
work for you. It only took me a couple hours to get completely set up (including
time I spent researching Matrix and its variety of clients), so I encourage you
to give it a go and decide for yourself.
Despite my cons list being physically larger than my pros list, I assure you
that the pros outweigh the cons for me. I’m simply good at complaining. :)
Please let me know if you have any comments or corrections to this article. You
can always reach me at email@example.com,
Mozilla IRC, or @solson:matrix.org on