Many Internet Relay Chat (IRC) clients in Fedora (xchat, hexchat, irssi) only support the IRC protocol, however many users also converse in other Instant Messaging (IM) protocols like Google Talk and Facebook Messenger. One option to have all your IMs and Chats in one application is to switch to a client that supports both IRC and IM, such as pidgin or empathy. However, there is another option that does not require you to switch IRC clients — bitlbee.

Bitlbee is an IRC server that runs in the background on your machine and forwards all your IM chats straight through to your IRC client. Each chat with a contact in your IM just appears as a PM in your IRC client.

In this article, we will step through installing bitlbee on Fedora, setting up bitlbee to run on localhost on your machine, and how to set up a IM service to forward your chats through to your IRC client.


Installing bitlbee

First up, we need to install bitlbee. Since bitlbee is included in the default fedora repositories, you can either install with the Software application in Fedora or with the command line:

sudo yum install bitlbee

Starting the bitlbee service

After installing, we need to start the bitlbee service to run in the background. To start the bitlbee service, we run the following command in terminal:

sudo systemctl start bitlbee.service

Note that systemctl normally doesn’t output anything here so to check that bitlbee has actually started. To check that bitlbee is in fact running, use the command:

sudo systemctl status bitlbee.service

And it should output something similar to:

 bitlbee.service -BitlBee IRC/IM gateway
    Loaded: loaded (/usr/lib/systemd/system/bitlbee.service; disabled)Active: active (running) since Wed2014-02-1214:54:35 EST;1min13s ago
  Main PID:27148(bitlbee)CGroup:/system.slice/bitlbee.service
            └─27148/usr/sbin/bitlbee -D -n

What you are looking for in that output is the following text telling us that the bitlbee service is Active:

Active: active (running)

Note also that just activating the service is not enough to make the bitlbee service restart every time you reboot. To ensure that bitlbee starts every time you reboot, you need to enable the bitlbee service with:

sudo systemctl enable bitlbee.service

Connect to and configure bitlbee

Now, fire up your IRC client of choice, and configure a new connection to a server. By default, bitlbee runs on port 6667, so just set the new server address to localhost:6667.

Once you have connected to the server, bitlbee should have automatically joined you to the channel &bitlbee. This channel is where you will now send commands to to configure bitlbee.

Switch to the chat window for the &bitlbee channel, and type in the following command to create an account on your local bitlbee server for your IRC nick (obviously changing mypassword to your password):

register <mypassword>

Bitlbee will create an account for you and log you in, and should respond with a message like:

<root> Account successfully created * ryanlerch sets mode +R on ryanlerch

Everytime — from now on — when you reopen your IRC client you will need to identify yourself to the bitlbee server. This is done with the command:

identify <mypassword>

So i don’t have to worry about registering every time, i just set up a connect command for the bitlbee server to always run:

/MSG &bitlbee identify <mypassword>

Setting up Accounts

Now you have bitlbee running and configured, we need to add a chat account to bitlbee. In this example, we are going to configure a Google Talk jabber account.

To set up a google account, run the following command in the &bitlbee channel:

account add jabber

Then tell the gtalk account to use oauth to authorise the account with the command:

acc gtalk set oauth on

The default name format that google talk can sometimes also be a bit messed up, so tell bitlbee to use the full name of your contact when displaying it with the command:

account gtalk set nick_format %full_name

And then turn the account on with the command:

acc gtalk on

A new PM window will show up in the bitlbee server in your IRC window with the following message. Follow the link, get the auth token that google generates, and then paste it back into this PM window.

<jabber_oauth> Open this URL in your browser to authenticate: https://...
 <jabber_oauth> Respond to this message with the returned authorization token.

Now switch back to the &bitlbee chat window, and all your online gtalk contacts should be there in the users list. Create a PM with any of them to chat directly.

Also, if you have multiple chat accounts set up, you are able to join channels in bitlbee to show just the contacts for that account. For this example, you join the &gtalk channel on your bitlbee server, and it will only show your google talk contacts.

You are done!

If you want to connect to other accounts, the bitlbee wiki has further details on how to create accounts for a bunch of different protocols, including Facebook chat.