Relay – IRC Client for the Modern Desktop

I couldn’t find an IRC client made for elementary OS. Certainly not one that was stable. I wanted to create an IRC client for elementary OS that had everything I would want in a perfect IRC client. I set out to create a fast and elegant IRC client, written in Vala, with no bulky dependencies just for parsing messages. Its geared towards elementary OS but works great on any Linux operating system. It won’t use much memory, less than 30mb usually. Its quick, stable, and I’m adding features all the time.


You can see an idea of what it looks like above, although even some newer features are missing from that screenshot.

While building it I wanted to have a very attractive UI that focused on the main competent – the messages. I took a different approach than most IRC clients, putting the user list and the channel subject in popovers in the header bar. I wanted it to be easy enough to use that anyone could use it. You can slide away the channel list. Once the channels you want are open, you can focus on the important bits.

Another great feature is drag and drop to Hastebin (an open source pastebin). If you drag files to the paste icon it will upload all of them and put the URL’s in the output window.

While building Relay I paid special attention to how many libraries I was using. I didn’t pull in any libraries to parse messages or even to send HTTP requests. All communication in the IRC client is done through raw TCP sockets, even the HTTP requests to Hastebin. It uses multiple threads to take advantage of multi-core CPUs. It uses a small amount of memory – usually 25mb.

Other features include:

  • A missed message count.
  • Highlighting tabs with activity from IRC servers.
  • Drag and drop reordering of tabs.
  • Automatic IRC channel connecting
  • URL parsing and the ability to open your browser when clicked
  • Highlights the name of your or anyone else when mentioned in a chat
  • Right click tab switching.
  • The ability to switch channels through tabs or the sidebar.
  • It supports languages that use UTF-8 characters.
  • Although Relay was built on Elementary OS it will switch the theme depending on what operating system you are using.
  • The ability to search users
  • The ability to see where you left off since you last visited a tab
  • The ability to control many settings and set colors in the UI
  • Click a user name to have their name placed in the text entry
  • Private messaging and and ability to block users
  • The ability to turn on or off joining or exiting messages
  • Creates a datestamp every 5 minutes to give you a timeline of what has happened

I’m adding features all the time so if you are building from source make sure to pull down updates.

Edit: A PPA is now available. Get the PPA here:

If you want to just install it you can use the following commands on a distro that uses apt-get:
sudo apt-add-repository "ppa:agronick/relay"
sudo apt-get update
sudo apt-get install relay

The code is mirrored on Github and Launchpad. It should be relatively simple to compile and install. Simply follow the instructions in the INSTALL file. You can leave any feature requests or bug reports on Github.

Check it out. Let me know what you think. I’d like to hear your feedback on what you think about this IRC client. If you have issues just open an issue on Github and make sure to say witch operating system you are using if it’s not Elementary OS. If you would like to help out in any way I would certainly appreciate it. Keep in mind that as of July 2015 it is only a month old. Check the repos frequently as you should find new code posted often.

Kyle Agronick


12 thoughts on “Relay – IRC Client for the Modern Desktop

  1. Hi Kyle

    It seems that release 0.1 (PPA) doesn’t use the inserted custom port. I’m using Port 8080 with SSL for connecting onto my bouncer, it just says “connection.vala:93: Could not connectCould not connect to 37.xx.xx.xx: Connection refused” .

    1. Thanks for bringing that to my attention. I just pushed out an update that addresses this. If you update your repos in a few minutes you’ll have the new version that addresses this.

  2. Looks great so far. A few things I’d like to see, before it’d be my primary client.

    > Up to retype previous command..
    > Permanent or optional list on the right hand side for users, (I don’t like the bubble) It’d be awesome if it could bounce in like the servers do on the left.

    1. The up arrow to see previous will happen. Users will never be on the right like every other IRC client unless someone else codes it.

  3. Very good-looking, I would definitely use it as my primary IRC client if it had the following features:

    * The option to fix the user list instead of displaying the bubble
    * Tab-complete
    * Stalk-words

    Also, using “/” to issue commands seems not to work, not sure if this was intended or if using the slash for issuing commands is specific for FreeNode. My guess is no.

    Overall, great looking client but it can still user some more features. Keep up the good work!

  4. Hello. Is there any possibility of making this compatible for other distributions, like CentOS 7? That’s not my distro of choice, but it would be nice to be able to use Relay when I am at work. I cannot find libgranite or libunity for CentOS7.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s