IRC technology news from the first half of 2026
Categories: IRC
In the previous news article I expressed my disappointment about the flood of vibe-coded IRC projects. A couple of things happened since then. The IRCv3 Working Group started adding AI markers (robot icons) to software listed in the support tables on ircv3.net when it is known to be developed with substantial AI assistance. The members of Codeberg e. V. voted 358 to 144 to prohibit vibe-coded projects from the free Codeberg code hosting service. All of this is very helpful for evaluating new software projects.
Below you will find an entry for a new mobile app called Mensajitos, which in a refreshing turn of events is coded by traditional brain-hand coordination and has a clear and sensible AI policy. It truly is nectar for the weary soul to see such projects still being created.
Protocol specifications
The working group published a spec round-up in February, highlighting the ratified reply client tag and Websockets as well as updates to react client tag, Metadata and client-batch. Since the round-up post, the group ratified Account Extended Ban, no-implicit-names extension, channel-context client tag and introduced a draft oper-tag extension. Updates to existing specs and drafts included chathistory-context and chathistory-end tags and an ACCOUNTREQUIRED ISUPPORT token alongside several improvements to the account-registration draft spec.
Mobile clients
goguma - for mobile Linux, iOS and Android
Support was added for network icons and avatar metadata, sharing videos from the phone’s media library, unreactions, redacting reactions, chathistory-end tag, CHATHISTORY TARGETS pagination and ACCOUNTREQUIRED ISUPPORT token.
IRCCloud - connect to any IRC server out there, and even Slack workspaces
The Android app received UI updates for improved compatibility with newer Android versions and the handling of reply tag in the iOS app was made more robust.
Mensajitos - client for Android and iOS
This is a new client that was made public in June. It aims to feel like a real mobile chat app rather than a terminal client pushed inside a phone screen. It makes use of React Native.
Weechat-Android - WeeChat relay client for Android
Error messages are now shown in snackbars (messages at the bottom of the screen) and the copy dialog was improved.
WeechatRN - WeeChat relay client for mobile using WebSockets
A button for scrolling to unread messages was added and it is now possible to configure the relay path.
Web clients
Convos - Go in the backend and Svelte in the frontend
The backend was ported from Perl to Go. The plugin system was dropped as it was tightly coupled to Perl, the CMS was removed, OIDC login support was added for single sign on, Web Push is now supported for notifications on mobile clients, channel mode handling was improved, support was added for server-time, multi-prefix, userhost-in-names, extended-join, the message tags msgid, account and reply and /ignore and /unignore commands were added for filtering messages from nicks locally in the client.
gamja β a bare-bones web client
The user experience of file uploads was improved and a router was added, allowing to restore the focused buffer on page refresh per a URL scheme.
irc-hybrid-client - single user hybrid client using JavaScript frontend and Node.js/Express backend
A custom background colour can be specified for each IRC channel and an allow list for websocket Origin was implemented.
KiwiIRC β uses static files and supports theming and plugins (JavaScript)
The dark theme was improved and language detection was made more robust.
The Lounge - modern web client utilising Node.js
A /cleartopic command was added, msgid tags are now handled, actions like /me now receive STATUSMSG indications, accessibility was improved and the mobile viewport now behaves well when the virtual keyboard appears.
Desktop clients

bIRC screenshot
bIRC - a native client for macOS
This is a new app, which already supports all IRCv3 features, including the ones in draft state. It also works with bouncers, supports DCC file transfers and is scriptable with JavaScript.
ERC - an Emacs IRC client
A match API was added for reacting to the content and other data of messages, desktop notifications became more configurable and a settings module was added for applying options granularly.
geoIRC - a client for Commodore GEOS in 6502 assembly
To use this, you need GEOS running on a Commodore 64 with a 1541 Ultimate II+ cartridge or an Ultimate 64. On YouTube there is a general presentation and a technical deep-dive about the client.
Halloy β cross-platform client written in Rust
Additions include a /connect command to temporarily connect to a server, support for transparent background, ability to add multiple keybinds for a single shortcut, support for emoji reactions with IRCv3 react, ability to insert emojis and commands by clicking their picker entries, multi-line send support, typing indicator support, file uploading using soju.im/FILEHOST, channel-context support, /massmessage command to send Ergo/Solanum mass-messages, ability to copy messages via context menu, persistent message drafts, support for displaying SVGs, a nick and channel completion picker, support for reply, draft/message-redaction, metadata, WebSockets and bot mode IRCv3 features.
New settings allow the user to hide server icons in sidemenu, set the default reason for QUIT and PART, tweak the font size of messages that contain only emojis, disable confirmation of delivery for sent messages, specify queries added to the sidebar after connecting to a server, configure font line height, control when automated away messages are shown and how they look like and hide unread indicators for queries among other things.
Irken β a small, modular client written in Tcl/Tk
The reconnection plugin was made more robust.
MERK β cross-platform, multiple-document interface client
Channel topics can optionally be displayed in tooltips for channel entries in the windowbar, Markdown can be used to format input text, support was added for ASCIImoji shortcodes, IRC colours can be injected into input, Wayland session on Linux is now supported, an optional “tip of the day” dialog displaying at startup was added, new channel chats can optionally trigger a systray flash notification, Flatpak was added as an installation method on Linux, new plugin examples were added, SASL authentication is now supported, IRCv3 capability negotiation was improved, a log viewer was added with search functionality, scripts can be defined to execute upon connection to a server or a specific channel, plugins can request IRCv3 extensions from the server allowing them to handle extensions that MERK doesn’t support natively, custom word highlighting can be defined with the new /highlight command, the bot status of users is now displayed in user lists and away messages can optionally be shown as tooltips in the nickname display.
mIRC β 95 βtil infinity (Windows-only)
Editboxes in custom dialogs support grayed out optional text, dark mode support was improved and the installer no longer requires admin access.
Pidgin - a multi-network/protocol chat application
The first alpha releases of Pidgin 3.0 were made, 2.95.0 and 2.96.0. A new fully bindable AccountSettings API was added, the account editor was revamped and avatar support was added.
Polari - GNOMEβs client
Thumbnails now look better on HiDPI displays.
RudeChat - Python client designed to be fast, portable, and fun
Nickname colouring was improved.

geoIRC screenshot

MERK screenshot on macOS
Terminal clients
clown - a client written in Rust
More basic features were added to this new client such as tab completion, message logs and support for multiple server connections.
senpai - TUI client made for bouncers
An Alt+Delete shortcut was added for deleting the next word from cursor, spell checking is now possible, the /upload command called without arguments now uploads the clipboard content, support was added for draft/chathistory-end tag and Windows binaries are now available.
SMDT - Sega Megadrive/Genesis terminal emulator, telnet and IRC client
Messages can optionally have timestamp prefixes.
Swirc - lightweight ICB and IRC client
A /userhost command was added alongside handling of RPL_USERHOST events and a /log command was added for log file management.
tiny β client written in Rust
A configuration option was added for disabling server autoconnects.
WeeChat - the extensible chat client
The /eval command now has an option -e for evaluating all commands before executing them and the typing indicator text can be customised.
Bouncers
They stay online, so you donβt have to!
KiwiBNC β for one person or 10,000 people (Node.js)
Message retention and cleanup logic were implemented for the SQLite message store.
soju β multi-user bouncer
Support was added for unencrypted HTTP/2 and PROXY protocol PP2_SUBTYPE_SSL_CLIENT_CERT, a soju.im/client-cert IRC extension was added for managing client certificates, draft/unreact, draft/extended-isupport, CHATHISTORY AROUND and draft/ACCOUNTREQUIRED are now supported and a Quassel PostgreSQL importer tool was added.
ZNC - an advanced bouncer
The experience with Goguma mobile client connections was improved, standard hardening response headers are now emitted in the web admin and relevant API endpoints and SSL is now enabled by default when connecting to servers.
Daemons
Ergo - combining the features of an ircd, a services framework, and a bouncer
PostgreSQL and SQLite can be used as history backends, HTTP API endpoints were added for listing channels, viewing or modifying the DEFCON level, for changing account passwords and for running whois, support was added for draft/ACCOUNTREQUIRED, draft/chathistory-end and draft/AUTHTOKEN, the /v1/check_auth API endpoint now supports certificate fingerprint authentication, a configurable notice can now be sent to clients upon connection to help detect open proxies, websocket authentication can make use of cookies and auth-script and ip-check-script can be run over Unix domain socket.
InspIRCd - stable, high-performance and modular
Support was added for IRCv3 features ACCOUNTEXTBAN, no-implicit-names, UTF8ONLY, many improvements were made to extended bans, including the ability to share bans between channels, TLS fingerprints can now be forwarded from HAProxy, support was added for local-only X-lines, the swhois and sacommands modules were rewritten, maximum targets can now be configured per command, an interactive configure script was added and WHO responses now include account tags.
InspIRCd would like your help in testing development releases of v5.0.0.
Ircd-hybrid - a lightweight, high-performance daemon
The LIST command now implements the standard ELIST creation-time filters correctly and many smaller improvements were made.
Solanum - an IRCd for unified networks
Support was added for BATCH, no-implicit-names, channel-context, reply, labeled-response, the documentation for hooks was overhauled, a quarantine module was added and the spamfilter now has a bypass capability.
UnrealIRCd - the most widely deployed IRCd
Settings were added for controlling the use of SETIDENT and SETNAME, the module manager now allows 3rd party modules to specify external libraries and build flags, more security features from the OS and hardware level will be used whenever available, support was added for draft/multiline, the conditional features of configuration were expanded, many new crule functions were added for controlling security groups, match items and spamfilter rules, the connection throttling works better against IPv6 clone attacks and server bans and spamfilters have more statistics.
Bots
This and the next section has been curated with programming language diversity in mind.
Calculon β library for writing bots and a collection of plugins (OCaml)
The codebase was migrated to use the irky library with its Eio backend.
Eggdrop - the oldest bot still in active development (C/Tcl)
The web UI received further development, support was added for extended bans and the bot now handles arbitrary channel modes without freaking out.
gluon_bot - a general purpose bot (Rust)
This bot got its start in 2023 and by now has features like events, games, plugins, quotes, RSS/Atom feeds, time zones and weather.
Limnoria - robust, full-featured, and user/programmer-friendly bot (Python)
Windows support was added or improved for various plugins.
PBot β a pragmatic bot (Perl)
The search in the Unicode character property applet and in the Factoids plugin was improved and a new random-quote applet with local database was added.
Sopel - lightweight, easy-to-use utility bot (Python)
Plugin callables were reworked, allowing greater flexibility for plugin authors.
Libraries, frameworks and utilities
Ibis - a GObject based library (C)
A Client::stopped signal was added and constants were added for standard replies and metadata.
irc by hyperimpose - a client library for Erlang
The development of this Erlang library started in 2024. It supports IRCv3 capabilities and extended-join.
IRC::Client - Extendable Internet Relay Chat client (Raku)
Nickname handling was improved.
irc-framework β for bots and full clients (Node.js)
Support was added for standard-replies, handling of ZNC connections was improved and Unix sockets can now be used instead of a hostname and port combination.
irc-go - libraries to help with IRC development (Go)
Capability negotiation was made more robust.
ircv3-filehost-server - HTTP server for use with servers that lack native support for FILEHOST (Go)
This is a new utility that was started in April this year. It allows server operators to offer file hosting regardless of the IRCv3 daemon they use. The FILEHOST spec has not been ratified and is undergoing some changes.
irky - simple direct-style client (OCaml)
This is a fork of irc-client, now offering optional SSL/TLS support and direct-style IO backends (Unix, Eio).
NetIRC - simple Portable client library targeting .NETStandard 2.0 and .NET Framework 4.6.1 (C#)
The API was fully documented.
redis-irc-bot - minimal IRC bot framework (Bash)
Support was added for account-tag.
superseriousstats - a fast and efficient program to create statistics out of various types of IRC chat logs (PHP)
A colour scheme switcher was added to the CSS styles.
Bridges
Biboumi - XMPP to IRC gateway
An option was added for deleting older messages from the database and the implementation of draft/multiline was polished.
Dis4IRC - a modern Discord <-> IRC bridge
Bridging is now supported for slash commands and components.
irgramd - connect from an IRC client to Telegram as a regular user
File downloading was made more robust.
Reliable Discord-client IRC Daemon (rdircd) - personal discord-client to irc-server translation daemon
An option was added for replacing Unicode emoji with ASCII.
teleirc β bridge to Telegram
An installation script to install as a systemd unit was added.
whatsircd - a messaging bridge between IRC and WhatsApp
This bridge saw the light of day in August 2025. It supports reactions and replies and supports CardDAV for keeping contacts up to date.
Services
Taking care of user accounts and channels among other things.
Anope β highly modular set of services
Hostmasks can be either cleaned up when adding them to an access list or rejected, the output of nickserv/list shows more relevant information, the cs_set_misc and ns_set_misc modules for associating information with a channel or a nickname now support validation of user-specified data, the information defined via ns_set_misc can be shown in WHOIS output of authenticated users on InspIRCd and UnrealIRCd, regex_posix and regex_tre modules are available on Windows and examples were added to several BotServ commands.
Atheme - for large networks with high scalability requirements
Documentation was added for the JSONRPC module and a NEVEROP flag was added for groups to prevent others from adding the group to channel access lists.