This weekend the IRCv3 homepage sat near the top of Hacker News — 239 points, 216 comments — and the most useful document in that pile wasn’t the specification. It was a post on Libera.Chat’s news archive titled “IRCv3 Downgrades.” Libera’s staff have written a bot, CompatServ, codenamed pyrite internally, that catches TAGMSGs carrying the +typing tag and rewrites them into plain NOTICEs — messages that render correctly on every client written in the last decade. The stated reason is blunt: “a major flaw in IRC: client diversity.”
The number that matters is eight. Eight clients support +typing: Goguma, Halloy 2026.5+, IRCCloud, mIRC, ObsidianIRC, PIRC.pl, senpai, and WeeChat.
Eight Clients Is Not a Technical Failure
Typing indicators are not hard. Neither are reactions — and reactions remain, by Libera’s own accounting, a +draft/react tag the network is merely “considering allowing” when client support improves. We are discussing a few hundred bytes of optional metadata attached to messages that already exist.
So the eight-client list isn’t about difficulty. It’s about who gets paid. Nobody’s revenue depends on implementing +typing. mIRC — a client older than most of its users — is still grinding through tag support one point release at a time in its own release notes, because somebody keeps doing it for reasons that are not financial. The IRCv3 working group has spent years producing careful, correct documents, and its enforcement mechanism is a list on a website.
That is not a failure of engineering. It’s a failure of leverage, and no amount of spec-writing fixes it.
The Standard Doesn’t Ship. The Shim Does.
Libera’s bot belongs to a long and unglamorous tradition: the compatibility layer that lies politely so the surface never breaks. Windows ran on it for decades. SMTP and HTTP run on it now. The web is held together by middleboxes that translate the new thing into the old thing, and the people who write the specs rarely thank the people who write the shims.
Note what Libera chose, though. Not a spec revision. Not a working-group vote. A running service that intercepts user traffic in transit and rewrites it. That is a middlebox by any definition — and it is also the correct answer, delivered faster than years of consensus managed.
One client-side maintainer, camped in the network’s #libera-pyrite test channel while a build ran in another window, put it this way: “We kept telling ourselves the clients would catch up. Then somebody shipped the thing that makes catching up unnecessary, and now I genuinely don’t know what my client is for.”
Someone Always Runs the Shim
Here’s the part that should unsettle anyone fond of volunteer infrastructure. Libera is not a company. It’s a nonprofit staffed by volunteers that inherited Freenode’s user base after the 2021 blowup. It is simultaneously drafting a policy update on bots and large language models, and — on the same news archive — making the argument that it is out of scope for the UK’s Online Safety Act. Standards work, moderation policy, jurisdictional analysis. Nobody elected it to any of that.
The exit problem is worse than it looks. If you object to a volunteer nonprofit running a process that reads your typing indicators, where exactly do you go? To a smaller network where fewer of the eight clients are present, and your experience degrades rather than improves. Leaving doesn’t discipline the governor; it just makes your own rendering worse. Decentralization rhetoric has always assumed exit is the disciplining force and voice is optional. What that produces in practice is a shim run by a volunteer that you can leave but cannot improve by leaving.
Anyone currently designing a federated protocol for social media should sit with that for a minute. The spec is not the institution. The institution is whoever ends up eating the compatibility cost, and the compatibility cost is always eaten by something in the middle that reads your traffic and is polite about it.
CompatServ Is Cheaper Than Waiting
None of this is an argument against the bot. CompatServ is the right call, and it is almost certainly the cheapest thing anyone has done for IRC this decade. Hoping eight more clients will implement a tag nobody is paid to implement is not a strategy; it’s a prayer with a changelog.
But the lesson isn’t that open protocols survive. It’s that they’re governed — by an unaccountable, volunteer middlebox operator who happens to be competent, which is the best case. That’s more honest than most platforms and less romantic than most manifestos. It’s also the part of the decentralization conversation that never survives contact with a release schedule.