
Some projects solve a real problem. Others start with a simple thought: “I wonder if that would still work…” – This one definitely belongs to the second category. 🤓
For those of us who are getting a little older, let’s just say the generation that knew the Internet before everything became an app — IRC probably brings back a few memories.
IRC, UnrealIRCd, and a Linux server were actually among the things that first got me seriously interested in system administration many years ago… 💻
Back then, UnrealIRCd had a feature I always found pretty cool: a user mode that allowed an IRC Operator to remain in a channel while being completely invisible to regular users (later it was removed by the creator for ethical reason). 🥷
Years later, purely out of curiosity, I wanted to see whether it would be possible to recreate this behavior on a modern version of UnrealIRCd.
And more importantly: could an AI actually develop it for me if I guided it and explained exactly how the feature was supposed to behave?
A Little Challenge for Codex
The interesting part was that simply asking “write me an UnrealIRCd module” wasn’t going to be enough.
The AI needed to understand the current UnrealIRCd 6 APIs, reproduce the historical behavior, and, most importantly, find a clean way to implement everything without modifying the server’s source code (because I’m not entirely sure I could have guided Codex through that part 😅).
After several iterations and some cross-reviewing between ChatGPT and Claude, we ended up with a pretty elegant architecture.
And the result genuinely surprised me: the first version I actually submitted to the compiler compiled successfully on the very first attempt with UnrealIRCd 6.2.7. 🤩
Of course, the first attempt to load the module was a quick reminder that you should never celebrate too early in IT: +I, the historical user mode I initially wanted to use, is already assigned to something else in modern UnrealIRCd.
So the module now uses +X instead.
How Does It Work?

The general idea is fairly simple: the IRCOp remains a real member of the channel. The internal state of UnrealIRCd is left untouched.
Instead, the module creates a different view of the channel for users who are not IRC Operators:
+X/-Xenables or disables invisibility.- JOIN, PART, and QUIT events are filtered for regular users.
- NAMES, WHO/WHOX, and WHOIS responses are also filtered to prevent the IRCOp’s presence from being revealed.
- Channel privilege changes such as
+oor+vwon’t reveal the invisible IRCOp either. - When
+Xis enabled, a synthetic PART makes the IRCOp disappear cleanly from the channel lists of already connected clients. - When
+Xis disabled, clients receive a regular-looking JOIN event. - Messages and actions remain visible: the goal is to hide channel membership, not to make the IRCOp anonymous. 🥷
Other IRC Operators continue to see the actual state of the server.
Does It Actually Work?
On UnrealIRCd 6.2.7, I tested enabling and disabling the mode, JOIN/PART/QUIT events, NAMES, WHO, WHOIS, channel privilege changes, messages, KICK commands, and even removing IRC Operator privileges.
In that last scenario, +X is automatically removed, and the user reappears normally in the channel. Pretty neat.
More importantly, actions performed by the IRCOp don’t permanently reveal their presence in the channel.
Of course, I’m not claiming to have tested every possible combination.
For these tests, I set up a small IRC network consisting of a single server. I haven’t had the opportunity to test the module in a multi-server environment or with IRC services such as Anope (formerly Epona).
This is an experimental project, so use it at your own risk.
The source code is freely available on GitHub — unrealircd-invisibility under the GPL-2.0-or-later license, just like UnrealIRCd.
Is this going to revolutionize the Internet? Definitely not. 🤣
But almost 25 years after my first experiments with IRC, seeing an AI bring back a feature that reminded me of my early Linux days in just a few hours… it was absolutely worth it. 😎


