This page lists the tags, capabilities, commands, batches and metadata keys that have been defined by the IRCv3 Working Group, are described by our specifications, or that we otherwise recommend using. Draft-status names are listed without the draft/
, as this primarily catalogues reserved names.
Numeric | Name | Specs | Description |
---|---|---|---|
005
|
RPL_ISUPPORT | Lists features supported by the server; sent as connection registration is completed. (1) (2) (3) | |
335
|
RPL_WHOISBOT | Bot Mode |
Indicates that the client being WHOIS ‘d is a bot
|
354
|
RPL_WHOSPCRPL | WHOX | Not defined by IRCv3 but extended to allow servers to send more information. |
670
|
RPL_STARTTLS | starttls [deprecated] | Indicates that the client may begin their TLS handshake |
691
|
ERR_STARTTLS | starttls [deprecated] |
Indicates that STARTTLS failed because of an unspecified error
|
730
|
RPL_MONONLINE | Monitor | Indicates to a client that either a target has just become online, or that a target they have added to their monitor list is online |
731
|
RPL_MONOFFLINE | Monitor | Indicates to a client that either a target has just left the irc network, or that a target they have added to their monitor list is offline |
732
|
RPL_MONLIST | Monitor | Returns the list of targets that the client has in their monitor list |
733
|
RPL_ENDOFMONLIST | Monitor | Indicates the end of a monitor list |
734
|
ERR_MONLISTFULL | Monitor | Indicates to a client that their monitor list is full |
760
|
RPL_WHOISKEYVALUE | Metadata [draft] |
Provides user metadata within a WHOIS response
|
761
|
RPL_KEYVALUE | Metadata [draft] |
Provides user metadata as a response to a METADATA command, or to notify a user’s metadata changed
|
766
|
RPL_KEYNOTSET | Metadata [draft] |
Indicates lack of te requested kind of user metadata as a response to a METADATA command, or a notification it was deleted
|
770
|
RPL_METADATASUBOK | Metadata [draft] |
Indicates success of the METADATA SUB command
|
771
|
RPL_METADATAUNSUBOK | Metadata [draft] |
Indicates success of the METADATA UNSUB command
|
772
|
RPL_METADATASUBS | Metadata [draft] |
Lists metadata keys a client is currently subscribed to, as a response to METADATA SUBS
|
774
|
RPL_METADATASYNCLATER | Metadata [draft] |
Indicates that metadata cannot currently be sent, as a reply to a JOIN or METADATA SYNC command. The client should request METADATA SYNC later
|
900
|
RPL_LOGGEDIN | SASL v3.1, SASL v3.2 | Indicates that the client is logged in |
901
|
RPL_LOGGEDOUT | SASL v3.1, SASL v3.2 | Indicates that the client has been logged out |
902
|
ERR_NICKLOCKED | SASL v3.1, SASL v3.2 | Indicates that SASL auth failed because the account is currently locked out, held, or otherwise administratively made unavailable |
903
|
RPL_SASLSUCCESS | SASL v3.1, SASL v3.2 | Indicates that SASL auth finished successfully |
904
|
ERR_SASLFAIL | SASL v3.1, SASL v3.2 | Indicates that SASL auth failed because of invalid credentials or other errors not explicitly mentioned by other numerics |
905
|
ERR_SASLTOOLONG | SASL v3.1, SASL v3.2 |
Indicates that SASL auth failed because the client-sent AUTHENTICATE command was too long (i.e. the parameter was longer than 400 bytes)
|
906
|
ERR_SASLABORTED | SASL v3.1, SASL v3.2 |
Indicates that SASL auth has been aborted because the client sent an AUTHENTICATE command with * as the parameter
|
907
|
ERR_SASLALREADY | SASL v3.1, SASL v3.2 | Indicates that SASL auth failed because the client has already authenticated and the server doesn’t support re-authenticating |
908
|
RPL_SASLMECHS | SASL v3.1, SASL v3.2 |
Sends the SASL mechanisms supported by the server, in response to an incorrectly-sent AUTHENTICATE message
|
Name | Specs | Description |
---|---|---|
account-notify | account-notify | Notifies clients when other clients in common channels authenticate with or deauthenticate from their account (e.g. NickServ, SASL). |
account-registration | account-registration [draft] | Indicates support for the REGISTER/VERIFY commands, a standardised way for clients to register accounts. |
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. |
batch | batch | Lets the server bundle common messages together, which lets clients be more intelligent about displaying them. |
cap-notify | Notifies clients when client capabilities become available or are no longer available. | |
channel-rename | channel-rename [draft] | Enables renaming a channel without closing it down and redirecting to a new one. |
chathistory | chathistory [draft] | Lets clients request chat history from servers or bouncers. |
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. |
event-playback | chathistory [draft] | Lets clients request JOIN/MODE/etc messages as part of history. |
extended-join | extended-join | Extends the JOIN message to include the account name of the joining client. |
extended-monitor | extended-monitor | Extends the MONITOR spec to apply to more events. |
invite-notify | invite-notify | Notifies clients when other clients are invited to common channels. |
labeled-response | Allows clients to correlate requests with server responses | |
message-redaction | message-redaction [draft] | Allows clients to remove messages from chat history. |
message-tags | message-tags | Allows clients and servers to use tags more broadly |
metadata-2 | Metadata [draft] | Lets clients store metadata about themselves with the server, for other clients to request, retrieve, and be notified later later. |
monitor | Monitor | 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. |
multiline | multiline [draft] | Allows clients and servers to use send messages that can exceed the usual byte length limit and that can contain line breaks. |
no-implicit-names | no-implicit-names [draft] | Disables implicit NAMES responses on JOIN. |
pre-away | pre-away [draft] | Allows clients to send AWAY commands during connection registration. |
read-marker | read-marker [draft] | Allows clients of the same user to synchronize read markers. |
sasl | SASL v3.1, SASL v3.2 | Indicates support for SASL auth, a standardised way for clients to identify for an account. |
server-time | server-time | Lets clients show the actual time messages were received by the server. |
setname | setname | Lets clients change their realname after connecting to the server. |
standard-replies | standard-replies | Allows servers to use standard replies more broadly |
tls | starttls [deprecated] | Indicates support for the STARTTLS command, which lets clients upgrade their connection to use TLS encryption. |
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.
|
Name | Specs | Description |
---|---|---|
account | account-tag | Contains the account name of the user that sent the attached message to the client. |
batch | batch | Contains the ID of the batch the attached message is a part of. |
bot | Bot Mode | Indicates this message was sent by a bot. |
label | Allows clients to correlate requests with server responses | |
msgid | msgid | Provides a server supplied unique message ID |
multiline-concat | multiline [draft] | Indicates that a message is to be concatenated directly (without a line break) with the previous message in a multiline message batch. |
time | server-time | Contains the time that the given message should be treated as happening at. |
+react | +react [draft] | Sends a reaction to a specific sent message. |
+reply | +reply [draft] | Marks that a given message is intended as a reply to a specific sent message. |
+typing | +typing | Allows users to see when other users are typing. |
+channel-context | +channel-context [draft] | Indicates the channel a private message should be displayed in. |
Name | Specs | Description |
---|---|---|
chathistory | Indicates that the given messages represent history playback from this channel. | |
labeled-response | Allows clients to correlate requests with server responses | |
multiline | multiline [draft] | Indicates that the given messages are part of a multiline message. |
netjoin | Indicates that the given clients are joining as the result of a netjoin (two split servers reconnecting). | |
netsplit | Indicates that the given clients are quitting as the result of a netsplit (two servers disconnecting). |
Name | Specs | Description |
---|---|---|
AUTHENTICATE | SASL v3.1, SASL v3.2 | Used to login to a client account when SASL authentication is negotiated. |
ACCOUNT | account-notify | Notifies clients of new logins by friends. |
AWAY | pre-away [draft] |
Not defined by IRCv3 but extended to work before connection registration, and take a special * parameter
|
CAP | Lets clients negotiate client capabilities with servers. | |
CHATHISTORY | chathistory [draft] | Lets clients request chat history from servers or bouncers. |
CHGHOST | chghost | Notifies clients of changed usernames and hostnames of friends |
INVITE | invite-notify | Not defined by IRCv3 but extended to alert other clients that someone’s been invited to one of their channels. |
JOIN | extended-join | Not defined by IRCv3 but extended to include usernames and hostnames. |
METADATA | Metadata [draft] | Lets clients store metadata about themselves with the server, for other clients to request and retrieve later. |
MONITOR | Monitor | Existing command which allows clients to see when specific nicknames enter or leave the network. |
NAMES | userhost-in-names | Not defined by IRCv3 but extended to include account names. |
MARKREAD | read-marker [draft] | Fetches or stores a read marker. |
REDACT | message-redaction [draft] | Removes a message from the chat history. |
REGISTER | account-registration [draft] | Lets clients register user accounts. |
RENAME | channel-rename [draft] | Enables renaming a channel without closing it down and redirecting to a new one. |
STARTTLS | starttls [deprecated] | Allows clients to upgrade their plaintext connections to use TLS encryption. |
TAGMSG | message-tags | Lets clients send messages with tags but no text content. |
VERIFY | account-registration [draft] | Lets clients verify their newly-registered accounts. |
WEBIRC | WebIRC | Existing command which provides the real IP address of clients to the server when connecting through a gateway. |
WHO | WHOX | Not defined by IRCv3 but extended to allow clients to request more information. |
Name | Specs | Description |
---|---|---|
ACCOUNTEXTBAN | account-extban [draft] | Indicates the extended ban prefix(es) name(s) to refer to user accounts in ban/exception/invite lists. |
BOT | Bot Mode | Indicates that clients can mark themselves as bots by setting a mode on themselves. |
CLIENTTAGDENY | message-tags | Indicates client-only tags that are blocked or allowed by a server. |
MONITOR | Monitor | Indicates the server supports the MONITOR command. |
MSGREFTYPES | chathistory [draft] | |
UTF8ONLY | UTF8ONLY | Indicates the server only accepts UTF-8 encoded messages. |
WHOX | WHOX | Indicates the server supports the extended WHO syntax |
Key | Format | Description |
---|---|---|
avatar
|
URL with an optional {size} substitution denoting the size to load in pixels
https://example.com/avatar/16/asdf.jpg
|
Avatar that graphical clients can show alongside the channel’s name |
display-name
|
Any string
IRCv3 HQ
|
Alternative name to use instead of a channel for display purposes. Useful for gateways to chat services that allow spaces and other characters in nicks. A channel name is required for standard protocol level stuff but can be less prominent in the UI. May contain emoji. |
Key | Format | Description |
---|---|---|
avatar
|
URL with an optional {size} substitution denoting the size to load in pixels
https://example.com/avatar/16/asdf.jpg
|
Avatar that graphical clients can show alongside the user’s name |
bot
|
Any string
PacketBot v1.2
|
Lets bot runners provide the name of their bot software. Setting this key identifies the client as a bot. |
color
|
HTML-style 6 hexadecimal digits
#800040
|
A color to associate with a user. Client designers may decide which UI elements use this color (for example avatar placeholders, nicknames or whole messages). |
display-name
|
Any string
James Wheare
|
Alternative name to use instead of a nick for display purposes. Useful for gateways to chat services that allow spaces and other characters in nicks. A nick is required for standard protocol level stuff but can be less prominent in the UI. May contain emoji. |
homepage
|
Valid URL
https://example.com/bot-info.html
|
URL of a webpage that contains more information about the user/bot themselves, or bot software in use. |
status
|
Any string
Working from home
|
Status text that can be shown for users without making them ‘away’ |
Command | Code | Specs | Description |
---|---|---|---|
|
ACCOUNT_REQUIRED
|
account-registration [draft] | Indicates that the client’s connection cannot proceed for lack of SASL authentication |
|
INVALID_UTF8
|
UTF8ONLY | Indicates that the client’s message was dropped because it contained non-UTF-8 bytes |
BATCH
|
MULTILINE_MAX_BYTES
|
multiline [draft] |
Indicates that the max-bytes multiline limit is exceeded
|
BATCH
|
MULTILINE_MAX_LINES
|
multiline [draft] |
Indicates that the max-lines multiline limit is exceeded
|
BATCH
|
MULTILINE_INVALID_TARGET
|
multiline [draft] | Indicates a mismatched PRIVMSG target within a multiline batch |
BATCH
|
MULTILINE_INVALID
|
multiline [draft] | Any other multiline error |
CHATHISTORY
|
INVALID_PARAMS
|
chathistory [draft] |
Indicates that the client sent invalid parameters with their CHATHISTORY command
|
CHATHISTORY
|
INVALID_TARGET
|
chathistory [draft] |
Indicates that the client attempted to request CHATHISTORY from a channel or conversation that does not exist, or that they are not authorized to view
|
CHATHISTORY
|
MESSAGE_ERROR
|
chathistory [draft] |
Indicates that CHATHISTORY content could not be retrieved due to a server error
|
CHATHISTORY
|
NEED_MORE_PARAMS
|
chathistory [draft] |
Indicates that the client sent insufficient parameters with their CHATHISTORY command
|
CHATHISTORY
|
UNKNOWN_COMMAND
|
chathistory [draft] |
Indicates that the client sent an invalid subcommand of CHATHISTORY
|
JOIN
|
CHANNEL_RENAMED
|
channel-rename [draft] | Indicates a joined channel has been renamed |
NICK
|
NICKNAME_RESERVED
|
Indicates that the desired nickname cannot be claimed because it is reserved, either by another account or by the system | |
REDACT
|
INVALID_TARGET
|
message-redaction [draft] | The client tried to remove messages from a channel they do not have access to, or does not exist |
METADATA
|
INVALID_TARGET
|
Metadata [draft] | The client requested metadata about a non-existent user |
METADATA
|
KEY_INVALID
|
Metadata [draft] | The client tried to get or set an invalid kind of metadata |
METADATA
|
KEY_NO_PERMISSION
|
Metadata [draft] | The client tried to get or set a kind of metadata it is not allowed to |
METADATA
|
KEY_NOT_SET
|
Metadata [draft] | The client tried to remove a metadata key that already does not exist |
METADATA
|
LIMIT_REACHED
|
Metadata [draft] | The client tried to set too many metadata items in a time period |
METADATA
|
RATE_LIMITED
|
Metadata [draft] | The client tried to set too many metadata items in a time period, and should retry in the given number of seconds |
METADATA
|
SUBCOMMAND_INVALID
|
Metadata [draft] |
The client sent a METADATA command that was not understood
|
METADATA
|
TOO_MANY_SUBS
|
Metadata [draft] | The client tried to subscribe to updates to too many kinds of metadata |
METADATA
|
VALUE_INVALID
|
Metadata [draft] | The client tried to set a metadata item to an invalid value |
REDACT
|
REDACT_FORBIDDEN
|
message-redaction [draft] | The client tried to remove messages from a channel they are not authorised to remove messages from |
REDACT
|
REDACT_WINDOW_EXPIRED
|
message-redaction [draft] | The client tried to remove a message that cannot be removed anymore |
REDACT
|
UNKNOWN_MSGID
|
message-redaction [draft] | The client tried to remove a message that does not exist, or is not available anymore |
REGISTER
|
ACCOUNT_EXISTS
|
account-registration [draft] | Indicates that the desired account name (the user’s nick) has already been registered. |
REGISTER
|
ACCOUNT_NAME_MUST_BE_NICK
|
account-registration [draft] | Indicates that the desired account name does not match the user’s current nick, when it must match. |
REGISTER
|
ALREADY_AUTHENTICATED
|
account-registration [draft] | Indicates that the client is already authenticated. |
REGISTER
|
BAD_ACCOUNT_NAME
|
account-registration [draft] | Indicates that the desired account name is invalid or otherwise restricted/disallowed. |
REGISTER
|
COMPLETE_CONNECTION_REQUIRED
|
account-registration [draft] | Indicates that the client can only use REGISTER once they are fully connected. |
REGISTER
|
INVALID_EMAIL
|
account-registration [draft] | Indicates that the server cannot send emails to the given email address. |
REGISTER
|
NEED_NICK
|
account-registration [draft] |
Indicates that the REGISTER command has been sent before sending a NICK command when using the before-connect key.
|
REGISTER
|
TEMPORARILY_UNAVAILABLE
|
account-registration [draft] | Indicates that the REGISTER command is temporarily unavailable. |
REGISTER
|
UNACCEPTABLE_EMAIL
|
account-registration [draft] | Indicates that the email address cannot be used for account registration. |
REGISTER
|
UNACCEPTABLE_PASSWORD
|
account-registration [draft] | Indicates that the desired password is invalid for any reason other than weakness. |
REGISTER
|
WEAK_PASSWORD
|
account-registration [draft] | Indicates that the desired password is too weak. |
RENAME
|
CHANNEL_NAME_IN_USE
|
channel-rename [draft] | Indicates that a channel name is already taken |
RENAME
|
CANNOT_RENAME
|
channel-rename [draft] | Indicates any other channel renaming failure |
SETNAME
|
CANNOT_CHANGE_REALNAME
|
setname | Indicates that the realname could not be otherwise changed |
SETNAME
|
INVALID_REALNAME
|
setname | Indicates that the new realname was invalid |
VERIFY
|
ALREADY_AUTHENTICATED
|
account-registration [draft] | Indicates that the client is already authenticated. |
VERIFY
|
INVALID_CODE
|
account-registration [draft] | Indicates that the code used by the VERIFY command is invalid or expired. |
VERIFY
|
COMPLETE_CONNECTION_REQUIRED
|
account-registration [draft] | Indicates that the client can only use VERIFY once they are fully connected. |
VERIFY
|
TEMPORARILY_UNAVAILABLE
|
account-registration [draft] | Indicates that the VERIFY command is temporarily unavailable. |
Command | Code | Specs | Description |
---|---|---|---|
|
INVALID_UTF8
|
UTF8ONLY | Indicates that the client’s message was modified because it contained non-UTF-8 bytes |