William Vaughn

My Personal IRC Renaissance

Freenode->Libera + System Crafters

A few months ago the parts of the Internet concerned with free and open source software and IT were abuzz about an IRC Exodus from Freenode to Libera. I hadn’t used IRC in quite a while, and had never been a regular user. I’ve always been interested in it but had never consistently logged in. Early this year I began to occassionaly come across videos from David Wilson’s System Crafters YouTube channel in my social channels. The videos were excellent, informative, organized, and well-aligned with my interest in GNU Emacs and Linux at large. I really got hooked by the playlist on Learning Emacs Lisp. Just after the Freenode/Libera kerfuffle, daviwil (as I now know him) started the #systemcrafters channel on Libera and did an excellent video and live stream detailing how to configure one of the built-in IRC clients in emacs – ERC. I followed along and for the first time had an IRC client I loved using! I also found a community in the #systemcrafters channel that was welcoming, fun, helpful and collaborative.

Below you’ll find descriptions of how far I am down the rabbit hole. I honestly don’t know how much further it goes! 😄


In the #systemcrafters channel I learned that other folks were enhancing their IRC experience by using a “bouncer server” called ZNC. IRC is an old protocol with its origins in the beginning of the world wide web, if you’re not logged in you will just miss the messages that were sent to you. The way around this is to keep your client connected all the time, or to run a bouncer server that stays connected for you. The ZNC bouncer has many features that end up making IRC a little more useable. Essentially, you connect to the ZNC service and it replays what you missed in all your channels since your last login.

I wanted to run my own ZNC. So, I dug in and figured out how to do it on my own Google Cloud instance running Centos 7. The culmination of that learning helped me write this addition to the System Crafter’s wiki: ZNC Bouncer Servers Setup. The only downside is that I was running a publicly exposed server on the internet and spending about $40/mo to keep it going. There are other more affordable hosting options of course, but I’ve decided to run it on a Mini-PC on my home network. There will be a blog coming soon on that! 🖥

Update: Check out the new blogs Running ZNC Bouncer with K3s and IRC Services at Home with K3s.


IRC is old, have I said that yet? Charmingly old mind you! To send files, images, or even some copy/pasta code users typically use file-sharing or pastebin services. One such service is https://0x0.st. And here’s how to use it from the command line.

HTTP POST files here:
    curl -F'file=@yourfile.png' https://0x0.st
You can also POST remote URLs:
    curl -F'url=http://example.com/image.jpg' https://0x0.st
Or you can shorten URLs:
    curl -F'shorten=http://example.com/some/long/url' https://0x0.st

After doing this two or three times, and having watched 7 videos about learning emacs lisp I decided I could write an emacs package to make this more convenient. I found that a package on sourcehut already existed ~pkal/nullpointer-emacs. Because my goal was really to learn Elisp, I read this package more than I used it. In doing so I found that I could fix a few bugs, refactor it for better testability, and add a few features to it. I reached out to pkal on Libera (yes!) and told him that I had made a fork. After some discussion we decided I should be the maintainer of the 0x0 namespace on MELPA. We transferred the project over to me. I’m officially an emacs lisp programmer! 🤓

Bitlbee & Signald

So, now I’m in ERC and IRC all the time. This is basically my facebook or instagram. It’s inevitable that I should start thinking about how I can ERC-ify all textual communication in my life. I use Emacs for email, RSS, youtube, reddit, and news. Why shouldn’t I use it for texting my friends and family? That’s what Bitlbee is for, it bridges IRC to other common chat applications. I’m now running my own bitlbee server on my local network too! Some nice folks wrote and distributed libpurple-signald, a library that bridges the Signal chat application to bitlbee, allowing me to text my wife and my friends from the lovely confines of emacs. 🗨

Update: Check out the new blogs Running Bitlbee & Signald with Docker and IRC Services at Home with K3s.


I’m lurking on this project benoitj/crafter-bot, the friendly #systemcrafters IRC bot written in – you guessed it – Emacs Lisp! I haven’t contributed but I think benoitj is up to some interesting things and I’m keeping tabs on it. 🤖


Thanks for reading about my IRC revival. Come find me on the #systemcrafters channel on irc.libera.chat. You can /query nackjicholson anytime! Hope to hear from you soon! 🖖