What the commands are and what they are doing...

This article describes all commands currently implemented in pureIRCd. It is not a guide for other IRCd's because some commands may have
implementation-specific behavior. Not all commands work this way due to some bugs and oddities not worked out yet, but it is our intend to
correct these issues. Care should be taken in the CONNECT and SQUIT commands as those are really pre-alpha and need extended debugging.
Please report all bugs you may encounter to the bug tracker at sf.net by clicking here.

Example:

Command: NICK
Parameters: <New Nick>
Behavior: Changes your Nickname to the Nickname specified in <New Nick>

Explanation to the parameter row fields:

if enclosed in "<>" the paramter MUST be given or "Need more paramaters" will be returned.
if enclosed in "[]" the paramter MAY be given, but is optional.
an "/" describes that either one or the other statement MUST be used if the parameter is given.
characters outside the brackets and "[]"'s MUST also be given if a raw connection is used, mIRC should pass them automatically, though.


Standard commands.

Command: NICK
Parameters: <New Nick>
Behavior: Changes your Nickname to the Nickname specified in <New Nick>
Command: USER
Parameters: <user> <unused> <unused> :<name>
Behavior: Upon connecting to a server a client is required to register itself using this command.
Command: MOTD
Parameters: :[target]
Behavior: Sends the "message of the day". If Target is specified the request is forwarded to an remote server.
Command: LUSERS
Parameters: :[target]
Behavior: Sends current network statistics. If Targetis specified the request is forwarded to an remote server.
Command: QUIT
Parameters: :[reason]
Behavior: Used to quit IRC. This command will disconnect you from the server. The reason - if given - will be shown in an quit message to all other users you were visible to. (ie: channel members that were in the same channel as you)
Command: PRIVMSG
Parameters: <channel/user> :<message>
Behavior: Used to send a message to a channel or another user. Mutliple targets are possible, targets need not to be either channels or users, but can also be mixed, for example: "PRIVMSG Dilligent,#fox :Hi" will send an private message to Dilligent and will also send "Hi" to #fox.
Command: NOTICE
Parameters: <channel/user> :<message>
Behavior: Works the same as PRIVMSG, but sends out a NOTICE message.
Command: MODE (user)
Parameters: <nick> <+ / -> <modes>
Behavior: Used to set or remove user modes. You can only set or remove modes from yourself and the server will also restrict what modes are accessible by you and which are not. For example you cannot add usermode "O" because that would make you an global operator.
Modes can also be stacked, ie: "MODE Dilligent +isw-x+a" will add modes "iswa" and remove "x"
Command: TIME
Parameters: [server]
Behavior: Returns the servers local time, if [server] is given the request will be forwarded.
Command: VERSION
Parameters: [server]
Behavior: Returns the servers version, if [server] is given the request will be forwarded.
Command: STATS
Parameters: <param> [server]
Behavior: Returns statistics about the server, param can be:
m = returns usage statistics about every command and its inbound bandwidth usage.
u = returns the servers uptime and connection requests since last (re) start.
o = returns the hostmask and operID for each o-line.
k = returns a list of active k-lines.
if [server] is given this request will be forwarded.
Command: LINKS
Parameters:  
Behavior: Returns the networks current layout.
Command: ADMIN
Parameters: [server]
Behavior: Returns the servers admin info, if [server] is given the request will be forwarded.
Command: WHO
Parameters: <mask / channel name / "o">
Behavior: Returns a list of users:

mask = the whole user database is checked against a mask and all matches are returned.
channel name = all members of that channel will be returned if channel is not private or secret.
"o" = all operators currently logged on will be returned.

Command: WHOIS
Parameters: <nick> :[server]
Behavior: Returns information about a user, if [server] is given the request will be forwarded.
Command: WHOWAS
Parameters: <nick>
Behavior: Returns information about a user that logged off shortly ago.
Command: ISON
Parameters: <nick list>
Behavior: checks if the nicknames specified are currently in use and returns those that are.
Command: OPER
Parameters: <OperID> <Pass>
Behavior: Attempt to become an operator
Command: USERHOST
Parameters: <nicklist of up to 5 users>
Behavior: Returns host information about a single or mutliple users.
Command: AWAY
Parameters: [awaymsg]
Behavior: If awaymsg is given the user will be marked as being away, otherwise as having returned.
Command: USERS
Parameters:  
Behavior: This command used to return a full list of current users.
Note: This command has been disabled.

Channel commands.

Command: JOIN
Parameters: <channel> <key>
Behavior: Used to join a channel, a user can join multiple channels at once by seperating channels with a "," (comma, dont use spaces!).
you can also specify mulitple keys when joining more than one channel, example: "JOIN #fox,#fox2 Key1,Key2"
Command: PART
Parameters: <channel> :[reason]
Behavior: Used to leave a channel, a user can leave multiple channels at once by seperating channels with a "," (comma, dont use spaces!).
Reason is not a required field but you're encouraged to use it.
Command: MODE (channel)
Parameters: <channel> <+ / -> <modes> [parameter]
Behavior: Used to set modes for a channel. Possible modes at this time:

o = channel operator, same privileges as you (if you are the channel operator)
v = channel voice, can speak if channel is +m
m = channels is moderated, noone except channel operators and channel voices can speak
b = channel bans, bans users with a certain host/ident/nick from the channel, also mutes them if they are on then
i = invite only, it is impossible to join the channel without an channel operator inviting your to the channel.
l = user limit, if the amount of users hits the limit or goes above it, noone is able to join the channel unless an channel oparator invites them
k = channel key, this key must be specified upon join of the channel unless invited
s = channel is secret, channel will not show up on "LIST" or "NAMES" return, all members are hidden.
p = channel is private, doing exactly the same as "channel is secret"
t = only channels operators can change topic.
n = no external messages, no one outside the channel can send a message inside.

The modes "o", "v", "b", "l" and "k" require an extra parameter:
channel mode "o" requires a nickname of a channel member that you want to make/unmake channel operator.
channel mode "v" requires a nickname of a channel member that you want to make/unmake channel voice.
channel mode "b" requires a user mask that you want to ban/unban.
channel mode "k" requires a key that you want to set/unset.
channel mode "l" only requires a number
that you want to set as limit when being set, no parameter required when unset.

Command: KICK
Parameters: <nick> :[reason]
Behavior: Kicks a user off a channel showing the reason if given. The user being kicked will have to rejoin the channel if he wants to speak there again
Command: TOPIC
Parameters: <channel> :[topic]
Behavior: Used to set or retrieve the topic of a channel. The topic is set if the [topic] parameter is given, otherwise it is only retrieved.
Command: NAMES
Parameters: [channel]
Behavior: Used to retrieve the current channel member list. for secret/private channels this will return an empty list unless you are on the channel or are joining it. <channel> can specifiy mutliple channels with an comma.
Command: INVITE
Parameters: <nick> <channel>
Behavior: Invites a user to a channel, if the specified channel is invite-only, only channel operators can use this command. you can invite through keys and limits.
Command: LIST
Parameters: [channel / channel mask / < / >] [member count]
Behavior: Used to list the currently visible channels. you can specify additional parameters to narrow down your search:

Channel: Only list this one channel if found.
Channel mask: List all channels matching the mask given.
<: list all channels with less users than specified in [member count]
>: list all channels with more users than specified in [member count]


 


Operator commands.

Command: KILL
Parameters: <target / target mask> <Reason>
Behavior: Disconnects the target or all users matching the mask with the given reason.
Command: DIE
Parameters:  
Behavior: Quits the server (highly disencouraged!)
Command: RESTART
Parameters:  
Behavior: Restarts the server (highly disencouraged!)
Command: REHASH
Parameters: [-MOTD / -GC]
Behavior: Reloads the irc.conf file if no parameter is given.
If -GC is given, the server will try to collect garbage and drop it.
If -MOTD is given the server will attempt to reload the ircd.motd file.
Command: CONNECT
Parameters: <target server> [port] [remote server]
Behavior: if only [target server] is given, the local server will attempt to open a link to that server. if port is given that attempt will be made on that port. if [remote server] is also given, the request will be forwarded to that server which will then make the connection attempt.
Command: SQUIT
Parameters: <Server> <reason>
Behavior: Disconnects the target server from the network. Will be forwarded to the server having the link as local which will then propagate a global notice including the source and reason of this action.
Command: HASH
Parameters:  
Behavior: Returns advanced statistics about the server which is not nessacerly entirely correct btu is close to reality.
Command: CLOSE
Parameters:  
Behavior: Closes all "half-open" (unregistered) connections to the server.
Command: SUMMON
Parameters: <user> <server> <channel>
Behavior: Asks the admin sitting at the Servers console to please join irc on a given server into a given channel.
Note: This command has been disabled