IRC protocol reference

This is the complete list of commands, modes, capabilities and replies defined by IRC and IRCv3, plus the widely used extensions. It is the language every client and server speaks, so use it to read raw server messages, write scripts and bots, or understand what a network is telling you.

About this section. This section describes the protocol: the lines that clients and servers send to each other. Many commands are restricted to network operators or to servers, and individual networks add their own extensions. What Textce lets you type, and what a given network accepts, may be a subset. Use the slash commands in the "Command reference" section for everyday chatting.

How to read the tables: <angle brackets> are required values, [square brackets] are optional, {,more} means the value can repeat separated by commas, and a leading : means the rest of the line is free text.

Connection registration and keep-alive

CommandSyntaxWhat it doesDefined in
PASSPASS <password>Sets a connection password. Must be sent before NICK and USER.RFC 1459
NICKNICK <nickname>Sets or changes your nickname.RFC 1459
USERUSER <username> 0 * :<realname>Supplies your username and real name when registering.RFC 1459 / 2812
CAPCAP <subcommand> [:<capabilities>]Negotiates IRCv3 capabilities. See the CAP table below.IRCv3
AUTHENTICATEAUTHENTICATE <mechanism | data | + | *>Runs SASL sign-in during connection.IRCv3 (SASL)
OPEROPER <name> <password>Gains network operator status.RFC 1459
QUITQUIT [:<message>]Disconnects, with an optional message shown to others.RFC 1459
PINGPING <token>Checks that the other side is alive. Must be answered with PONG.RFC 1459
PONGPONG <token>Reply to PING, carrying the same token.RFC 1459
ERRORERROR :<message>Sent by a server just before it closes your connection.RFC 1459
WEBIRCWEBIRC <password> <gateway> <hostname> <ip>Lets a trusted web gateway pass on a user's real address.Extension
STARTTLSSTARTTLSUpgrades a plain connection to TLS. Deprecated in favor of connecting to a TLS port.IRCv3 (withdrawn)
SQUITSQUIT <server> :<comment>Disconnects a server from the network. Operators only.RFC 1459

Channel commands

CommandSyntaxWhat it doesDefined in
JOINJOIN <channel>{,<channel>} [<key>{,<key>}]Joins one or more channels. JOIN 0 leaves every channel.RFC 1459
PARTPART <channel>{,<channel>} [:<message>]Leaves channels.RFC 1459
TOPICTOPIC <channel> [:<topic>]Reads the topic, or sets it when you are allowed to.RFC 1459
NAMESNAMES [<channel>{,<channel>}]Lists the members of channels.RFC 1459
LISTLIST [<channels>] [<ELIST conditions>]Lists channels, optionally filtered by user count, age, name mask or topic.RFC 1459 / ELIST
INVITEINVITE <nickname> <channel>Invites someone to a channel.RFC 1459
KICKKICK <channel> <user>{,<user>} [:<comment>]Removes people from a channel.RFC 1459
MODEMODE <target> [<modestring> [<arguments>]]Reads or changes the modes of a channel or a user.RFC 1459
KNOCKKNOCK <channel> [:<message>]Asks the ops of an invite-only channel to let you in.Extension
RENAMERENAME <old> <new> [:<reason>]Renames a channel, keeping its members and state.IRCv3 (draft)
CHATHISTORYCHATHISTORY <subcommand> <target> ...Requests stored message history. See the IRCv3 table below.IRCv3 (draft)

Messaging

CommandSyntaxWhat it doesDefined in
PRIVMSGPRIVMSG <target>{,<target>} :<text>Sends a message to a user or channel. Targets can be prefixed with a status symbol, such as @#room, to reach only those members.RFC 1459
NOTICENOTICE <target>{,<target>} :<text>Like PRIVMSG, but automatic replies must never be sent in answer to it.RFC 1459
TAGMSG@<tags> TAGMSG <target>Sends tags without any text, used for typing indicators and reactions.IRCv3 (message-tags)
SQUERYSQUERY <service> :<text>Sends a message to a network service.RFC 2812
CPRIVMSGCPRIVMSG <nick> <channel> :<text>Sends a private message to someone who shares a channel with you, bypassing flood limits.Extension
CNOTICECNOTICE <nick> <channel> :<text>The notice version of CPRIVMSG.Extension
SILENCESILENCE [+|-<mask>]Server-side ignore list for private messages.Extension
ACCEPTACCEPT [+|-]<nick>{,...}Allows specific people to message you while caller-ID (+g) is on.Extension
RELAYMSGRELAYMSG <channel> <nick> :<text>Lets a bridge relay a message from a remote user, with a clearly marked name.IRCv3 (draft)

Information and queries

CommandSyntaxWhat it doesDefined in
WHOWHO [<mask> [o]] / WHO <mask> %<fields>[,<token>]Lists users matching a mask. The %fields form is WHOX, which can also return account names.RFC 1459 / WHOX
WHOISWHOIS [<server>] <nick>{,<nick>}Shows details about a user.RFC 1459
WHOWASWHOWAS <nick>{,<nick>} [<count> [<server>]]Shows details about someone who recently left.RFC 1459
USERHOSTUSERHOST <nick>{ <nick>}Quickly returns the user and host of up to five nicknames.RFC 1459
ISONISON <nick>{ <nick>}Checks which of the listed nicknames are online.RFC 1459
MOTDMOTD [<server>]Shows the server's message of the day.RFC 1459
LUSERSLUSERS [<mask> [<server>]]Shows how many users, channels and servers the network has.RFC 2812
VERSIONVERSION [<server>]Shows a server's software version.RFC 1459
STATSSTATS [<query> [<server>]]Shows server statistics. Many queries are for operators only.RFC 1459
LINKSLINKS [[<remote>] <mask>]Lists the servers on the network.RFC 1459
MAPMAPDraws a tree of the servers on the network.Extension
TIMETIME [<server>]Shows a server's local time.RFC 1459
ADMINADMIN [<server>]Shows the server administrator's contact details.RFC 1459
INFOINFO [<server>]Shows information about the server software.RFC 1459
HELPHELP [<subject>]Shows the server's built-in help (also called HELPOP).Extension
TRACETRACE [<target>]Traces the route to a server or user.RFC 1459
SERVLISTSERVLIST [<mask> [<type>]]Lists network services.RFC 2812
USERIPUSERIP <nick>Returns a user's IP address. Operators only on most networks.Extension

Presence and status

CommandSyntaxWhat it doesDefined in
AWAYAWAY [:<message>]Marks you away. AWAY with no message marks you back.RFC 1459
SETNAMESETNAME :<realname>Changes your real name without reconnecting.IRCv3
MONITORMONITOR + <nick>{,<nick>} | - <nick>{,...} | C | L | SAdds or removes nicknames from a watch list, clears it, lists it, or asks for the current status.IRCv3
WATCHWATCH [+<nick> | -<nick> | L | S | C]The older, non-standard predecessor of MONITOR.Extension
MARKREADMARKREAD <target> [timestamp=<time>]Reads or sets your read position, so unread counts sync across devices.IRCv3 (draft)
REDACTREDACT <target> <msgid> [:<reason>]Deletes a message you sent, or one you have permission to remove.IRCv3 (draft)

Operator and server administration

These commands exist on most servers but only work for network operators. They are listed here so you can recognize them in server notices.

CommandSyntaxWhat it doesDefined in
KILLKILL <nick> :<reason>Forcibly disconnects a user from the network.RFC 1459
REHASHREHASHReloads the server's configuration.RFC 1459
RESTARTRESTARTRestarts the server.RFC 1459
DIEDIEShuts the server down.RFC 1459
CONNECTCONNECT <target> [<port> [<remote>]]Links a server to the network.RFC 1459
WALLOPSWALLOPS :<text>Sends a message to every operator and user with the +w mode.RFC 2812
OPERWALL / GLOBOPS / LOCOPSOPERWALL :<text>Messages every operator, globally or on one server.Extension
KLINE / GLINE / DLINE / ZLINEKLINE <duration> <mask> :<reason>Bans a user mask from a server or the whole network.Extension
SAJOIN / SAPART / SANICK / SAMODE / SAKICKSAJOIN <nick> <channel>Forces a user to do something. Operators only.Extension
CHGHOSTCHGHOST <nick> <newhost>Changes a user's displayed host. The server message of the same name is sent to clients.Extension / IRCv3
SUMMON / USERSSUMMON <user>Obsolete commands from the original protocol, now disabled almost everywhere.RFC 1459
SERVICESERVICE <nick> <reserved> <distribution> <type> <reserved> <info>Registers a service connection. Rarely used.RFC 2812

IRCv3 reference

IRCv3 adds capabilities, message tags, batches and standard replies on top of classic IRC. Support depends on the network; check which capabilities yours offers with CAP LS.

CAP subcommands

SubcommandSyntaxWhat it does
CAP LSCAP LS [302]Asks the server which capabilities it offers. Adding 302 asks for the newer format, which also reports values.
CAP LISTCAP LISTShows the capabilities you currently have enabled.
CAP REQCAP REQ :<cap> <cap>Asks to enable (or, with a leading -, disable) capabilities.
CAP ACKserver → clientThe server accepted your request.
CAP NAKserver → clientThe server refused your request.
CAP ENDCAP ENDEnds negotiation so connection registration can finish.
CAP NEWserver → clientA new capability became available (needs cap-notify).
CAP DELserver → clientA capability is no longer available (needs cap-notify).

CHATHISTORY subcommands

SubcommandSyntaxWhat it returns
LATESTCHATHISTORY LATEST <target> <* | msgref> <limit>The most recent messages, or those after a reference point.
BEFORECHATHISTORY BEFORE <target> <msgref> <limit>Messages before a message ID or timestamp. Used to scroll back.
AFTERCHATHISTORY AFTER <target> <msgref> <limit>Messages after a reference point. Used to catch up.
AROUNDCHATHISTORY AROUND <target> <msgref> <limit>Messages on both sides of a reference point.
BETWEENCHATHISTORY BETWEEN <target> <msgref1> <msgref2> <limit>Messages between two reference points.
TARGETSCHATHISTORY TARGETS <timestamp1> <timestamp2> <limit>The conversations that have activity in a time range.

A msgref is either msgid=<id> or timestamp=<iso-8601>. Results arrive inside a chathistory batch.

Other IRCv3 commands and messages

NameSyntaxWhat it does
AUTHENTICATEAUTHENTICATE <mechanism>Starts SASL. The server answers with + and the client sends base64 data in chunks of up to 400 bytes. AUTHENTICATE * aborts.
BATCHBATCH +<ref> <type> [<params>] ... BATCH -<ref>Marks the start and end of a group of related lines. Lines inside carry a batch=<ref> tag.
TAGMSG@+typing=active TAGMSG #roomCarries only tags, such as typing indicators and reactions.
SETNAMESETNAME :<realname>Changes your real name. Others with the setname capability see the change.
MONITORMONITOR + <targets>Online notifications for friends. Replies use numerics 730 to 734.
REGISTER / VERIFYREGISTER <account> <email|*> <password>Creates a services account from inside the connection, and confirms it with VERIFY <account> <code>.
FAIL / WARN / NOTEFAIL <command> <code> [<context>] :<description>Standard replies. A machine-readable error, warning or information message that replaces many ad-hoc numerics.
ACCOUNTserver → clientAnnounces that a user signed in or out of a services account (needs account-notify).
CHGHOSTserver → clientAnnounces that a user's displayed host changed (needs chghost).
AWAYserver → clientAnnounces that a user marked themselves away or back (needs away-notify).
INVITEserver → clientTells ops that someone was invited to their channel (needs invite-notify).
METADATAMETADATA <target> SET|GET|LIST|SUB|UNSUB|SYNC|CLEAR ...Stores key and value data, such as an avatar address, on a user or channel.

IRCv3 capabilities

CapabilityStatusWhat it does
multi-prefixRatifiedShows every status symbol a member has, such as @+nick.
userhost-in-namesRatifiedIncludes full addresses in channel member lists.
away-notifyRatifiedPushes away and back changes to you.
account-notifyRatifiedTells you when people sign in or out of services accounts.
account-tagRatifiedAdds the sender's account name to every message.
extended-joinRatifiedJOIN carries the account name and real name.
chghostRatifiedUpdates a changed host without a fake quit and join.
cap-notifyRatifiedTells you when capabilities appear or disappear.
invite-notifyRatifiedTells ops about invitations.
server-timeRatifiedAdds the time the server received each message.
message-tagsRatifiedLets messages carry tags; the base for many other features.
batchRatifiedGroups related lines together.
labeled-responseRatifiedLets a client match each reply to the command that caused it.
echo-messageRatifiedThe server echoes your own messages back to you.
saslRatifiedSign-in during connection (versions 3.1 and 3.2).
setnameRatifiedAllows changing the real name.
monitorRatifiedOnline and offline notifications for a list of nicknames.
standard-repliesRatifiedEnables FAIL, WARN and NOTE messages.
stsRatifiedStrict Transport Security: tells clients to use a protected connection in the future.
botRatifiedMarks accounts as bots, with a bot tag and the +B mode.
utf8onlyRatifiedThe server only accepts valid UTF-8.
extended-monitorRatifiedOnline notifications also carry away, account and host changes.
draft/chathistoryDraftLets a client request past messages from the server.
draft/event-playbackDraftHistory replays joins, parts and mode changes too.
draft/read-markerDraftSyncs read positions across devices with MARKREAD.
draft/message-redactionDraftAllows deleting messages with REDACT.
draft/multilineDraftSends several lines as one message.
draft/channel-renameDraftEnables the RENAME command.
draft/account-registrationDraftEnables REGISTER and VERIFY.
draft/metadata-2DraftEnables key and value metadata.
draft/pre-awayDraftLets a client mark itself away before registration finishes.
draft/no-implicit-namesDraftSkips the automatic member list after joining.
draft/extended-isupportDraftLets servers send ISUPPORT before registration.
draft/relaymsgDraftEnables RELAYMSG for bridges.

Status reflects the state of each specification when this page was written. The current list is at ircv3.net.

Message tags

TagWhat it carries
timeThe time the server received the message, in ISO 8601.
msgidA unique ID for the message, used to reply, react, redact and look up history.
accountThe sender's services account name.
labelA client-chosen label echoed in the reply to a command.
batchThe batch the line belongs to.
botPresent when the message was sent by a bot.
+draft/replyThe msgid of the message this one replies to. Used for threads and replies.
+draft/reactA reaction, such as an emoji, sent with TAGMSG.
+draft/unreactRemoves a reaction.
+typingTyping status: active, paused or done.
+draft/channel-contextThe channel a private message relates to.

Tags whose name starts with + are client-only: one client sends them and the server just relays them.

Batch types

TypeUsed for
netsplitGrouping the quits that happen when part of a network disconnects.
netjoinGrouping the joins that happen when a split heals.
chathistoryWrapping a history reply.
labeled-responseWrapping a reply that has several lines.
draft/multilineSending a message that spans several lines.

SASL mechanisms

MechanismHow it signs you in
PLAINSends your account name and password. Use only over a protected connection.
EXTERNALSigns in with a TLS client certificate, with no password.
SCRAM-SHA-256A challenge and response that never sends the password itself. Also available as SCRAM-SHA-1 and SCRAM-SHA-512.
OAUTHBEARERSigns in with an access token.
ECDSA-NIST256P-CHALLENGEA legacy key-based method, mostly replaced by EXTERNAL.

Modes, prefixes and symbols

Channel modes

ModeTypeMeaning
bListBan a mask.
eListBan exception: a mask that is allowed in despite a ban.
IListInvite exception: a mask that may join an invite-only channel.
kKeyPassword to join.
lNumberMaximum number of users.
iFlagInvite only.
mFlagModerated: only ops and voiced members speak.
nFlagNo messages from users outside the channel.
tFlagOnly ops can change the topic.
sFlagSecret: hidden from lists and from WHOIS.
pFlagPrivate: an older, weaker form of secret.
rFlagRegistered (set by services), or registered users only. Meaning varies by network.
cFlagBlock colors and formatting codes. Varies by network.
CFlagBlock CTCP messages to the channel. Varies by network.
NFlagBlock nickname changes while in the channel. Varies by network.
SFlagStrip colors and formatting. Varies by network.
RFlagOnly registered users may join. Varies by network.
MFlagOnly registered users may speak. Varies by network.
QFlagDisallow kicks. Varies by network.
TFlagBlock notices to the channel. Varies by network.
fValueForward users who cannot join to another channel, or flood protection. Varies by network.
jValueThrottle how many users can join in a time period. Varies by network.
PFlagPermanent: the channel stays when empty. Varies by network.
OFlagOnly network operators may join. Varies by network.
zFlagReduced moderation, or TLS users only. Varies by network.

Modes with a value (k, l, f, j) take it as an argument, and list modes (b, e, I) are shown by sending the mode without an argument, as in MODE #room b. The server reports which letters it supports in its ISUPPORT line, under CHANMODES.

Member status modes and prefixes

ModeSymbolMeaning
q~Channel owner (on networks that support it).
a&Channel admin (on networks that support it).
o@Channel operator.
h%Half-operator, with limited powers.
v+Voice.

User modes

ModeMeaning
iInvisible: you are not shown in WHO and NAMES to people who do not share a channel with you.
wReceive WALLOPS messages.
sReceive server notices.
oNetwork operator. You cannot set this yourself.
rRegistered and signed in to a nickname, or restricted. Varies by network.
xCloaked host: your real host is hidden. Varies by network.
ZConnected over TLS. Varies by network.
BMarked as a bot.
DDeaf: do not receive channel messages. Varies by network.
gCaller ID: only people you ACCEPT can send you private messages. Varies by network.
RAccept private messages only from registered users. Varies by network.
TBlock CTCP messages to you. Varies by network.

Channel name prefixes

PrefixMeaning
#A normal network-wide channel.
&A channel local to one server. Rare.
+A channel with no modes (modeless). Rare.
!A "safe" channel with a unique ID. Rare.

ISUPPORT: what the server tells you it supports

After you connect, the server sends one or more 005 lines listing its limits and features. Common tokens:

TokenMeaning
NETWORKThe name of the network.
CASEMAPPINGHow nicknames and channels compare upper and lower case (ascii, rfc1459, rfc3454).
CHANTYPESCharacters that start a channel name, normally #.
PREFIXThe member status modes and their symbols, such as (ov)@+.
CHANMODESThe channel modes the server supports, grouped by type.
CHANLIMITHow many channels you may join, per prefix.
NICKLENMaximum nickname length.
USERLEN / HOSTLENMaximum username and hostname length.
CHANNELLENMaximum channel name length.
TOPICLENMaximum topic length.
KICKLENMaximum kick reason length.
AWAYLENMaximum away message length.
MODESHow many modes can be changed in one MODE command.
MAXLISTMaximum entries in ban, exception and invite lists.
TARGMAXMaximum targets for commands such as PRIVMSG, JOIN and KICK.
STATUSMSGStatus symbols that can prefix a PRIVMSG target, such as @+.
EXCEPTS / INVEXThe mode letters for ban and invite exceptions.
ELISTThe filters supported by LIST (M, N, U, C, T).
SAFELISTLIST is safe to use on a big network without disconnecting you.
WHOXThe server supports extended WHO queries.
MONITORMONITOR is supported, with a maximum list size.
BOTThe mode letter used to mark bots.
UTF8ONLYThe server only accepts UTF-8.
MSGREFTYPESThe message reference types the server accepts for history, such as msgid and timestamp.
CHATHISTORYThe maximum number of history messages per request.
CLIENTTAGDENYClient tags the server will not relay.

CTCP and DCC

The Client-To-Client Protocol wraps special requests inside an ordinary message by surrounding them with the control character 0x01. A reply to a CTCP request is sent as a NOTICE.

CTCPWhat it does
ACTIONThe text of a /me message.
VERSIONAsks which client and version someone is using.
PINGMeasures the round trip time to another client.
TIMEAsks for the other client's local time.
CLIENTINFOLists the CTCP requests the other client understands.
USERINFOAsks for a short description the user set.
FINGERAn old request for user information. Mostly unused.
SOURCEAsks where to download the client.
ERRMSGReturns an error for an unknown request.
DCC CHATOpens a direct chat connection between two clients.
DCC SEND / RESUME / ACCEPTOffers, resumes and accepts a direct file transfer.
Safety. CTCP requests and DCC offers are often abused. Many networks and clients limit or block them, and you should never accept a file transfer from someone you do not know.

Numeric replies

Servers answer with three-digit numbers. 001 to 099 are welcome and connection information, 200 to 399 are normal replies, 400 to 599 are errors, and 600 and up are used by extensions.

Connection and welcome

NumberNameMeaning
001RPL_WELCOMERegistration is complete.
002RPL_YOURHOSTWhich server you are on.
003RPL_CREATEDWhen the server was created.
004RPL_MYINFOServer name, version and supported modes.
005RPL_ISUPPORTThe server's features and limits.
010RPL_BOUNCEPlease connect to another server.
221RPL_UMODEISYour current user modes.
251RPL_LUSERCLIENTHow many users and servers are visible.
252RPL_LUSEROPHow many operators are online.
253RPL_LUSERUNKNOWNHow many unknown connections there are.
254RPL_LUSERCHANNELSHow many channels exist.
255RPL_LUSERMEHow many clients and servers this server has.
265RPL_LOCALUSERSCurrent and maximum local users.
266RPL_GLOBALUSERSCurrent and maximum users network-wide.
372RPL_MOTDA line of the message of the day.
375RPL_MOTDSTARTThe message of the day begins.
376RPL_ENDOFMOTDThe message of the day ends.
381RPL_YOUREOPERYou are now a network operator.
382RPL_REHASHINGThe server is reloading its configuration.

Information replies

NumberNameMeaning
301RPL_AWAYThe person you messaged is away, with their reason.
302RPL_USERHOSTThe reply to USERHOST.
303RPL_ISONThe reply to ISON.
305RPL_UNAWAYYou are no longer marked away.
306RPL_NOWAWAYYou are now marked away.
311RPL_WHOISUSERThe nickname, user, host and real name in a WHOIS reply.
312RPL_WHOISSERVERThe server someone is connected to.
313RPL_WHOISOPERATORThe person is a network operator.
314RPL_WHOWASUSERThe details in a WHOWAS reply.
315RPL_ENDOFWHOThe end of a WHO reply.
317RPL_WHOISIDLEHow long someone has been idle, and when they connected.
318RPL_ENDOFWHOISThe end of a WHOIS reply.
319RPL_WHOISCHANNELSThe channels someone is in.
330RPL_WHOISACCOUNTThe account someone is signed in to.
352RPL_WHOREPLYOne user in a WHO reply.
369RPL_ENDOFWHOWASThe end of a WHOWAS reply.
351RPL_VERSIONThe server's version.
391RPL_TIMEThe server's local time.
364RPL_LINKSOne server in a LINKS reply.
365RPL_ENDOFLINKSThe end of a LINKS reply.
371RPL_INFOA line of server information.
374RPL_ENDOFINFOThe end of server information.

Channel replies

NumberNameMeaning
321RPL_LISTSTARTThe channel list begins.
322RPL_LISTOne channel in the list, with its user count and topic.
323RPL_LISTENDThe channel list ends.
324RPL_CHANNELMODEISA channel's current modes.
329RPL_CREATIONTIMEWhen a channel was created.
331RPL_NOTOPICThe channel has no topic.
332RPL_TOPICThe channel's topic.
333RPL_TOPICWHOTIMEWho set the topic and when.
341RPL_INVITINGYour invitation was sent.
346RPL_INVITELISTOne entry in the invite exception list.
347RPL_ENDOFINVITELISTThe end of the invite exception list.
348RPL_EXCEPTLISTOne entry in the ban exception list.
349RPL_ENDOFEXCEPTLISTThe end of the ban exception list.
353RPL_NAMREPLYA list of channel members.
366RPL_ENDOFNAMESThe end of the member list.
367RPL_BANLISTOne entry in the ban list.
368RPL_ENDOFBANLISTThe end of the ban list.

Error replies

NumberNameMeaning
401ERR_NOSUCHNICKNo such nickname or channel.
402ERR_NOSUCHSERVERNo such server.
403ERR_NOSUCHCHANNELNo such channel.
404ERR_CANNOTSENDTOCHANYou cannot send to the channel (moderated, banned or no external messages).
405ERR_TOOMANYCHANNELSYou have joined too many channels.
406ERR_WASNOSUCHNICKThere was no such nickname.
411ERR_NORECIPIENTNo recipient was given.
412ERR_NOTEXTTOSENDNo text to send.
421ERR_UNKNOWNCOMMANDThe command is unknown.
422ERR_NOMOTDThe server has no message of the day.
431ERR_NONICKNAMEGIVENNo nickname was given.
432ERR_ERRONEUSNICKNAMEThe nickname has characters or a length that is not allowed.
433ERR_NICKNAMEINUSEThe nickname is already in use.
436ERR_NICKCOLLISIONA nickname collision occurred between servers.
441ERR_USERNOTINCHANNELThe person is not in that channel.
442ERR_NOTONCHANNELYou are not in that channel.
443ERR_USERONCHANNELThe person is already in the channel.
451ERR_NOTREGISTEREDYou have not finished registering.
461ERR_NEEDMOREPARAMSThe command needs more parameters.
462ERR_ALREADYREGISTEREDYou may not register again.
464ERR_PASSWDMISMATCHThe password is wrong.
465ERR_YOUREBANNEDCREEPYou are banned from this server.
471ERR_CHANNELISFULLThe channel is full (+l).
472ERR_UNKNOWNMODEUnknown mode character.
473ERR_INVITEONLYCHANThe channel is invite only (+i).
474ERR_BANNEDFROMCHANYou are banned from the channel (+b).
475ERR_BADCHANNELKEYThe channel key is wrong (+k).
481ERR_NOPRIVILEGESYou are not a network operator.
482ERR_CHANOPRIVSNEEDEDYou need to be a channel operator.
483ERR_CANTKILLSERVERYou cannot kill a server.
491ERR_NOOPERHOSTNo operator host matches you.
501ERR_UMODEUNKNOWNFLAGUnknown user mode.
502ERR_USERSDONTMATCHYou cannot change other users' modes.

SASL, MONITOR and extensions

NumberNameMeaning
670RPL_STARTTLSThe server is ready to start TLS.
691ERR_STARTTLSSTARTTLS failed.
730RPL_MONONLINEA monitored nickname is online.
731RPL_MONOFFLINEA monitored nickname is offline.
732RPL_MONLISTA line of your monitor list.
733RPL_ENDOFMONLISTThe end of your monitor list.
734ERR_MONLISTFULLYour monitor list is full.
900RPL_LOGGEDINYou are now logged in to an account.
901RPL_LOGGEDOUTYou are now logged out.
902ERR_NICKLOCKEDYou must use a nickname that is assigned to you.
903RPL_SASLSUCCESSSASL sign-in succeeded.
904ERR_SASLFAILSASL sign-in failed.
905ERR_SASLTOOLONGThe SASL message was too long.
906ERR_SASLABORTEDSASL sign-in was aborted.
907ERR_SASLALREADYYou are already signed in.
908RPL_SASLMECHSThe SASL mechanisms the server supports.

Numbers above 500 differ between server software, so the same number can mean different things on different networks. Always read the text that comes with a reply.