Internet relay chat (IRC) is one of the oldest chat protocols around and still popular in many open source communities. IRC's best strengths are as a decentralized and open communication method, making it easy for anyone to participate by running a network of their own. There are also a variety of clients and bots available for IRC.

But on the reverse side, usability is a concern. Most of the common user interfaces for IRC clients or platforms aren't always intuitive. People from parts of the world with unstable internet connections have a hard time remaining connected to participate in conversations.

Many people have tried addressing these problems before, but none have come as far as Riot.

What is Riot?

Riot is a free, open source, and multi-platform client based on the Matrix protocol. To understand it better, think of Matrix as the protocol and Riot as the client. Matrix is a decentralized, secure messaging protocol. It has the benefit of using HTTP / JSON APIs, is capable of sending and receiving messages with full end-to-end encryption, supports WebRTC VoIP/video calling, and maybe most importantly, offers integration capabilities. Matrix was built to integrate with IRC servers and other communication protocols, meaning you can use the Riot client as an IRC bouncer. You can read more details on what separates Matrix from IRC on Matrix's FAQ.

As a result, Riot becomes most useful in its implementation as the default Matrix client. It's convenient and decentralized, as anyone can launch their own Matrix "homeserver" and connect it with Riot. However, Matrix by default has servers bridged with Freenode, Mozilla IRC, and more. This lets you use Riot as a persistent client that keeps you connected to IRC even when you're not there.

riot-interface-osdc-article.png Photo by author, fair use screenshot

Riot desktop application on Fedora Linux using Matrix

Outside of the web application, you can also find it as a desktop application for Mac, Windows, and Linux, or a mobile application for iOS and Android. In this guide, you'll learn how to get started using Riot as a full-time messaging client with the default Matrix / IRC integration servers.

Register and get a client

First, you'll need to grab an account from Riot's website. Registration is straightforward and shouldn't take you much time. You can find the registration form here. Once you've registered and have confirmed your email, you'll need to get the Riot applications on your devices of choice.

Desktop clients

There are desktop clients available for Windows, macOS, and Linux. If you're running Windows or macOS, you can download the right version for your desktop on the Riot downloads page. If you're using Debian, Ubuntu, or a related operating system, you can add a repository to your system to install the Riot desktop client. You can read this guide on how to add the repository and install Riot to your system.

Riot is not yet officially packaged in Fedora's repositories. However, there is a third-party Copr repository where the desktop application is packaged. Until it makes it into Fedora's repositories, you can use this version to get started with Riot. You can find the Copr project and install instructions here.

Mobile clients

Want to have Riot integrated on your phone or do you prefer a mobile client? You can also find official versions of Riot on iTunes, Google Play, and F-Droid. Any of the mobile clients will integrate fully with a desktop client, if you choose to use both. This guide will focus more on the desktop clients.

Setting up Freenode in Riot

Riot currently supports eight IRC networks: Freenode, Moznet, Snoonet, OFTC, GIMPNet, Foonetic, Rizon, and EsperNet. Although you can use any network you like and the instructions will mostly be the same, this guide focuses on using Freenode.

Joining your first channel

One of the first things you'll see after signing into Riot is the directory. There you can search through chat rooms on Matrix itself or any of the other IRC servers that are integrated. To join your first channel, you can select the IRC channel of choice in the dropdown menu and search for a channel.

For example, if we want to find #opensource.com on Freenode, you can select the Freenode option and search for #opensource.com. Once it's there, you can join and say hello to the rest of the Opensource.com community hanging out in IRC.

Searching for #opensource.com on Freenode from the Riot client

Alternatively, if you would prefer to directly join a room, you can type the following as a command from any chat window in Riot.

/ join #freenode_#channelname:matrix.org

Setting your IRC nick

Send a message to @appservice-irc:matrix.org to change your IRC nick in Matrix / Riot

By default, your IRC nick, or username, will be similar to your display name in Riot. Sometimes it will have [m] appended to the end. However, after you connect to a channel, you can change your nick on the IRC side as well. You'll need to start a new conversation with the IRC integration bot between Riot and Freenode.

In the bottom left corner of your Riot client, you can start a new personal chat with any user. To message the IRC integration bot, start a new chat with @appservice-irc:matrix.org. This will put you and the bot together in a private chat. To change your nick, send the following command to the bot:

! nick irc.freenode.net < IRC nick >

You should receive a confirmation message, similar to: "Nick changed from 'OldNick' to 'NewNick.'" For more help, you can read the official documentation on changing your nick.

Authenticating with NickServ

One of the other vital functions you might need to do is authenticate with NickServ. This is especially important if you want to use your registered IRC nick or are a member of invite-only channels.

You'll need to start another direct chat again. This time, you can search for the user @freenode_NickServ:matrix.org. This will put you into a private message with NickServ on Freenode's servers. To authenticate, you can send a message just like you normally would.

IDENTIFY < username > < password >

After doing this, you should receive the normal confirmation that you are now logged in as your account. Remember to use caution when opening this chat in a public place, as your password will be displayed in plain text whenever you open that direct message with NickServ.

Say hello!

Once you've joined a channel, claimed your nick, and authenticated with NickServ, you will be all set to begin using Riot. In any channel bridged in IRC with Matrix, all your messages from Riot will show up in the IRC channel. Riot can also act like an IRC bouncer that keeps you persistently connected. Whenever you open Riot, you will be able to see a log of past discussions even if you weren't connected to the Internet.

Both Matrix and Riot are open source projects. You can find Matrix's code and Riot's code on GitHub. If you want to better understand how the integration bridge works, you can read this blog post by one of the developers.

Have any comments or stories to share about using Riot? Are you already using it for IRC? Share your comments with us down below!