I've spent large amounts of time on IRC. I contribute to the IRCv3 Working Group, which aims to extend the 30-year-old protocol with modern features.
At the same time, I collect information about the past and present of IRC. I have a dedicated IRC documentation repository where I collect documentation about the software & the protocol – including the extension list and the family tree of IRC servers.
My writings page has a few articles documenting various bits and pieces I've written myself.
The nullroute mirrors project has an archive of various old IRC software and dead FTP sites.
I've written a few miscellaneous scripts for Irssi.
Also, some scripts for the Eggdrop bot: g_cap.tcl for authenticating to SASL-enabled networks, and g_ts6.tcl implementing the TS6 server-server protocol because why the hell not?
I write a lot of miscellaneous scripts. The kinda useful ones are below. The somewhat useful ones are in my code.git repository – mostly limited to tools I carry around. The tools I don't carry around are in the hacks repo. And then there's ~/bin full of random junk.
dbus-name – list and monitor DBus service names
dh – do a D-H key exchange over IRCdzenify – use dzen2 as a libnotify service
getpaste – view Zerobin posts on the command line
mpris – control MPRISv2-compatible music players
kc – juggle multiple Kerberos ccaches
pklist – dump a parsable list of Kerberos 5 tickets – useful in shell scripts
– maintains a centralized list of user login sessions (kinda like
– an RFC 4819 subsystem for OpenSSH servers; used by SecureCRT's "Public Key Assistant" (requires
treeify – format any path-like input as a tree
– parse OpenSSH's
authorized_keys files, with support for options and future key types
lib/sexp.py – parse S-expressions in Python (based on Rivest's original C code). This can parse the private keys stored by OTR.
All code released under the MIT Expat license, unless noted otherwise.