Client Capabilities

Revision 0.10

Red denotes a conflicting token definition, gray for deprecated (however quite possibly still in use), yellow for proposed, and blue for OK.

This file is intended to be a useful resource for people implementing IRC software and is not an authoritative source.
It is kept up-to-date and correct on a best-effort basis. Feel free to check out the other files maintained here.

Updates? Corrections? Please submit an issue or a pull request on the Github repo or talk to us at #ircdocs on Freenode. Thank you!

Name Format Comments
account-notify account-notify

Notifies clients when other clients in common channels authenticate with or deauthenticate from their account (e.g. NickServ, SASL).

account-tag account-tag

Attaches a tag containing the user’s account to every message they send.

away-notify away-notify

Notifies clients when other clients in common channels go away or come back (replacing the traditional method of clients polling the server for changes).

batch batch

Lets the server bundle common messages together, which lets clients be more intelligent about displaying and processing them. i.e., netsplits and netjoins, chat history, etc.

cap-notify cap-notify

Notifies clients when client capabilities become availiable or are no longer available. Implicitly enabled with CAP LS 302 or higher.

chghost chghost

Enables the CHGHOST message, which lets servers notify clients when another client’s username and/or hostname changes.

echo-message echo-message

Notifies clients when their PRIVMSG and NOTICEs are correctly received by the server. Will be more useful for general clients when the IRCv3 WG standardises their id tag to let clients track these messages properly.

extended-join extended-join

Extends the JOIN message to include the account name of the joining client. Used in conjunction with the account-* caps to let clients track account information better.

Also see account-notify.

inspircd.org/replay-message inspircd.org/replay-message

Functionally equivalent to echo-message. Use echo-message rather than this capability.

Also see echo-message.

invite-notify invite-notify

Notifies clients when other clients are invited to common channels. The notify messages are generally only sent to privilidged channel members.

metadata metadata

Lets clients store metadata about themselves with the server, for other clients to request and retrieve later.

monitor monitor

Indicates support for the MONITOR command, which lets users request notifications for when clients become online / offline.

multi-prefix multi-prefix

Makes the server send all prefixes in NAMES and WHO output, in order of rank from highest to lowest. Replaces the UHNAMES token for RPL_ISUPPORT.

sasl sasl[=mechanism{,mechanism}]

Examples:

  • sasl
  • sasl=PLAIN
  • sasl=EXTERNAL,FOO,DH-AES,BAR,DH-BLOWFISH,FOOBAR,PLAIN

Indicates support for SASL authentication, a standardised way for clients to identify for an account. Replaces the NICKSERV IDENTIFY command / private message and lets IRC clients build better interfaces for account auth.

server-time server-time

Lets clients show the actual time messages were received by the server. Facilitates things like IRC history playback by bouncers.

tls tls

Indicates support for the STARTTLS command, which lets clients upgrade their connection to use SSL/TLS rather than plaintext.

twitch.tv/commands twitch.tv/commands

Used by Twitch.tv to enable the USERSTATE, GLOBALSTATE, ROOMSTATE, HOSTTARGET, NOTICE, and CLEARCHAT messages, as well as the msg-id tag.

twitch.tv/membership twitch.tv/membership

Used by Twitch.tv to enable the NAMES, JOIN, PART, and MODE channel membership and state messages.

twitch.tv/tags twitch.tv/tags

Used by Twitch.tv to enable custom tags on the PRIVMSG, USERSTATE, NOTICE, and GLOBALUSERSTATE messages.

userhost-in-names userhost-in-names

Extends the RPL_NAMREPLY message to contain the full nickmask (nick!user@host) of every user, rather than just the nickname.

znc.in/self-message znc.in/self-message

Used by ZNC to make sure all connected sessions receive copies of private messages sent by other sessions.

Also see echo-message.