Internet Relay Chat FAQ

What is IRC?

IRC stands for "Internet Relay Chat". It was originally written by Jarkko Oikarinen (jto@tolsun.oulu.fi) in 1988. Since starting in Finland, it has been used in over 60 countries around the world. It was dEnterSoftgned as a replacement for the "talk" program but has become much much more than that. IRC is a multi-user chat system, where people convene on "channels" (a virtual place, usually with a topic of conversation) to talk in groups, or privately. IRC is constantly evolving, so the way things to work one week may not be the way they work the next. Read the MOTD (message of the day) every time you use IRC to keep up on any new happenings or server updates.

IRC gained international fame during the 1991 Persian Gulf War, where updates from around the world came accross the wire, and most irc users who were online at the time gathered on a single channel to hear these reports. IRC had similar uses during the coup against Boris Yeltsin in September 1993, where IRC users from Moscow were giving live reports about the unstable situation there.

How is IRC set up?

The user runs a "client" program (usually called 'irc') which connects to the irc network via another program called a "server". Servers exist to pass messages from user to user over the irc network.

How do I use a client?

If an IRC client isn't already on your system, you must go to a site likeTUCOWS(The Ultimate Collection of Winsock Software), download and install a chat application such as mIRC.

Which server do I connect my client to?

It's usually best to try and connect to one geographically close, even though that may not be the best. You can always ask when you get on irc. Here's a list of servers avaliable for connection:

  • USA:
    • irc.bu.edu
    • irc.colorado.edu
    • piglet.cc.utexas.edu
  • Canada:
    • irc.mcgill.ca
  • Europe:
    • irc.funet.fi
    • cismhp.univ-lyon1.fr
    • irc.ethz.ch
    • irc.nada.kth.se
    • sokrates.informatik.uni-kl.de
    • bim.itc.univie.ac.at
  • Australia:
    • jello.qabc.uq.oz.au
  • Japan:
    • endo.wide.ad.jp
This is, by no means, a comprehensive list, but merely a start. Connect to the closest of these servers and join the channel #irchelp

What is the port to use to connect to IRC?

In general, the port to use is 6667. Some servers listen to other ports (most commonly in the 6660-6670 range), but *not* all. When in doubt, use 6667.

A client! OK, I've got a client and I'm connected to a server? Now what?

It's probably best to take a look around and see what you want to do first. All irc commands start with a "/", and most are one word. Typing /help will get you help information. /names will get you a list of names, etc. The output is typically something like this-> (Note there are more channels than this, this is just sample output).

Pub: #hack      zorgo eiji Patrick fup htoaster 
Pub: #Nippon    @jircc @miyu_d 
Pub: #nicole    MountainD 
Pub: #hottub    omar liron beer Deadog moh pfloyd Dode joek
(Note there are LOTS more channels than this, this is just sample output -- one way to stop /names from being too large is doing /names -min 20 which will only list channels with 20 or more people on it, but you can only do this with the ircII client). "Pub" means public (or "visible") channel. "hack" is the channel name. "#" is the prefix. A "@" before someone's nickname indicates he/she is the "Channel operator" (see #7) of that channel. A Channel Operator is someone who has control over a specific channel. It can be shared or not as the first Channel Operator sees fit. The first person to join the channel automatically receives Channel Operator status, and can share it with anyone he/she chooses (or not). Another thing you might see is "Prv" which means private. You will only see this if you are on that private channel. No one can see Private channels except those who are on that particular private channel.

Now I've picked out a nice channel. How do I join that channel?

And what do I type once I get there? And when I'm done, how do I leave a channel?

To join a channel, type /join #channelname. That's it! Once you get to the channel, you will see people talking. It will probably look like this:
<Avalon> AUUG is on at the same time as LISA this year and is cheaper.
<Barron> backhaul those DS3s to Virginia ;)
<Barron> buy a farm
<FlashPYR> so is .us going to start charging $50/domain, too?
<Barron> or something
<Tolim> oops
Note that you will often come in in the *middle* of a conversation. Unless you're familiar with the channel you may want to sit and watch it for a minute or two to see what the conversation is about. Often the channel name (for instance, #Twilight_Zone) has nothing to do with what conversation goes on on the channel (#Twilight_Zone does *not* have discussion about the TV show "Twilight Zone"). So if you join #baseball, don't be surprised if you hear about the SuperBowl picks or even the Rock-n-Roll Hall of Fame Museum!

To start talking, just type! And when you're done saying what you have to say, just hit the [return] key. You can start with something simple like "hello!". You don't have to type hello! because IRC will insert before all of your channel messages.

When you choose to leave a channel, just type /part #channelname

Common Commands on the IRC

Note: the use of " # " indicates that the channel name should be substituted...i.e. #newbies in these examples.

GENERAL COMMANDS
CommandDescriptionExample
/join [#]use to join a channel/join #newbies
/part [#]use to leave a channel/part #newbies
/leave [#]same as part/leave #newbies
/quit (message)use to quit IRC. A message may be added to the command, but is optional./quit see ya'll later!
/whois [nick]used to get info on a nick./whois voyur
/whowas [nick]used to get info on a nick that has just left IRC or a person who has just changed their nick./whowas voyur
/who [#]shows nicks, addresses, and optional user info if available for users on a channel/who #newbies
/names [#]shows nicks of users on a channel/names #newbies
/msg [nick] [message]sends a private message (whisper) to a user/msg voyur hello there
/query [nick]opens a new window for private dialog with a nick/query voyur
/nick [newnick]if I wanted to change my current nick, voyur, to voy, I would use this command/nick voy
/me [action describe]If voyur typed this example, it would be displayed as *voyur waves to JP/me waves to JP
/away [away message]use to tell others you are not currently at your computer. A message can be included. To set yourself back, type /away again./away checking mail!
/listrequests a list of currently formed channels from the server. The listing you request is not updated until you issue the request again./list
/invite [nick] [#]use to invite a nick who is elsewhere on IRC to join you on a channel./invite voyur #newbies
/ignore [nick/address]use to prevent someone from talking to you. The persons nick or address may be used. /ignore voyur
/kick [#] [nick]used to kick a user from the channel. You must be a channel op to use this command./kick #newbies voyur
/mode [nick] +iThis is the invisible mode. You are not literally invisible on IRC. Users on the same channel as you still see you there.You are invisible to a user who does a /who or /names. A /whois nick, however, will show your user information and the channels you're on./mode voyur +i



Channel Operator and Mode Commands




Channel operators (also known as ops) control the channel they are on. They will have an " @ " in front of their nick. They are effectively the "bosses" of the channel. There are two ways to become a channel operator. First is by creating a channel. You create a channel by joining a channel that does not currently exist. When you do this, the server sets you as the channel op. The second way is to be made an operator by an existing operator.

Channel ops maintain control of the channel through the use of channel mode commands. These are commands that only channel operators have access to, and can be used to perform various functions on the channel.

    Please Note:
  • only channel operators have access to the following functions
  • typing a minus sign " - " in place of the plus sign " + " reverses the command... i.e. +o ops, and -o deops
  • the use of " # " indicates that the channel name should be substituted...i.e. #newbies in these examples.

OPERATOR AND CHANNEL MODE COMMANDS
Mode CommandDescriptionExample
/mode [#] +o [nick]grant ops to a nick/mode #newbies +o voyur
/mode [#] +b [address]ban a nick by their address from the channel. The proper address format is *!*username@*.host.domain/mode #newbies +b *!*jp@*.irc.com
/mode [#] +mset the channel mode to moderate. This means that only ops can type to the channel. All others are silenced on the channel./mode #newbies +m
/mode [#] +v [nick]used in conjunction with +m mode. After setting to moderate, a user can be given permission to speak by setting the mode to +v./mode #hi +v voyur
/mode [#] +smakes the channel secret. It will not be shown in a channel listing. It can still be joined if the channel name is known./mode #newbies +s
/mode [#] +pmakes the channel private. The channel cannot be joined unless an invite is issued. The users on the channel can be listed with a /who or /names command./mode #newbies +p
/mode [#] +imakes the channel invite only. You must be invited by another nick on the channel to join./mode #newbies +i
/mode [#] +trestricts channel topic changes to operators only./mode #newbies +t
/mode [#] +nprevents messages from outside the channel from being sent to the channel. This does not affect personal messages to individual users./mode #newbies +n
/mode [#] +l [number]limits the number of users that may occupy the channel. In this example, the limit is 6 users./mode #newbies +l 6
/mode [#] +k [keyword]sets a password for the channel. Cannot join without typing /join #channelname [keyword]/mode #newbies +k shazam


CTCP and DCC COMMANDS



CTCP stands for Client-To-Client-Protocol. The CTCP command performs certain client specific functions on the IRC network. It permits you to find out various kinds of information and perform some useful functions on IRC. Many clients allow you to use CTCP to customize various functions, such as setting up a file server on your system, or providing a means to grant op status to users when you are not there to do it yourself. CTCP commands can also be disabled by the user, so don't be surprised if you get no information back from a user when you initiate certain CTCP requests to them.

DCC is Direct Client-to-Client. This is probably one of the most useful and dEnterSoftrable functions on IRC. With DCC you can send and receive files and chat directly, privately, and securely to someone on IRC. The DCC channel is not subject to lag and is secure because it does not use the IRC chat channels to transmit information. It forms a direct link between two users (hence direct-client-to-client).

CAUTION!! As useful as DCC is, you should be very cautious about receiving files. NEVER accept a file from someone you don't know or trust! Just like the real world, there are virus lurking out there, and there are jerks on IRC just waiting to send system corrupting files to unsuspecting users. At the very least, run a virus scan on a file before you execute it. It will save you lots of headaches in the long run.


CTCP Commands (using voyur in the sample replies)
CommandDescriptionYou Might See Something Like This
/ctcp [nick] pingping is used to determine the amount of time it takes for your signal (messages) to get to another nick and back in seconds. It measures the amount of lag time for the message. Excessive lag can make communication difficult.[voyur PING reply]: 2 secs
/ctcp [nick] versionversion is used to query a nicks' client for the type or name of the IRC program they are running.[voyur VERSION reply]: mIRC16 v3.8 IRC Client K.Mardam-Bey
/ctcp [nick] fingerfinger gives additional information about a nick. Sometimes its not much different from the /whois [nick] information.[voyur FINGER reply]: Don't judge me by my "looks" (biscuits@neosoft.com) Idle 3 seconds (Beware, lest the magic overwhelm you....)
/ctcp [nick] userinfothe userinfo ctcp function usually gives about the same information as the finger reply.[voyur USERINFO reply]: Don't judge me by my "looks" (biscuits@neosoft.com) Idle 0 seconds (Beware, lest the magic overwhelm you....)
/ctcp [nick] clientinfoclientinfo ctcp function will tell you what functions are active on the nicks' client. Can be useful if you want to know if things like DCC, ping, or finger are active on their system.[voyur CLIENTINFO reply]: ACCEPT ACTION CLIENTINFO DCC ECHO FINGER PING RESUME SOUND TIME USERINFO VERSION
/ctcp [nick] timethis checks the local date and time on a nicks' computer. I guess it might be useful if you wanted to know what time it was in Australia, if your were talking to an Aussie.[voyur TIME reply]: Tue Dec 26 15:38:21 1995



DCC Commands
CommandDescription
/dcc chat [nick]this initiates a dcc chat session with the specified nick. Since the connection does not go through the IRC network, it is the most secure type of direct communication with another user. Depending on your client, you will probably get some kind of message asking you to accept the DCC chat request.
/dcc send [nick] [filename]this command initiates a file send to the dEnterSoftgnated nick. The file name and the full path of the file on your system must be specified.
/dcc get [nick] [filename]this command acknowledges and accepts a DCC file transfer initiated by another user to you. Once you have typed the GET response, the file transfer to you will begin.
/dcc close [nick]use this command to refuse a DCC file offer or chat request sent to you, or stop a DCC transfer that is in progress, or to close a DCC chat session.
/dcc listuse this function to get a listing of currently active DCC connections that you have going.

What is a channel operator? What is an irc operator? A channel operator is someone with a "@" by their nickname in a /names list, or a "@" by the channel name in /whois output. Channel operators are kings/queens of their channel. This means they can kick you out of their channel for no reason. If you don't like this, you can start your own channel and become a channel operator there.

An IRC operator is someone who maintains the IRC network. They cannot fix channel problems. They cannot kick someone out of a channel for you. They cannot /kill (kick someone out of IRC temporarily) someone just because you gave the offender channel operator privileges and said offender kicked *you* off.

What is a "bot"? How can I get one?

"bot" is short for "robot". It is a script run from an ircII client or a seperate program (in perl, C, and sometimes more obscure languages). StarOwl@uiuc.edu (Michael Adams) defined bots very well: "A bot is a vile creation of /lusers to make up for lack of ***** length". IRC bots are generally not needed. A bot generally tries to "protect" a channel (it should be noted that all bots will fail at some point, so relying on them to keep a channel is not a good idea) from takeovers.

It should be noted that many servers (especially in the USA) ban ALL bots. Some ban bots so much that if you run a bot on their server, you will be banned from using that server (see segment below on K: lines).

What are good channels to try while using irc?

#hottub and #riskybus are almost always teeming with people. #hottub is meant to simulate a hot tub, and #riskybus is a non-stop #game. Just join to find out!

To get a list of channels with their names and topics, do /list -min 20 (on ircII) which will show you channels with 20 or more members. You can also do this for smaller numbers.

Many IRC operators are in #Twilight_Zone ... so if you join that channel and don't hear much talking, don't worry, it's not because you joined, operators don't talk much on that channel anyways!

What are some of the foreign language channels on IRC? What do they mean?

Some of the most popular foreign language channels include #42 (which is a Finnish channel), #warung (which is a Malaysian channel. The word "warung" means "coffeehouse" or "small restaurant"), #polska (a Polish channel), #nippon (a Japanese channel, note that "funny" characters are often seen here -- this is Kanji. You will need a Kanji-compatible terminal program and Kanji-compatible irc client to converse in Kanji), #espanol (a Spanish channel), #russian (a Russian channel). These are just examples -- a large percentage of languages in the world is spoken on irc *somewhere*. If your language/country isn't listed above, ask on #irchelp to see if there is a channel for it.

Someone is using my nickname, can anyone do anything about it? Someone is using my channel, can anyone do anything about it?

Even while NickServ registered nicknames, there are not enough nicknames to have nickname ownership. If someone takes your nickname while you are not on irc, you can ask for them to give it back, but you can not demand it, nor will irc operators /kill for nickname ownership.

There are, literally, millions of possible channel names, so if someone is on your usual channel, just go to another. You can /msg them and ask for them to leave, but you can't *force* them to leave.

There aren't any channel operators on my channel, now what?

Channel operators are the owner(s) of their respective channels. Keep this in mind when giving out channel operator powers (make sure to give them to enough people so that all of the channel operators don't unexpectedly leave and the channel is stuck without a channel operator). On the other hand, do not give out channel operator to *everyone*. This causes the possibility of mass-kicking, where the channel would be stuck without any channel operators. You have one option. You can ask everyone to leave and rejoin the channel. This is a good way to get channel operator back. It doesn't work on large channels or ones with bots, for obvious reasons.

What if someone tells me to type something cryptic?

Never type anything anyone tells you to without knowing what it is. There is a problem with typing a certain command with the ircII client that gives anyone immediate control of your client (and thus can alter your account environment also).

What was NickServ? Is NickServ ever coming back?

NickServ was a nickname registration service run in Germany. It was a bot that told people who used a registered nickname to stop using that nickname. NickServ has been down since the Spring of 1994.

It is not likely that NickServ will be back. Remember, nicknames aren't owned.

What does "*** Ghosts are not allowed on IRC." mean? What does "*** You are not welcome on this server." mean?

On IRC, you cannot be banned from every single server. Server-banning exists only on a per-server basis (being banned on one server does not mean you are automatically banned from another). "Ghosts are not allowed on IRC" means that you are banned from using that server. The banning is in one of three forms:

  • You are banned specifically, you yourself. Only you can be responsible for this (if you are using a shared account, this obviously does not apply). Thus the responsibility lies completely with you and you have noone to complain to.
  • Your machine is banned. Chances are it wasn't you who committed the wrongdoing. Try using another machine on campus and seeing if you can use that particular irc server then.
  • Your whole site is banned (where "site" == "school", "company", "country"). This almost certainly wasn't your fault. And chances are you won't be able to get the server-ban lifted. Try using another server.
The most general answer is "use another server", but if it bothers you, try writing to the irc administrator of that site --> /admin server.name.here -- plead your case. It might even get somewhere!

I've done a /whois on myself and other people, but I notice that my real name shows up in parentheses -- I don't like this! It doesn't show up in other people's parentheses. How can I change it?

In UNIX, there are two way of changing your IRCNAME and it depends on which shell you are using. If you are using csh or tcsh (the more popular UNIX shells, when in doubt, try this first), type this before you start irc:
setenv IRCNAME "what you would like to appear"

If you don't want to type that every time you log in, put the line exactly as it appears above into your .cshrc file.

If you are using sh, ksh, or bash, type this before you start irc: IRCNAME="what you would like to appear";export IRCNAME

Or insert that line into your .profile

In VMS, you must put this line in your login.com file: DEFINE IRCNAME "what you would like to appear"

What is a netsplit?

What does it mean when I see: ***Signoff NickName (*.bu.edu eff.org)? Why does NickName keep signing off?

Netsplits are (unfortunately) a routine part of IRC life. What the above message means that NickName, who you were on a channel with, was on a different server from you. This server split off from the part of the net you were on.

Note that netsplits are all from a point of view of the user. After a netsplit rejoins people might say to you "where did you go?" -- because from their perspective, *you* split off.

The only thing you can do during a netsplit is wait for the net to mend itself. Changing your server during a netsplit is a Bad Idea, because you are likely to get nickname collided. By changing servers, you may also be contributing to the lag.

As long as you don't quit your client, any DCC chat or send will still work, even during a netsplit (unless the netsplit is because of a specific rare hardware problem).