IRC technology news from the second half of 2025
Categories: IRC
I have to start this edition of IRC news by addressing a worrying trend affecting software development globally.
If you are wondering, why your project is no longer listed, one reason might be excessive use of gen AI in development. If I see a bunch of AI-driven mega-commits, I lose trust in your development process and can’t in good conscience write about your project.
The chances of getting your project covered here increase by not using gen AI, by having an AI policy and writing informative commit messages. For transparency in general, it would be nice, if developers always disclosed gen AI use in commit messages or at least clearly mentioned in the readme that gen AI has been used.
Writing these posts has always involved going through hundreds of repositories in search of noteworthy new projects. Unfortunately, with the rise of vibe-coded projects this has now become infeasible. I don’t have motivation to write about vibe-coded software and thus what used to be a fun treasure hunt became a depressing exercise in code review this time around. Going forward, I will have to rely on tips from others, so feel free to email me, if you happen upon any real projects. A nice way to contribute can be to propose the addition of an AI policy to any project that is meant for general use.
Protocol specifications
An ISUPPORT token for advertising a network icon was added, the metadata spec received many updates and message redaction was clarified regarding client compliance.
Documentation
Modern IRC Client Protocol docs received fixes to ERR_BADCHANMASK and RPL_NOTOPIC. ISUPPORT key syntax was relaxed to allow vendor prefixes.
Mobile clients
goguma - for mobile Linux, iOS and Android
Mentions are now more visible, unsent text gets saved, network disconnections don’t disrupt message typing, you can reply to your own messages, an audio recorder is now available, reactions UI was expanded, emoji-only messages are shown with a bigger font, the password field contents can be made visible and audio links can be previewed.
IRCCloud - connect to any IRC server out there, and even Slack workspaces
The iOS app now supports the multiple windows and menu bar found in iPadOS 26.
WeechatRN - WeeChat relay client for mobile using WebSockets
A button to scroll down is now displayed after having scrolled up in the buffer and compatibility fixes were made for iOS 26.
Web clients
KiwiIRC – uses static files and supports theming and plugins (JavaScript)
The UI was made more mobile-friendly.
The Lounge - modern web client utilising Node.js
The performance of user configuration reloading was optimised.
Desktop clients

Search in Polari
Circe - a client for IRC in Emacs
IRCv3 features SETNAME, standard-replies, chghost, message-tags and server-time were implemented and IRC parsing speed was greatly improved.
Halloy – cross-platform client written in Rust
Halloy offers finegrained configuration and many of the numerous changes during this season focused on that, including tweaking previews, using Emacs-like keybindings for text input, specifying distinct sounds for highlight sets and the ability to hide various messages. Other additions were support for soju.im/bouncer-networks for better experience with soju bouncer, a /clear command to clear buffers, a notification indicator for updates and file transfers, fuzzy matching in command bar search, marking of messages that failed to be sent with the ability to delete them or re-send on servers with echo-message support, a buffer to view all channels on a server using LIST and filtering of users and messages using regular expressions.
Irken – a small, modular client written in Tcl/Tk
Client certificates can now be used.
KVIrc – client built with Qt
Dark theme support was improved, the native spellchecker is now used on Windows and support was added for cap-notify.
MERK – cross-platform, multiple-document interface client
New additions include a search for the log manager, an ability to run a connection script when launching from the command line, lots of improvements to scripting and the script editor, a more featureful text style editor, context menus for windowbar entries, flood protection for long messages, a hotkey manager, a reworked plugin system including export and import of plugins as ZIP files and dragging and dropping of MERK or Python scripts into the application.
mIRC – 95 ‘til infinity (Windows-only)
More options were added for using SASL, the UI now handles display scaling better and work went into 64-bit support.
Pidgin - a multi-network/protocol chat application
Two experimental releases of Pidgin 3.0 were made (2.93.0, 2.94.0). Conversations are automatically persisted without needing to explicitly define auto-join for channels, away status can be set via the UI and users can apply the colour schemes system, light or dark.
Polari - GNOME’s client
A search for the backlog of all channels was added.
RudeChat - Python client designed to be fast, portable, and fun
Lots of GUI code optimisation went in after the move to PyQt.
Terminal clients
catgirl - TLS-only client
An /motd command was added for showing the server’s message of the day.
clown - a client written in Rust
This is a new client just getting the basics down, such as support for multiple channels.
glirc - Haskell library and console client
Notifications can be configured per focus state.
kirc - a tiny client written in POSIX C99
Environment variables can be used to set connection defaults.
senpai - TUI client made for bouncers
A /screenshot command was added for taking and uploading screenshots, support was added for custom keyboard shortcuts, opening irc:// links and STATUSMSG.
SMDT - Sega Megadrive/Genesis terminal emulator, telnet and IRC client
The mouse can be used to switch channels and messages can be hidden per type.
Swirc - lightweight ICB and IRC client
Saving backlogs to disk is now configurable, /nsid command was added for identifying to NickServ, /utctime command was added for printing UTC time and tab completion was improved.
tiny – client written in Rust
ZNC compatibility was improved.
WeeChat - the extensible chat client
SASL support was improved and date formatting was made more flexible.
Bouncers
They stay online, so you don’t have to!
Quassel IRC - cross-platform, distributed IRC client with a central core
ISUPPORT handling was improved and support was added for ERR_HELPNOTFOUND and client-side implicit TLS connections.
soju – multi-user bouncer
METADATA for users is now supported, making it possible to block users, Web Push notifications are cancelled, if a client marks a message as read to reduce noise when actively chatting with someone, support was added for labeled-response to match server replies with client commands more reliably, a directive can be used to add an icon for the bouncer, TLS client certificates can be used for authentication, a configuration example was added for Caddy server and the client configuration docs got entries for Circe and glirc.
ZNC - an advanced bouncer
A dark mode was added to the default web theme.
Daemons
Ergo - combining the features of an ircd, a services framework, and a bouncer
Idle timeouts can now be configured, user metadata is now persistent and the implementations for draft/metadata-2 and draft/message-redaction were polished.
InspIRCd - stable, high-performance and modular
The messageflood module now uses a per-user flood counter and options were added for allowing faster autoconnects on first boot and to ZLine users sending global messages.
Ircd-hybrid - a lightweight, high-performance daemon
Support was added for standard-replies.
juno - an IRCd written in Perl
This daemon got its start all the way in 2012, but now it was updated with expanded IRCv3 support, the good stuff like message-ids, server-time, labeled-response, bot-mode, SETNAME and utf8only!
ngIRCd – lightweight IRC server
A new configuration option DefaultChannelModes was added for listing channel modes that become automatically set on new channels on creation and clients erroneously sending passwords for non-password protected servers are now handled properly instead of disconnecting them.
ProvisionIRCd - a modern daemon written in Python
More API providers were added for geodata.
Solanum - an IRCd for unified networks
Support was added for message-tags, msgid and CLIENTTAGDENY.
UnrealIRCd - the most widely deployed IRCd
Channel flood protection is now on by default, post-quantum cryptography features received many enhancements including switching to OpenSSL on Windows allowing PQC on that platform, many performance improvements were made, the log block now supports calling a webhook on selected events, a Systemd unit was added and support was added for UTF8ONLY, draft/extended-isupport, network icons and multiple TLS certificates/keys.
Bots
This and the next section has been curated with programming language diversity in mind.
Bot::IRC (Perl)
Issues were fixed in SSL connection and character encoding and the SQLite storage plugin was made more robust.
cbot - bot with features implemented as dynamically loaded plugins (C)
An improved formatter API was added.
chlorobot – a C++ bot with a Lua command handler
The development of this bot started in 2024 and it’s still a bit light on documentation, but could be interesting, if you like using Lua.
CloudBot – a simple, fast and expandable bot (Python)
Windows and macOS support is now ensured by tests and lots of cleanups were made.
ebotula - IRC management bot (C)
This bot was created in 2003 and is still being updated. French, Spanish and Italian translations are now available.
Eggdrop - the oldest bot still in active development (C/Tcl)
A web UI was added.
KittyBot - IRCv3 enabled bot for Kittens (Go)
This is a fork of HellaBot. During this development season, SASL authentication was made more robust.
Limnoria - robust, full-featured, and user/programmer-friendly bot (Python)
The plugin template now uses pyproject.toml and the SedRegex got support for custom delimiters.
Mewtwo – a bot using Java and JRuby
This is an older bot that was updated to the latest toolchain and made more stable in the past couple of years.
Orcabot – a modular bot (Common Lisp)
Fractional numbers are now supported in the .calc command.
PBot – a pragmatic bot (Perl)
The Wordle plugin and the translation and virtual machine applets received many improvements.
PhreakBot – a modular bot (Python)
This is a new bot built using pydle. Its features include the ability to easily add your own modules, a permission system, a quote database and a karma system. The database used is PostgreSQL.
Scala-IRC-bot - PircBotX based bot (Scala)
linkReplaceListener was added for finding archived versions of links from the Wayback Machine of Internet Archive.
Sopel - lightweight, easy-to-use utility bot (Python)
Support was added for setname and invite-notify and a sopel-config edit subcommand was added for opening a specified configuration file in the user’s default editor.
Libraries, frameworks and utilities
Ibis - a GObject based library (C)
Nickname properties are now easier to deal with.
lirc - a lightweight client library (C)
This new library saw work on fundamental things such as support for client pings.
redis-irc-bot - minimal IRC bot framework (Bash)
Support was added for password authentication.
superseriousstats - a fast and efficient program to create statistics out of various types of IRC chat logs (PHP)
The documentation was made clearer and configuration is now a bit easier.
Bridges
Biboumi - XMPP to IRC gateway
All allowed IRC channel prefixes are now supported, corrected XMPP messages are no longer forwarded to IRC to avoid noise, support was added for message-tags and draft/multiline was implemented.
Dis4IRC - a modern Discord <-> IRC bridge
An option was added for suppressing previews for URLs bridged to Discord and the pinned messages command was improved.
irslackd - self-hosted IRC gateway to Slack
Support was added for LINELEN (maximum message length in bytes in IRC).
localslackirc - gateway for Slack, running on localhost for one user
The away status of users is tracked and bots are now marked.
Matrix2051 - IRC server backed by Matrix
Support was added for custom homeserver URLs, which helps when using proxies like Pantalaimon or servers with broken automatic discovery.
Reliable Discord-client IRC Daemon (rdircd) - personal discord-client to irc-server translation daemon
Context menu command interactions are handled better, connection errors from typing notifications and status updates are now less verbose, bot replies, voice channel start time, onboarding and ”action required” events are now handled and configuration can be set to read-only, so changes don’t persist between restarts.
teleirc – bridge to Telegram
Documentation was improved.
Services
Taking care of user accounts and channels among other things.
Anope – highly modular set of services
Additions include a nickserv/resend oper privilege, the ability for opers to resend passwords for users in nickserv/resend, support for flexible and monospace layouts, support for self-service validation of vhosts using DNS TXT records, support for SRV and TXT records in the dns module, a --nodb option to disable database and encryption module checks, support for associating a timezone with an account alongside language-specific time formats, support for IRCv3 message tags when using Solanum, tagging channel entry messages with an IRCv3 time tag (on by default), support for forbidding passwords alongside loading forbids from a file, support for the UnrealIRCd +F flood profile mode, an anope-mkpasswd script to help generate passwords for use in the config, a DISPLAY flag for nickserv/list to only show account display nicknames, an hs_offer module for offering templated vhosts to users, expanded password obscurity checks and an event hook to allow modules to reject passwords and improved BotServ fantasy commands.
Atheme - for large networks with high scalability requirements
Passwords that cannot be encrypted are now rejected.