One open source chat tool to rule them all

BitlBee brings multiple chat applications into a single interface. Find out how to set up and use BitlBee in the ninth in our series on 20 ways to be more productive with open source in 2020.
104 readers like this.
Person using a laptop

Last year, I brought you 19 days of new (to you) productivity tools for 2019. This year, I'm taking a different approach: building an environment that will allow you to be more productive in the new year, using tools you may or may not already be using.

Bring all your chats into one interface with BitlBee

Instant messaging and chat have become a staple of the online world. And if you are like me, you probably have about five or six different apps running to talk to your friends, co-workers, and others. It really is a pain to keep up with it all. Thankfully, you can use one app (OK, two apps) to consolidate a lot of those chats into a single point.

BitlBee on XChat

BitlBee is an application that you run as a service that can bridge a standard IRC client with a whole bunch of messaging services. And since it is essentially an IRC server, you have a wealth of clients to choose from.

BitlBee is included with almost all Linux distributions. Installing on Ubuntu (my Linux desktop of choice) goes something like this:

sudo apt install bitlbee-libpurple

On  other distributions, the name of the package may be slightly different, but a search for bitlbee should reveal your options.

You'll notice I use the libpurple version of BitlBee. This version allows me to use all the protocols available in the libpurple instant messaging library, which was originally developed for Pidgin.

Once the package is installed, the service should start automatically. Now, using an IRC client (XChat in these pictures), I can connect to the service on port 6667 (the standard IRC port).

Initial BitlBee connection

You will be automatically connected to the control channel &bitlbee. This channel is unique to you—every person gets their own on multi-user systems. This is where you can configure the services.

The full documentation is available at any time by typing help in the control channel. Explore here, then register an account on the server with the register command.

register <mypassword>

Now, any configuration changes you make on the server—IM accounts, settings, etc.—will be saved when you type save. Whenever you connect, use identify <mypassword> to connect to your account and load all those settings.

purple settings

The command help purple will show you all the available protocols that libpurple provides. For example, I've installed the telegram-purple package, which adds the ability to connect to Telegram. I can add an account by using my phone number with the account add command.

account add telegram +15555555

BitlBee will show that it has added the account. You can list your accounts with account list. Since I only have one account, I can log into it with account 0 on, and it will go through the Telegram login process, list all my friends and chats, and I am good to go.

But what about Slack, one of the most common chat systems out there? Well, you can install the slack-libpurple plugin, and do the same for Slack. If you aren't comfortable compiling and installing things, this may not be for you.

Follow the instructions on the plugin page, and after you have installed it, restart the BitlBee service. Now when you run help purple, Slack should be listed. Adding a Slack account happens the same as with all the other protocols.

account add slack ksonney@myslack.slack.com
account 1 set password my_legcay_API_token
account 1 on

And what do you know? You're connected to Slack, and you can add the Slack channels you're interested in with the chat add command. For example:

chat add 1 happyparty

adds the Slack channel happyparty as the local channel #happyparty. You can use the standard IRC /join command to access the channel now. Pretty cool.

BitlBee and an IRC client help me keep (most of) my chats and instant messages in a single place and reduces my distractions because I no longer have to find and switch to whichever app just pinged me.

What to read next
Tags
User profile image.
Kevin Sonney is a technology professional, media producer, and podcaster. A Linux Sysadmin and Open Source advocate, Kevin has over 25 years in the IT industry, with over 15 years in Open Source. He currently works as an SRE at elastic.

Comments are closed.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.