BitlBee Accounts

I have previously written about BitlBee & HipChat, and this article is an addendum to that piece.

I found BitlBee “accounts” to be kind of a confusing feature to BitlBee, but by my own admission the whole thing is pretty well documented, so maybe it’s just a reading comprehension problem on my part. I’m going to explain it all in my own words.

First of all, if you have any problems at all look at the official commands documentation which really does explain everything clearly, although you will be really confused if you skip around as I did.

There’s a /save command in BitlBee. You can also have it set up to autosave (which is I believe the default). Regardless, when you type /save in the BitlBee buffer, all of your stuff will be saved assuming that the config files have sufficient permissions and whatnot. By all of your stuff being saved, I mean your account information, account passwords, what channels you’re in, what buffers they map to, and so on will be saved. It appears to me that the account/password data is encrypted somehow (presumably using your identify password`), although I wasn’t fully able to reverse engineer this and is something I want to follow up on. Anyway, you’ll find that your account passwords are not stored anywhere obvious in plaintext.

Completely separate from your notion of your “HipChat” account or your “Twitter” account or your “AIM” account or whatever you’re using BitlBee account for, BitlBee has its own system for managing user accounts. If you just use BitlBee to connect to a single service (as I do) this abstraction layer is a bit confusing, but it totally makes sense if you have multiple accounts managed by BitlBee. The idea is that as a user I can authenticate once to BitlBee, and then BitlBee will reauth to all of the N other services I bridge to.

In my experience, here’s how you should do it:

When I have to restart Bitlbee/WeeChat (which isn’t often), I need exactly two commands to get my whole chat thing set up:

/connect bitlbee       # connects to my local bitlbee from weechat
identify <MYPASSWORD>  # logs into all my bitlbee accounts

That should be everything you need to do.

Totally incidentally, I run my BitlBee instance bound to 127.0.0.1 on a remote server and then connect to it via a WeeChat client connected over the loopback interface. There are a bunch of other great CLI IRC clients out there (irssi) comes to mind, but the important thing is that if you have BitlBee bound on 127.0.0.1 rather than 0.0.0.0 you’ve vastly improved the security of the whole thing by requiring SSH authentication to the server in question to log into your chat accounts.