Commands Overview
ElixIRCd implements all core IRC protocol commands plus IRCv3 extensions. Commands are organized into functional groups.
Connection Commands
Section titled “Connection Commands”| Command | Description |
|---|---|
PASS | Set a connection password |
NICK | Set or change nickname |
USER | Set username and real name |
CAP | IRCv3 capability negotiation |
AUTHENTICATE | SASL authentication |
PING | Test connection liveness |
PONG | Reply to PING |
QUIT | Disconnect from server |
WEBIRC | WebIRC gateway identification |
Channel Commands
Section titled “Channel Commands”| Command | Description |
|---|---|
JOIN | Join a channel (or create it) |
PART | Leave a channel |
MODE | Set/unset user or channel modes |
TOPIC | Get or set channel topic |
NAMES | List visible users in channel |
LIST | List channels and topics |
INVITE | Invite a user to a channel |
KICK | Eject a user from a channel |
Messaging Commands
Section titled “Messaging Commands”| Command | Description |
|---|---|
PRIVMSG | Send a private message or channel message |
NOTICE | Send a notice (no auto-reply) |
TAGMSG | Send a message with tags but no text |
AWAY | Set or clear away status |
User Information Commands
Section titled “User Information Commands”| Command | Description |
|---|---|
WHOIS | Get info about a user |
WHO | Search users |
WHOWAS | Info about recently disconnected users |
USERHOST | Get hostmask info for nicknames |
USERS | List users on the server |
ISON | Check if users are online |
LUSERS | Server user count statistics |
MONITOR | Track when users go online/offline |
User Management Commands
Section titled “User Management Commands”| Command | Description |
|---|---|
ACCEPT | Manage Caller ID (+g) accept list |
SILENCE | Manage ignore/silence list |
SETNAME | Change your real name |
CHGHOST | Change a user’s hostname (operators) |
Server Information Commands
Section titled “Server Information Commands”| Command | Description |
|---|---|
MOTD | Get the message of the day |
VERSION | Get server version |
STATS | Get server statistics |
INFO | Get server info |
TIME | Get server local time |
TRACE | Trace route to user or server |
ADMIN | Get server administrator info |
Operator Commands
Section titled “Operator Commands”| Command | Description |
|---|---|
OPER | Become an IRC operator |
KILL | Disconnect a user |
WALLOPS | Broadcast to +w users |
OPERWALL | Message to all operators |
GLOBOPS | Global operator message |
REHASH | Reload server configuration |
RESTART | Restart the server |
DIE | Shut down the server |
ACCOUNT | Account change notification |
IRCv3 Commands
Section titled “IRCv3 Commands”| Command | Description | Status |
|---|---|---|
CAP | Capability negotiation | ✅ |
AUTHENTICATE | SASL authentication | ✅ |
TAGMSG | Tag-only messages | ✅ |
WEBIRC | WebIRC gateway | ✅ |
SETNAME | Change real name | ✅ |
CHGHOST | Change hostname | ✅ |
MONITOR | User tracking | ✅ |
ACCOUNT | Account notification | ✅ |
Command Error Codes
Section titled “Command Error Codes”When a command fails or has invalid parameters, the server responds with numeric error codes following the IRC protocol standard. Common errors:
| Numeric | Name | Meaning |
|---|---|---|
401 | ERR_NOSUCHNICK | No such nick or channel |
403 | ERR_NOSUCHCHANNEL | No such channel |
404 | ERR_CANNOTSENDTOCHAN | Cannot send to channel |
405 | ERR_TOOMANYCHANNELS | Too many channels joined |
411 | ERR_NORECIPIENT | No recipient given |
412 | ERR_NOTEXTTOSEND | No text to send |
421 | ERR_UNKNOWNCOMMAND | Unknown command |
432 | ERR_ERRONEUSNICKNAME | Erroneous nickname |
433 | ERR_NICKNAMEINUSE | Nickname already in use |
441 | ERR_USERNOTINCHANNEL | User not in channel |
442 | ERR_NOTONCHANNEL | Not on channel |
461 | ERR_NEEDMOREPARAMS | Not enough parameters |
462 | ERR_ALREADYREGISTERED | Already registered |
464 | ERR_PASSWDMISMATCH | Wrong server password |
471 | ERR_CHANNELISFULL | Channel is full (+l) |
473 | ERR_INVITEONLYCHAN | Invite only (+i) |
474 | ERR_BANNEDFROMCHAN | Banned (+b) |
475 | ERR_BADCHANNELKEY | Wrong channel key (+k) |
481 | ERR_NOPRIVILEGES | Permission denied |
482 | ERR_CHANOPRIVSNEEDED | You’re not a channel operator |
524 | ERR_SECUREONLYCHAN | SSL required (+z) |
900 | RPL_LOGGEDIN | SASL login success |
903 | RPL_SASLSUCCESS | SASL authentication successful |
904 | ERR_SASLFAIL | SASL authentication failed |
905 | ERR_SASLTOOLONG | SASL message too long |
906 | ERR_SASLABORTED | SASL aborted |
907 | ERR_SASLALREADY | Already authenticated |