Main Page
Connection sequence
General commands (concise version)
A typical IRC session log
A typical IRC session log (explaining each line)
Original Text File

All the commands can be tested using telnet
(available on most major operating systems)


General Commands:


Here is a list of the main IRC RFC commands, some with their normal IRC client equivalent
in brackets (). All "" characters below are ctrl-a.
In many of the following you can substitute #channel with a user nickname instead.
In many cases you can send to multiple destinations by seperating with a ","
eg. PRIVMSG #channel1,user1,#channel2 :BLAH!

To join a channel (/join #channel key)
    JOIN #channel :key

To leave a channel (/part #channel reason)
    PART #channel :reason

To send a message (/msg #channel Message)
    PRIVMSG #channel :Message

To use an action (/me action here, or /describe #channel action here)
    PRIVMSG #channel :ACTION action here

To send a notice (/notice #channel your notice here)
    NOTICE #channel :your notice here

To see who a user is (/whois Username)
    WHOIS :Username

To display all users matching a particular criteria (/who Nick_*hostmast_or_#channel)
    WHO :Nick_*hostmask_or_#channel

To list the users in a channel, or all users in IRC (/names #channel)
    NAMES :#channel

To list channels (/list)

To change nickname (/nick newnick_here)
    NICK :newnick_here

To change a channel mode (/mode #channel +o user)
    mode #channel :+o user

To kick a user out of a channel (/kick #channel user reason)
    KICK #channel user :reason

To quit IRC (/quit reason)
    QUIT :Reason

To send a play sound request (/sound sound.wav description)
    PRIVMSG #channel :SOUND sound.wav [description]

To send some form of ctcp (/ctcp somectcp boo)
    PRIVMSG #channel :somectcp boo

To send some form of ctcp reply
    NOTICE #channel :somectcp boo

To ping a user, there are 2 ways, typically a "ctcp" is used
Although you can use the IRC server to get you a reply, rarely is this used.
A ping works in 2 stages, a user sends a ping request to a user or channel,
typically with a random letter/number sequence to identify a unique ping reply

Then that user replies with either an internally calculated (or generated) reply,
or it simply sends a ping reply using the ping identifyer, and the person who requested
it calculates the time based on how long it took from sending the request to receiving a

To send a ping request (using ctcp)
    PRIVMSG user :PING 12345

To reply to a ping request (using ctcp, and letting the sender do the calculation)
    NOTICE user :PING 12345

To reply to a ping request
(using ctcp, and using your own calculation, with various example replies)
    NOTICE user :PING 1 secs
    NOTICE user :PING 1 seconds
    NOTICE user :PING 1 mins
    NOTICE user :PING 1 minutes
    NOTICE user :PING 1 hours
    NOTICE user :PING 1 days
    NOTICE user :PING Go away evil pinger

The following commands work, but for some reason or another they are not
implemented by most IRC clients. I am not sure how accurate these are.
To send a ping request (using the server)
To ping a particular server
    PING pingID
To just ping the default server
    PING pingID
To just ping a server:
The server will reply eventually, and if you count the seconds to the reply, this
will tell you how lagged that server/user is.

Many servers offer many other unique commands, for a list type