RPL_ISUPPORT tokens

Revision 0.12

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
AWAYLEN AWAYLEN=[number]

Examples:

  • AWAYLEN=8
  • AWAYLEN=

Indicates the maximum length of an away message. If “number” is not defined, there is no limit.

CALLERID CALLERID[=letter]

Indicates that the "caller-id" user mode is supported, which rejects messages from unauthorized users. "letter" defines the mode character which is used for this feature. If the value is not given, it defaults to the mode "+g".

CASEMAPPING CASEMAPPING=<string>

Examples:

  • CASEMAPPING=rfc1459

Indicates the method that’s used to compare equality of case-insensitive strings (such as nick/channel names). Typical values include "ascii" and "rfc1459". "rfc3454" is a proposed value that refers to the stringprep method described in RFC3454 (typically used for UTF-8 casefolding).

CHANLIMIT CHANLIMIT=prefix:number[,prefix:number[,...]]

Examples:

  • CHANLIMIT=#+:25,&:

Indicates the maximum number of channels a client may join. Though a client shouldn’t assume that other clients are limited to what they receive here. If "number" is empty, there is no limit.

CHANMODES CHANMODES=A,B,C,D

Examples:

  • CHANMODES=b,k,l,imnpst
  • CHANMODES=beI,k,l,BCMNORScimnpstz

Indicates the channel modes available and which types of arguments they do or do not take. See the linked Hardy draft for specifics.

CHANNELLEN CHANNELLEN=number

Examples:

  • CHANNELLEN=50

Specifies the maximum length of a channel name that clients may join. If "number" is not specified, there is no limit.

CHANTYPES CHANTYPES=[string]

Examples:

  • CHANTYPES=&#

Indicates the types of channels supported on this server. These are channel type prefixes as specified in the RFCs and as described by the “Channel Type Prefixes” list on this site.

CHARSET CHARSET=[string]

Examples:

  • CHARSET=ascii

Originally meant to specify the character encoding of messages sent by the server, but removed in a later version of the draft. It is meaningless nowadays and should be ignored. draft-brocklesby-irc-isupport-03 (2004) says “The traditional CHARSET parameter has been entirely removed. It was found to be unworkable; a correct specification could not be devised to represent its meaning across implementations”. draft-hardy-irc-isupport-00 (2005) removed it completely.

CNOTICE CNOTICE

Indicates that the server supports the "CNOTICE" command. This is an extension to the NOTICE command.

CPRIVMSG CPRIVMSG

Indicates that the server supports the "CPRIVMSG" command. This is an extension to the PRIVMSG command.

DEAF DEAF=character

Examples:

  • DEAF=D

Indicates that the server supports the "DEAF" user mode, and the given character is used to represent that mode.

ELIST ELIST=string

Examples:

  • ELIST=CMNTU

Indicates that the server supports search extensions to the LIST command. For specific extension characters, read the linked Hardy draft and various IRC software.

EXCEPTS EXCEPTS[=letter]

Examples:

  • EXCEPTS
  • EXCEPTS=e

Indicates that the server supports “ban exemptions”. The letter is OPTIONAL and defines the mode character which is used for this. When no letter is provided, it defaults to "e".

EXTBAN EXTBAN=<prefix>,<types>

Examples:

  • EXTBAN=~,cqnr
  • EXTBAN=~,qjncrRa
  • EXTBAN=,ABCNOQRSTUcjmprsz

Indicates the types of “extended bans” that the server supports. <prefix> defines the character that indicates an extban to the server and <types> is a list of characters indicating which types of extended bans the server supports. Extended bans may allow clients to issue bans based on account name, SSL certificate fingerprints and other attributes, based on what the server software supports. They may also be used in ban exemption and invite exemption masks, depending on server software.

FNC FNC

“Forced Nick Change”. Indicates that the server may change a user’s nickname without the user sending the server a "NICK" message. Note that servers may do this even if they don’t send this token. Clients MUST be able to handle this correctly regardless of whether this token is presented or not.

INVEX INVEX[=letter]

Examples:

  • INVEX
  • INVEX=I

Indicates that the server supports “invite exemptions”. The letter is OPTIONAL and defines the mode character which is used for this. When no letter is provided, it defaults to "I".

KICKLEN KICKLEN=[number]

Examples:

  • KICKLEN=180
  • KICKLEN=

Indicates the maximum length of a kick message. If "number" is not defined, there is no limit.

KNOCK KNOCK

Indicates support for the "KNOCK" command, which is used to request an invite to a channel.

LINELEN LINELEN=number

Examples:

  • LINELEN=512
  • LINELEN=2048

Indicates the maximum allowed length of a single IRC message (line) in octets. The LINELEN token defaults to 512. There is no upper limit for LINELEN.

MAP MAP

Indicates support for the "MAP" command, which is used to show a representation of how the servers are linked to each other. In practice this is command is supported by most networks, even if they don’t advertise this token. Used by InspIRCd up to 2.0, removed in 3.0.

MAXBANS MAXBANS=number

Indicates the maximum number of bans that may be set on a channel. MAXBANS was obsoleted by MAXLIST, as that token allows servers to specify which limits apply to which channel modes explicitly.

Also see MAXLIST.

MAXCHANNELS MAXCHANNELS=number

Examples:

  • MAXCHANNELS=25

Indicates the maximum number of channels a client may join. Which types of channels this limit does or doesn’t apply to is not made clear by the token. This limit may only apply to standard (#) channels. The CHANLIMIT token was created to explicitly specify the limits that apply to each channel type. CHANLIMIT should be used instead of this token, but this token is still widely-defined by servers.

Also see CHANLIMIT.

MAXLIST MAXLIST=mode:number[,mode:number[,...]]

Examples:

  • MAXLIST=beI:25
  • MAXLIST=b:25,eI:50

Indicates how many “variable” modes of type A that have been defined in the "CHANMODES" token a client may set in total on a channel. The value MUST be specified and is a set of “mode:number” pairs, where “mode” is a number of type A modes that have been defined in "CHANMODES" and “number” is how many of this mode may be set. For more details, read the linked Hardy draft.

Also see CHANMODES.

MAXPARA MAXPARA=number

Examples:

  • MAXPARA=32

Indicates the maximum number of parameters to any command. Used by InspIRCd only, where the default is 32, above the RFC specified limit of 12. Other servers may have different limits without advertising this token.

MAXTARGETS MAXTARGETS=number

Examples:

  • MAXTARGETS=8

Indicates the maximum number of targets for the PRIVMSG / NOTICE commands.

Also see TARGMAX.

METADATA METADATA[=number]

Examples:

  • METADATA=30
  • METADATA

Indicates the maximum number of keys a user may have in their metadata. If "number" is not specified, there is no limit.

MODES MODES=[number]

Examples:

  • MODES=3

Indicates how many “variable” modes may be set on a channel by a single "MODE" command from a client. A “variable” mode is defined as being a type A/B/C mode as defined in the "CHANMODES" token. The value is optional and when not specified indicates that there is NO limit places on “variable” modes.

Also see CHANMODES.

MONITOR MONITOR=[number]

Examples:

  • MONITOR=6
  • MONITOR=

Indicates the maximum number of targets a user may have in their monitor list. If "number" is not specified, there is no limit.

Also see WATCH.

NAMESX NAMESX

Indicates that the "NAMES" reply message may be extended to contain all possible prefixes which apply to a user. The IRCv3 Working Group recommends that the "multi-prefix" client capability is used instead of this token.

NETWORK NETWORK=string

Examples:

  • NETWORK=EFNet
  • NETWORK=Rizon

For INFORMATIONAL PURPOSES ONLY and indicates the name of the IRC network that the client is connected to. A client SHOULD NOT use this value to make assumptions about supported features on the server.

NICKLEN NICKLEN=number

Examples:

  • NICKLEN=9
  • NICKLEN=32

Indicates the maximum length of a nickname that a client may use. Other clients on the network may have nicknames longer than this.

OVERRIDE OVERRIDE

Indicates that IRC operators may override modes and channel security. Used by InspIRCd only.

PREFIX PREFIX=[(modes)prefixes]

Examples:

  • PREFIX=(ov)@+
  • PREFIX=(qaohv)~&@%+

Indicates the channel membership prefixes available on this server and their ‘order’ in terms of channel privlidges they represent, from highest to lowest. If the value is not specified, then NO channel membership prefixes are supported by this server. Various prefixes used in production are contained in the “Channel Membership Prefixes” list.

SAFELIST SAFELIST

Indicates that the client may request a "LIST" command from the server without being disconnected due to the large amount of data. This token MUST NOT have a value.

SECURELIST SECURELIST

Indicates that “secure listing” is enabled, and that your initial request for a channel list on connect may be denied until you have been connected for a certain amount of time. Used by InspIRCd only.

SILENCE SILENCE=number

Examples:

  • SILENCE=15

Indicates the maximum number of entries a user may have in their ‘silence’ list. The value is OPTIONAL and if not specified indicates that there is no limit. The "SILENCE" command seems to vary quite a lot between implementations. Most clients include client-side filter/ignore commands, and servers have the "CALLERID" client mode as alternatives to this command.

SSL SSL=ip:port[;ip:port[;...]]

Examples:

  • SSL=1.2.3.4:6668;4.3.2.1:6669;*:6660;

Indicates the ports and IP addresses SSL may be found on. Each ip and port pair are separated by a colon (:) character and multiple port/ip pairs are separated by semicolons (;). Used by InspIRCd up to 2.0, removed in 3.0.

STARTTLS STARTTLS

Indicates that the server supports upgrading plaintext connections to encrypted ones through STARTTLS. This token must not be used to detect STARTTLS support, since that means leaking the initial connection registration process. The ircv3.1 "tls" extension should be used instead. Removed in InspIRCd 3.0.

STATUSMSG STATUSMSG=string

Examples:

  • STATUSMSG=@+

Indicates that the server supports a method for the client to send a message via the "NOTICE" command to those people on a channel with the specified channel membership prefixes. The value MUST be specified and MUST be a list of prefixes as specified in the "PREFIX" token.

Also see PREFIX.

STD STD=string

Examples:

  • STD=i-d

Attempts to indicate the ‘standard’ to which the ISUPPORT implementation is written. Whether this means tokens, or simply syntax is not specified. This doesn’t seem to be that useful, given the age of all these specifications and how it is not officially specified nor used all that much.

TARGMAX TARGMAX=[cmd:number,cmd:number,...]

Examples:

  • TARGMAX=PRIVMSG:3,WHOIS:1,JOIN:

Certain commands from a client MAY contain multiple targets. This token defines the maximum number of targets may be specified on each of these commands. The value is OPTIONAL and is a set of “cmd:number” pairs, where “cmd” refers to the specific command, and “number” refers to the limit for this command. If the number is not specified for a particular command, then that command does not have a limit on the maximum number of targets.

Also see MAXTARGETS.

TOPICLEN TOPICLEN=number

Examples:

  • TOPICLEN=120

Indicates the maximum length of a topic that a client may set on a channel. Channels on the network MAY have topics with longer lengths than this.

UHNAMES UHNAMES

Indicates that the "NAMES" reply message may be extended to contain the full hostmask of every user listed. Must NOT have a value. The IRCv3 Working Group recommends that the "userhost-in-names" client capability is used instead of this token.

USERIP USERIP

Indicates support for the "USERIP" command, which is used to request the direct IP address of the user with the specified nickname. This might be supported by networks that don’t advertise this token.

USERLEN USERLEN=[number]

Examples:

  • USERLEN=12
  • USERLEN=

Indicates the maximum length of an username in octets. If "number" is not specified, there is no limit.

VBANLIST VBANLIST

Indicates that banlist sizes may vary from channel to channel. Used by InspIRCd only, always present.

WALLCHOPS WALLCHOPS

Indicates that the server supports messaging channel operators, either through a command like "WALLCHOPS #channel" or a "STATUSMSG"-like notice like "NOTICE @#channel", with most implementations only handling the latter. This command has been obsoleted by the "STATUSMSG" token, and the "STATUSMSG" token seems to be more widely used.

Also see STATUSMSG.

WALLVOICES WALLVOICES

Indicates that the server supports messaging channel voiced users, either through a command like "WALLVOICES #channel" or a "STATUSMSG"-like notice like "NOTICE +#channel", with most implementations only handling the latter. This command has been obsoleted by the "STATUSMSG" token, and the "STATUSMSG" token seems to be more widely used. Unlike "WALLCHOPS", this wasn’t included in any of the original drafts, and it’s much less common.

Also see STATUSMSG.

WATCH WATCH=number

Examples:

  • WATCH=100

Indicates the maximum number of nicknames a user may have in their watch list. The "MONITOR" command is aimed at being a more consistent alternative to this command, and documentation for it may be found on the IRCv3 website.

Also see MONITOR.