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
| Command | Syntax | What it does | Defined in |
|---|
| PASS | PASS <password> | Sets a connection password. Must be sent before NICK and USER. | RFC 1459 |
| NICK | NICK <nickname> | Sets or changes your nickname. | RFC 1459 |
| USER | USER <username> 0 * :<realname> | Supplies your username and real name when registering. | RFC 1459 / 2812 |
| CAP | CAP <subcommand> [:<capabilities>] | Negotiates IRCv3 capabilities. See the CAP table below. | IRCv3 |
| AUTHENTICATE | AUTHENTICATE <mechanism | data | + | *> | Runs SASL sign-in during connection. | IRCv3 (SASL) |
| OPER | OPER <name> <password> | Gains network operator status. | RFC 1459 |
| QUIT | QUIT [:<message>] | Disconnects, with an optional message shown to others. | RFC 1459 |
| PING | PING <token> | Checks that the other side is alive. Must be answered with PONG. | RFC 1459 |
| PONG | PONG <token> | Reply to PING, carrying the same token. | RFC 1459 |
| ERROR | ERROR :<message> | Sent by a server just before it closes your connection. | RFC 1459 |
| WEBIRC | WEBIRC <password> <gateway> <hostname> <ip> | Lets a trusted web gateway pass on a user's real address. | Extension |
| STARTTLS | STARTTLS | Upgrades a plain connection to TLS. Deprecated in favor of connecting to a TLS port. | IRCv3 (withdrawn) |
| SQUIT | SQUIT <server> :<comment> | Disconnects a server from the network. Operators only. | RFC 1459 |
Channel commands
| Command | Syntax | What it does | Defined in |
|---|
| JOIN | JOIN <channel>{,<channel>} [<key>{,<key>}] | Joins one or more channels. JOIN 0 leaves every channel. | RFC 1459 |
| PART | PART <channel>{,<channel>} [:<message>] | Leaves channels. | RFC 1459 |
| TOPIC | TOPIC <channel> [:<topic>] | Reads the topic, or sets it when you are allowed to. | RFC 1459 |
| NAMES | NAMES [<channel>{,<channel>}] | Lists the members of channels. | RFC 1459 |
| LIST | LIST [<channels>] [<ELIST conditions>] | Lists channels, optionally filtered by user count, age, name mask or topic. | RFC 1459 / ELIST |
| INVITE | INVITE <nickname> <channel> | Invites someone to a channel. | RFC 1459 |
| KICK | KICK <channel> <user>{,<user>} [:<comment>] | Removes people from a channel. | RFC 1459 |
| MODE | MODE <target> [<modestring> [<arguments>]] | Reads or changes the modes of a channel or a user. | RFC 1459 |
| KNOCK | KNOCK <channel> [:<message>] | Asks the ops of an invite-only channel to let you in. | Extension |
| RENAME | RENAME <old> <new> [:<reason>] | Renames a channel, keeping its members and state. | IRCv3 (draft) |
| CHATHISTORY | CHATHISTORY <subcommand> <target> ... | Requests stored message history. See the IRCv3 table below. | IRCv3 (draft) |
Messaging
| Command | Syntax | What it does | Defined in |
|---|
| PRIVMSG | PRIVMSG <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 |
| NOTICE | NOTICE <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) |
| SQUERY | SQUERY <service> :<text> | Sends a message to a network service. | RFC 2812 |
| CPRIVMSG | CPRIVMSG <nick> <channel> :<text> | Sends a private message to someone who shares a channel with you, bypassing flood limits. | Extension |
| CNOTICE | CNOTICE <nick> <channel> :<text> | The notice version of CPRIVMSG. | Extension |
| SILENCE | SILENCE [+|-<mask>] | Server-side ignore list for private messages. | Extension |
| ACCEPT | ACCEPT [+|-]<nick>{,...} | Allows specific people to message you while caller-ID (+g) is on. | Extension |
| RELAYMSG | RELAYMSG <channel> <nick> :<text> | Lets a bridge relay a message from a remote user, with a clearly marked name. | IRCv3 (draft) |
Information and queries
| Command | Syntax | What it does | Defined in |
|---|
| WHO | WHO [<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 |
| WHOIS | WHOIS [<server>] <nick>{,<nick>} | Shows details about a user. | RFC 1459 |
| WHOWAS | WHOWAS <nick>{,<nick>} [<count> [<server>]] | Shows details about someone who recently left. | RFC 1459 |
| USERHOST | USERHOST <nick>{ <nick>} | Quickly returns the user and host of up to five nicknames. | RFC 1459 |
| ISON | ISON <nick>{ <nick>} | Checks which of the listed nicknames are online. | RFC 1459 |
| MOTD | MOTD [<server>] | Shows the server's message of the day. | RFC 1459 |
| LUSERS | LUSERS [<mask> [<server>]] | Shows how many users, channels and servers the network has. | RFC 2812 |
| VERSION | VERSION [<server>] | Shows a server's software version. | RFC 1459 |
| STATS | STATS [<query> [<server>]] | Shows server statistics. Many queries are for operators only. | RFC 1459 |
| LINKS | LINKS [[<remote>] <mask>] | Lists the servers on the network. | RFC 1459 |
| MAP | MAP | Draws a tree of the servers on the network. | Extension |
| TIME | TIME [<server>] | Shows a server's local time. | RFC 1459 |
| ADMIN | ADMIN [<server>] | Shows the server administrator's contact details. | RFC 1459 |
| INFO | INFO [<server>] | Shows information about the server software. | RFC 1459 |
| HELP | HELP [<subject>] | Shows the server's built-in help (also called HELPOP). | Extension |
| TRACE | TRACE [<target>] | Traces the route to a server or user. | RFC 1459 |
| SERVLIST | SERVLIST [<mask> [<type>]] | Lists network services. | RFC 2812 |
| USERIP | USERIP <nick> | Returns a user's IP address. Operators only on most networks. | Extension |
Presence and status
| Command | Syntax | What it does | Defined in |
|---|
| AWAY | AWAY [:<message>] | Marks you away. AWAY with no message marks you back. | RFC 1459 |
| SETNAME | SETNAME :<realname> | Changes your real name without reconnecting. | IRCv3 |
| MONITOR | MONITOR + <nick>{,<nick>} | - <nick>{,...} | C | L | S | Adds or removes nicknames from a watch list, clears it, lists it, or asks for the current status. | IRCv3 |
| WATCH | WATCH [+<nick> | -<nick> | L | S | C] | The older, non-standard predecessor of MONITOR. | Extension |
| MARKREAD | MARKREAD <target> [timestamp=<time>] | Reads or sets your read position, so unread counts sync across devices. | IRCv3 (draft) |
| REDACT | REDACT <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.
| Command | Syntax | What it does | Defined in |
|---|
| KILL | KILL <nick> :<reason> | Forcibly disconnects a user from the network. | RFC 1459 |
| REHASH | REHASH | Reloads the server's configuration. | RFC 1459 |
| RESTART | RESTART | Restarts the server. | RFC 1459 |
| DIE | DIE | Shuts the server down. | RFC 1459 |
| CONNECT | CONNECT <target> [<port> [<remote>]] | Links a server to the network. | RFC 1459 |
| WALLOPS | WALLOPS :<text> | Sends a message to every operator and user with the +w mode. | RFC 2812 |
| OPERWALL / GLOBOPS / LOCOPS | OPERWALL :<text> | Messages every operator, globally or on one server. | Extension |
| KLINE / GLINE / DLINE / ZLINE | KLINE <duration> <mask> :<reason> | Bans a user mask from a server or the whole network. | Extension |
| SAJOIN / SAPART / SANICK / SAMODE / SAKICK | SAJOIN <nick> <channel> | Forces a user to do something. Operators only. | Extension |
| CHGHOST | CHGHOST <nick> <newhost> | Changes a user's displayed host. The server message of the same name is sent to clients. | Extension / IRCv3 |
| SUMMON / USERS | SUMMON <user> | Obsolete commands from the original protocol, now disabled almost everywhere. | RFC 1459 |
| SERVICE | SERVICE <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
| Subcommand | Syntax | What it does |
|---|
| CAP LS | CAP LS [302] | Asks the server which capabilities it offers. Adding 302 asks for the newer format, which also reports values. |
| CAP LIST | CAP LIST | Shows the capabilities you currently have enabled. |
| CAP REQ | CAP REQ :<cap> <cap> | Asks to enable (or, with a leading -, disable) capabilities. |
| CAP ACK | server → client | The server accepted your request. |
| CAP NAK | server → client | The server refused your request. |
| CAP END | CAP END | Ends negotiation so connection registration can finish. |
| CAP NEW | server → client | A new capability became available (needs cap-notify). |
| CAP DEL | server → client | A capability is no longer available (needs cap-notify). |
CHATHISTORY subcommands
| Subcommand | Syntax | What it returns |
|---|
| LATEST | CHATHISTORY LATEST <target> <* | msgref> <limit> | The most recent messages, or those after a reference point. |
| BEFORE | CHATHISTORY BEFORE <target> <msgref> <limit> | Messages before a message ID or timestamp. Used to scroll back. |
| AFTER | CHATHISTORY AFTER <target> <msgref> <limit> | Messages after a reference point. Used to catch up. |
| AROUND | CHATHISTORY AROUND <target> <msgref> <limit> | Messages on both sides of a reference point. |
| BETWEEN | CHATHISTORY BETWEEN <target> <msgref1> <msgref2> <limit> | Messages between two reference points. |
| TARGETS | CHATHISTORY 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
| Name | Syntax | What it does |
|---|
| AUTHENTICATE | AUTHENTICATE <mechanism> | Starts SASL. The server answers with + and the client sends base64 data in chunks of up to 400 bytes. AUTHENTICATE * aborts. |
| BATCH | BATCH +<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 #room | Carries only tags, such as typing indicators and reactions. |
| SETNAME | SETNAME :<realname> | Changes your real name. Others with the setname capability see the change. |
| MONITOR | MONITOR + <targets> | Online notifications for friends. Replies use numerics 730 to 734. |
| REGISTER / VERIFY | REGISTER <account> <email|*> <password> | Creates a services account from inside the connection, and confirms it with VERIFY <account> <code>. |
| FAIL / WARN / NOTE | FAIL <command> <code> [<context>] :<description> | Standard replies. A machine-readable error, warning or information message that replaces many ad-hoc numerics. |
| ACCOUNT | server → client | Announces that a user signed in or out of a services account (needs account-notify). |
| CHGHOST | server → client | Announces that a user's displayed host changed (needs chghost). |
| AWAY | server → client | Announces that a user marked themselves away or back (needs away-notify). |
| INVITE | server → client | Tells ops that someone was invited to their channel (needs invite-notify). |
| METADATA | METADATA <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
| Capability | Status | What it does |
|---|
| multi-prefix | Ratified | Shows every status symbol a member has, such as @+nick. |
| userhost-in-names | Ratified | Includes full addresses in channel member lists. |
| away-notify | Ratified | Pushes away and back changes to you. |
| account-notify | Ratified | Tells you when people sign in or out of services accounts. |
| account-tag | Ratified | Adds the sender's account name to every message. |
| extended-join | Ratified | JOIN carries the account name and real name. |
| chghost | Ratified | Updates a changed host without a fake quit and join. |
| cap-notify | Ratified | Tells you when capabilities appear or disappear. |
| invite-notify | Ratified | Tells ops about invitations. |
| server-time | Ratified | Adds the time the server received each message. |
| message-tags | Ratified | Lets messages carry tags; the base for many other features. |
| batch | Ratified | Groups related lines together. |
| labeled-response | Ratified | Lets a client match each reply to the command that caused it. |
| echo-message | Ratified | The server echoes your own messages back to you. |
| sasl | Ratified | Sign-in during connection (versions 3.1 and 3.2). |
| setname | Ratified | Allows changing the real name. |
| monitor | Ratified | Online and offline notifications for a list of nicknames. |
| standard-replies | Ratified | Enables FAIL, WARN and NOTE messages. |
| sts | Ratified | Strict Transport Security: tells clients to use a protected connection in the future. |
| bot | Ratified | Marks accounts as bots, with a bot tag and the +B mode. |
| utf8only | Ratified | The server only accepts valid UTF-8. |
| extended-monitor | Ratified | Online notifications also carry away, account and host changes. |
| draft/chathistory | Draft | Lets a client request past messages from the server. |
| draft/event-playback | Draft | History replays joins, parts and mode changes too. |
| draft/read-marker | Draft | Syncs read positions across devices with MARKREAD. |
| draft/message-redaction | Draft | Allows deleting messages with REDACT. |
| draft/multiline | Draft | Sends several lines as one message. |
| draft/channel-rename | Draft | Enables the RENAME command. |
| draft/account-registration | Draft | Enables REGISTER and VERIFY. |
| draft/metadata-2 | Draft | Enables key and value metadata. |
| draft/pre-away | Draft | Lets a client mark itself away before registration finishes. |
| draft/no-implicit-names | Draft | Skips the automatic member list after joining. |
| draft/extended-isupport | Draft | Lets servers send ISUPPORT before registration. |
| draft/relaymsg | Draft | Enables RELAYMSG for bridges. |
Status reflects the state of each specification when this page was written. The current list is at ircv3.net.
| Tag | What it carries |
|---|
| time | The time the server received the message, in ISO 8601. |
| msgid | A unique ID for the message, used to reply, react, redact and look up history. |
| account | The sender's services account name. |
| label | A client-chosen label echoed in the reply to a command. |
| batch | The batch the line belongs to. |
| bot | Present when the message was sent by a bot. |
| +draft/reply | The msgid of the message this one replies to. Used for threads and replies. |
| +draft/react | A reaction, such as an emoji, sent with TAGMSG. |
| +draft/unreact | Removes a reaction. |
| +typing | Typing status: active, paused or done. |
| +draft/channel-context | The 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
| Type | Used for |
|---|
| netsplit | Grouping the quits that happen when part of a network disconnects. |
| netjoin | Grouping the joins that happen when a split heals. |
| chathistory | Wrapping a history reply. |
| labeled-response | Wrapping a reply that has several lines. |
| draft/multiline | Sending a message that spans several lines. |
SASL mechanisms
| Mechanism | How it signs you in |
|---|
| PLAIN | Sends your account name and password. Use only over a protected connection. |
| EXTERNAL | Signs in with a TLS client certificate, with no password. |
| SCRAM-SHA-256 | A challenge and response that never sends the password itself. Also available as SCRAM-SHA-1 and SCRAM-SHA-512. |
| OAUTHBEARER | Signs in with an access token. |
| ECDSA-NIST256P-CHALLENGE | A legacy key-based method, mostly replaced by EXTERNAL. |
Modes, prefixes and symbols
Channel modes
| Mode | Type | Meaning |
|---|
| b | List | Ban a mask. |
| e | List | Ban exception: a mask that is allowed in despite a ban. |
| I | List | Invite exception: a mask that may join an invite-only channel. |
| k | Key | Password to join. |
| l | Number | Maximum number of users. |
| i | Flag | Invite only. |
| m | Flag | Moderated: only ops and voiced members speak. |
| n | Flag | No messages from users outside the channel. |
| t | Flag | Only ops can change the topic. |
| s | Flag | Secret: hidden from lists and from WHOIS. |
| p | Flag | Private: an older, weaker form of secret. |
| r | Flag | Registered (set by services), or registered users only. Meaning varies by network. |
| c | Flag | Block colors and formatting codes. Varies by network. |
| C | Flag | Block CTCP messages to the channel. Varies by network. |
| N | Flag | Block nickname changes while in the channel. Varies by network. |
| S | Flag | Strip colors and formatting. Varies by network. |
| R | Flag | Only registered users may join. Varies by network. |
| M | Flag | Only registered users may speak. Varies by network. |
| Q | Flag | Disallow kicks. Varies by network. |
| T | Flag | Block notices to the channel. Varies by network. |
| f | Value | Forward users who cannot join to another channel, or flood protection. Varies by network. |
| j | Value | Throttle how many users can join in a time period. Varies by network. |
| P | Flag | Permanent: the channel stays when empty. Varies by network. |
| O | Flag | Only network operators may join. Varies by network. |
| z | Flag | Reduced 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
| Mode | Symbol | Meaning |
|---|
| 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
| Mode | Meaning |
|---|
| i | Invisible: you are not shown in WHO and NAMES to people who do not share a channel with you. |
| w | Receive WALLOPS messages. |
| s | Receive server notices. |
| o | Network operator. You cannot set this yourself. |
| r | Registered and signed in to a nickname, or restricted. Varies by network. |
| x | Cloaked host: your real host is hidden. Varies by network. |
| Z | Connected over TLS. Varies by network. |
| B | Marked as a bot. |
| D | Deaf: do not receive channel messages. Varies by network. |
| g | Caller ID: only people you ACCEPT can send you private messages. Varies by network. |
| R | Accept private messages only from registered users. Varies by network. |
| T | Block CTCP messages to you. Varies by network. |
Channel name prefixes
| Prefix | Meaning |
|---|
| # | 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:
| Token | Meaning |
|---|
| NETWORK | The name of the network. |
| CASEMAPPING | How nicknames and channels compare upper and lower case (ascii, rfc1459, rfc3454). |
| CHANTYPES | Characters that start a channel name, normally #. |
| PREFIX | The member status modes and their symbols, such as (ov)@+. |
| CHANMODES | The channel modes the server supports, grouped by type. |
| CHANLIMIT | How many channels you may join, per prefix. |
| NICKLEN | Maximum nickname length. |
| USERLEN / HOSTLEN | Maximum username and hostname length. |
| CHANNELLEN | Maximum channel name length. |
| TOPICLEN | Maximum topic length. |
| KICKLEN | Maximum kick reason length. |
| AWAYLEN | Maximum away message length. |
| MODES | How many modes can be changed in one MODE command. |
| MAXLIST | Maximum entries in ban, exception and invite lists. |
| TARGMAX | Maximum targets for commands such as PRIVMSG, JOIN and KICK. |
| STATUSMSG | Status symbols that can prefix a PRIVMSG target, such as @+. |
| EXCEPTS / INVEX | The mode letters for ban and invite exceptions. |
| ELIST | The filters supported by LIST (M, N, U, C, T). |
| SAFELIST | LIST is safe to use on a big network without disconnecting you. |
| WHOX | The server supports extended WHO queries. |
| MONITOR | MONITOR is supported, with a maximum list size. |
| BOT | The mode letter used to mark bots. |
| UTF8ONLY | The server only accepts UTF-8. |
| MSGREFTYPES | The message reference types the server accepts for history, such as msgid and timestamp. |
| CHATHISTORY | The maximum number of history messages per request. |
| CLIENTTAGDENY | Client 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.
| CTCP | What it does |
|---|
| ACTION | The text of a /me message. |
| VERSION | Asks which client and version someone is using. |
| PING | Measures the round trip time to another client. |
| TIME | Asks for the other client's local time. |
| CLIENTINFO | Lists the CTCP requests the other client understands. |
| USERINFO | Asks for a short description the user set. |
| FINGER | An old request for user information. Mostly unused. |
| SOURCE | Asks where to download the client. |
| ERRMSG | Returns an error for an unknown request. |
| DCC CHAT | Opens a direct chat connection between two clients. |
| DCC SEND / RESUME / ACCEPT | Offers, 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
| Number | Name | Meaning |
|---|
| 001 | RPL_WELCOME | Registration is complete. |
| 002 | RPL_YOURHOST | Which server you are on. |
| 003 | RPL_CREATED | When the server was created. |
| 004 | RPL_MYINFO | Server name, version and supported modes. |
| 005 | RPL_ISUPPORT | The server's features and limits. |
| 010 | RPL_BOUNCE | Please connect to another server. |
| 221 | RPL_UMODEIS | Your current user modes. |
| 251 | RPL_LUSERCLIENT | How many users and servers are visible. |
| 252 | RPL_LUSEROP | How many operators are online. |
| 253 | RPL_LUSERUNKNOWN | How many unknown connections there are. |
| 254 | RPL_LUSERCHANNELS | How many channels exist. |
| 255 | RPL_LUSERME | How many clients and servers this server has. |
| 265 | RPL_LOCALUSERS | Current and maximum local users. |
| 266 | RPL_GLOBALUSERS | Current and maximum users network-wide. |
| 372 | RPL_MOTD | A line of the message of the day. |
| 375 | RPL_MOTDSTART | The message of the day begins. |
| 376 | RPL_ENDOFMOTD | The message of the day ends. |
| 381 | RPL_YOUREOPER | You are now a network operator. |
| 382 | RPL_REHASHING | The server is reloading its configuration. |
Information replies
| Number | Name | Meaning |
|---|
| 301 | RPL_AWAY | The person you messaged is away, with their reason. |
| 302 | RPL_USERHOST | The reply to USERHOST. |
| 303 | RPL_ISON | The reply to ISON. |
| 305 | RPL_UNAWAY | You are no longer marked away. |
| 306 | RPL_NOWAWAY | You are now marked away. |
| 311 | RPL_WHOISUSER | The nickname, user, host and real name in a WHOIS reply. |
| 312 | RPL_WHOISSERVER | The server someone is connected to. |
| 313 | RPL_WHOISOPERATOR | The person is a network operator. |
| 314 | RPL_WHOWASUSER | The details in a WHOWAS reply. |
| 315 | RPL_ENDOFWHO | The end of a WHO reply. |
| 317 | RPL_WHOISIDLE | How long someone has been idle, and when they connected. |
| 318 | RPL_ENDOFWHOIS | The end of a WHOIS reply. |
| 319 | RPL_WHOISCHANNELS | The channels someone is in. |
| 330 | RPL_WHOISACCOUNT | The account someone is signed in to. |
| 352 | RPL_WHOREPLY | One user in a WHO reply. |
| 369 | RPL_ENDOFWHOWAS | The end of a WHOWAS reply. |
| 351 | RPL_VERSION | The server's version. |
| 391 | RPL_TIME | The server's local time. |
| 364 | RPL_LINKS | One server in a LINKS reply. |
| 365 | RPL_ENDOFLINKS | The end of a LINKS reply. |
| 371 | RPL_INFO | A line of server information. |
| 374 | RPL_ENDOFINFO | The end of server information. |
Channel replies
| Number | Name | Meaning |
|---|
| 321 | RPL_LISTSTART | The channel list begins. |
| 322 | RPL_LIST | One channel in the list, with its user count and topic. |
| 323 | RPL_LISTEND | The channel list ends. |
| 324 | RPL_CHANNELMODEIS | A channel's current modes. |
| 329 | RPL_CREATIONTIME | When a channel was created. |
| 331 | RPL_NOTOPIC | The channel has no topic. |
| 332 | RPL_TOPIC | The channel's topic. |
| 333 | RPL_TOPICWHOTIME | Who set the topic and when. |
| 341 | RPL_INVITING | Your invitation was sent. |
| 346 | RPL_INVITELIST | One entry in the invite exception list. |
| 347 | RPL_ENDOFINVITELIST | The end of the invite exception list. |
| 348 | RPL_EXCEPTLIST | One entry in the ban exception list. |
| 349 | RPL_ENDOFEXCEPTLIST | The end of the ban exception list. |
| 353 | RPL_NAMREPLY | A list of channel members. |
| 366 | RPL_ENDOFNAMES | The end of the member list. |
| 367 | RPL_BANLIST | One entry in the ban list. |
| 368 | RPL_ENDOFBANLIST | The end of the ban list. |
Error replies
| Number | Name | Meaning |
|---|
| 401 | ERR_NOSUCHNICK | No such nickname or channel. |
| 402 | ERR_NOSUCHSERVER | No such server. |
| 403 | ERR_NOSUCHCHANNEL | No such channel. |
| 404 | ERR_CANNOTSENDTOCHAN | You cannot send to the channel (moderated, banned or no external messages). |
| 405 | ERR_TOOMANYCHANNELS | You have joined too many channels. |
| 406 | ERR_WASNOSUCHNICK | There was no such nickname. |
| 411 | ERR_NORECIPIENT | No recipient was given. |
| 412 | ERR_NOTEXTTOSEND | No text to send. |
| 421 | ERR_UNKNOWNCOMMAND | The command is unknown. |
| 422 | ERR_NOMOTD | The server has no message of the day. |
| 431 | ERR_NONICKNAMEGIVEN | No nickname was given. |
| 432 | ERR_ERRONEUSNICKNAME | The nickname has characters or a length that is not allowed. |
| 433 | ERR_NICKNAMEINUSE | The nickname is already in use. |
| 436 | ERR_NICKCOLLISION | A nickname collision occurred between servers. |
| 441 | ERR_USERNOTINCHANNEL | The person is not in that channel. |
| 442 | ERR_NOTONCHANNEL | You are not in that channel. |
| 443 | ERR_USERONCHANNEL | The person is already in the channel. |
| 451 | ERR_NOTREGISTERED | You have not finished registering. |
| 461 | ERR_NEEDMOREPARAMS | The command needs more parameters. |
| 462 | ERR_ALREADYREGISTERED | You may not register again. |
| 464 | ERR_PASSWDMISMATCH | The password is wrong. |
| 465 | ERR_YOUREBANNEDCREEP | You are banned from this server. |
| 471 | ERR_CHANNELISFULL | The channel is full (+l). |
| 472 | ERR_UNKNOWNMODE | Unknown mode character. |
| 473 | ERR_INVITEONLYCHAN | The channel is invite only (+i). |
| 474 | ERR_BANNEDFROMCHAN | You are banned from the channel (+b). |
| 475 | ERR_BADCHANNELKEY | The channel key is wrong (+k). |
| 481 | ERR_NOPRIVILEGES | You are not a network operator. |
| 482 | ERR_CHANOPRIVSNEEDED | You need to be a channel operator. |
| 483 | ERR_CANTKILLSERVER | You cannot kill a server. |
| 491 | ERR_NOOPERHOST | No operator host matches you. |
| 501 | ERR_UMODEUNKNOWNFLAG | Unknown user mode. |
| 502 | ERR_USERSDONTMATCH | You cannot change other users' modes. |
SASL, MONITOR and extensions
| Number | Name | Meaning |
|---|
| 670 | RPL_STARTTLS | The server is ready to start TLS. |
| 691 | ERR_STARTTLS | STARTTLS failed. |
| 730 | RPL_MONONLINE | A monitored nickname is online. |
| 731 | RPL_MONOFFLINE | A monitored nickname is offline. |
| 732 | RPL_MONLIST | A line of your monitor list. |
| 733 | RPL_ENDOFMONLIST | The end of your monitor list. |
| 734 | ERR_MONLISTFULL | Your monitor list is full. |
| 900 | RPL_LOGGEDIN | You are now logged in to an account. |
| 901 | RPL_LOGGEDOUT | You are now logged out. |
| 902 | ERR_NICKLOCKED | You must use a nickname that is assigned to you. |
| 903 | RPL_SASLSUCCESS | SASL sign-in succeeded. |
| 904 | ERR_SASLFAIL | SASL sign-in failed. |
| 905 | ERR_SASLTOOLONG | The SASL message was too long. |
| 906 | ERR_SASLABORTED | SASL sign-in was aborted. |
| 907 | ERR_SASLALREADY | You are already signed in. |
| 908 | RPL_SASLMECHS | The 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.