Monday January 25 2016 • posted by james

IRCv3

IRCv3 is a working group of client/server software authors and network operators from the community, set up to advance the IRC protocol.

IRCCloud has been an active participant in the group since early on, and we’ve implemented the protocol enhancements where they’ve made sense.

Today, we gave a big upgrade to our support and we now handle most of the IRCv3.2 specification. You can check our compatibility progress in the client support tables.

We’re excited to be part of the future of IRC, and support for these enhancements represents our commitment to IRC as the best-suited chat protocol for open communities.

Here’s a brief summary of the features we support and what they mean for users:

3.1

CAP is the mechanism used to negotiate all other features. IRCv3 specifications are backwards compatible, and enhancements are only enabled if both server and client support them.

SASL is an authentication protocol, which improves the way e.g. NickServ login is performed, allowing connections to be established more quickly.

multi-prefix allows clients to keep track of more than one level of channel mode, so a user that has both op and voice will appear correctly when de-opped.

account-notify lets a client know when users in channels they share become authenticated or deauthenticated with their account (with NickServ for example). A user’s logged in account can be seen by clicking on their nickname.

away-notify lets a client know when users go away or come back, so that the member list can be greyed out accordingly without having to continually poll the server for this status.

extended-join lets a client know the real name and account name of a user when they join a channel. This information is shown when you click on a user’s nickname.

3.2

account-tag attaches a user’s account to every message they send, which can be helpful when private messaging someone who doesn’t share any channel with you.

batch allows servers to batch certain messages. This isn’t used for anything yet, but as batch types become available on IRC networks we’ll be able to enable it more easily.

cap-notify lets a client know when a server adds or removes support for a new capability. This is used by bouncer software like ZNC to vary the available features when you detach or reattach to a server.

chghost sends a host change message to a client when they cloak or decloak, instead of faking a quit and rejoin.

invite-notify sends a specific command to channel members with appropriate permissions when someone is invited to the channel.

server-time allows a client to show the actual time a message was received by a server, useful when playing back history from an external bouncer. This is available in newer versions of ZNC (1.2+).

userhost-in-names provides full userhost details for members when joining a channel. This makes it easier to apply bans or ignores by clicking on a user’s nick name, without having to /whois them first.

Vendor specific

znc.in/self-message is a CAP used by ZNC that makes sure all connected sessions receive a copy of any private messages sent by any other session.

Server compatibility

Not all of these enhancements are supported by all IRC networks yet. For instance, many of you connecting to Freenode won’t immediately be able to take advantage of away-notify from 3.1 or any of the 3.2 CAPs. But support for these will improve in time.

Take a look at the server compatibility tables, for an idea of how well these features are supported by various IRCd software.

In future, we’re planning to use IRCv3 to enable more enhancements on our team servers, things like user avatars, rich bot payloads and more, and hopefully these will make their way out to the larger public networks to improve the IRC experience for everyone.

Send us an email on team@irccloud.com or join us in #feedback if you’d like to discuss any of these features in more detail.