I took Russ’s Irc client at https://swtch.com/irc/ and added enough SASL PLAIN
support to access Freenode so that I could use it as my IRC client.

It’s available at https://github.com/cptaffe/airc.

I documented the flow as best I could in this commit , and I’d appreciate constructive
feedback on how to improve the implementation or add more comprehensive SASL support.
My initial idea was to support CertFP, but I had difficulty getting tlsClient in libsec to work,
and reading through the code I’m not sure it supports sending the client certificate
(there’s a bit which indicates it always sends an empty cert).

Another peculiarity is that mk all fails with a symbol error because it builds Irc.o and irc.o
from irc.c on macOS, I believe this is to do with case-insensitivity in Apple’s FS. To get
around this, just run the 9l command by hand without Irc.o.

After mk install, running "Irc -n nick -p passed irc.freenode.net" should attempt SASL PLAIN.

Speaking of IRC, is there a plan9port IRC channel?