gwalla's Quick & Dirty Guide to IRC

Learn to IRC Like a Pro in 2 Minutes or Less*


*...or more

Table of contents

What is IRC?

IRC stands for Internet Relay Chat. It's the oldest, largest, and most well-established text-based chat system on the 'Net. In fact, it's one of the most popular services on the Net as a whole, just behind the Web and email.

First things first:

To connect to IRC, you need an IRC client. An IRC client is to IRC as a web browser is to the web--it's a program that lets you connect up and use the service. The most common client on Windows is mIRC, with the more powerful but less user-friendly pIRCh close behind. Unix users have a whole lot of choices: ircII, BitchX, XiRCoN, xchat, etc. The most prominent clients on Mac are ircle and ShadowIRC. The Mozilla internet suite project (which is the basis of Netscape 6+, Beonex, and some other browsers) includes an IRC client called Chatzilla (Netscape 6+ doesn't include it by default; NS6+ users have to install it separately from mozilla.org if they want to use it). If you don't want to download a whole IRC client, there are also clients written in Java and available as applets on the web: Nightstar offers a pretty full-featured one called eirc here, and Keenspot has a very rudimentary one called jIRC at www.keenspot.com/chat.

Most of what I'm going to cover are general IRC concepts that apply to all clients. However, when I get client-specific, I'm going to go with what I know and mostly cover mIRC, eirc, xchat, and some jIRC. I don't want to leave anybody out in the cold, but I really have no experience with Mac clients. Sorry.

Connecting to IRC:

Now that you have a client, or are on a page with a Java client, you need to connect to IRC. There are several different IRC networks, each with their quirks. The one I spend most of my time on, and the one I have the most experience with, is the Nightstar.net network. Nightstar is at us.nightstar.net. Most of this howto applies to all networks--I'll tell you when I'm talking about something specific to Nightstar.

In jIRC, it's pretty simple: type your preferred nickname into the text box labelled "nick", the server address (us.nightstar.net) into the text box next to the word "server", and the channel name (#webcomics) in the box next to the word "channel". Click on "Connect" and you're ready to rumble.

In eirc, it's even simpler. Just click on the link for the channel you want to join. It's already set up to use the Nightstar network.

mIRC is a little more complicated. The first thing you should see after you've clicked past the splash screen (the window with a photo of a dorky-looking guy in the corner) is the options window. In the "Category" box, "Connect" should be highlighted. Go to the second pull-down menu from the top and select "Nightstar: Random Server". Fill your info into the text boxes (note: you don't have to use your real name in "Full Name", a lot of people put quotes or dumb jokes in there), most importantly putting your preferred nick in the box labelled "Nickname" and a good alternate in the "Alternate" box. I would recommend clicking in the "invisible mode" box as well, but you don't have to (I'll explain why later). Click "Connect to IRC Server" and you should be in. If you have problems connecting, try typing "/server us.nightstar.net" in the Status window.

In xchat, when you start the program the first thing you see will be a list of networks, which can be expanded to show servers. Find the one called Nightstar, click on it, and click Connect. If you can't find it, click New Server, and in the dialog that pops up fill in the server name ("Nightstar") and server ("us.nightstar.net"), and click OK.

Terminology note: what other chat services call "chatrooms" are called "channels" on IRC. It's an older term that comes from CB radio. Channel and Chatroom are pretty interchangeable, but some people can get pedantic about it.

Now that you've connected:

With jIRC and eirc, you're home free--signing in automatically sets you in a channel. With mIRC, however, the first thing you do is click out of that silly list of channels that pops up. Almost none of the preset channel names in there are in use on Nightstar. I believe there's a checkbox that says "Don't show this again"--click it, that window is just an annoyance. Now that that's over with, type "/join #webcomics" and press enter to join the Webcomics channel (the # symbol is how IRC tells channel names apart from user nicks--for example, "#crfh" is the College Roomies from Hell channel, while "crfh" is Maritza Campos. There are other symbols that also denote channels, but they're rare and fairly unimportant). In xchat, you don't have to worry about a popup window, just type "/join #webcomics".

You're in the channel, now what?

Go ahead and talk! Anything you type in the channel is sent once you hit return. However, there's one caveat: if you start the line with a slash ("/"), your IRC client will interpret that as a command.

The most common command is the action. If you start your message with the word /me, it will broadcast your message in the third person: for example, if I, gwalla, type "/me does jumping jacks", it will show up in the channel as "* gwalla does jumping jacks", sometimes in a different color depending on the client. (Note: be sure you write your actions in the third person, instead of falling back on the first person, since it's supposed to be describing something you're doing as if the other people in the channel are seeing it. It's a common mistake to write something like "/me goes out to get myself a drink", which would show up in-channel in my case as "* gwalla goes out to get myself a drink", which sounds awkward)

To change your nickname, you use the /nick command. The next word after /nick becomes your new nick: e.g., if I want to show that I'll be away from the computer for a while, I'd type "/nick gwalla-afk" to change my nick to gwalla-afk (AFK stands for "Away >From Keyboard").

If you want to join another channel, use /join. Put the channel name after /join, like this: /join #webcomics. If the channel doesn't exist yet, it will be created and you'll become its first op--I'll tell you what that's all about in the next section. Some active channels on Nightstar are: #crfh (College Roomies from Hell), #webcomics (chat about online comics in general), #Nightstar_bar (general chat), #Nightstar (IRC help), and #itswalky! (the online comic(s) Roomies and It's Walky! by David Willis).

If somebody is bothering you, most clients have an /ignore command (jIRC, being the barest of bare-bones clients, doesn't have this luxury). To prevent any messages from a specific user from showing up in your client, type /ignore followed by the nick of the offending party.

If you ever want to leave a channel, you use /part. Put the name of the channel after /part: to leave #webcomics, you'd type "/part #webcomics". If you want, you add a message after the channel name, which will show up as a "parting message".

If you want to log off, you use /quit. You don't have to type anything after /quit, but like /part you can add a message if you like.

Finally, /help is implemented in most clients as a way to access help pages. mIRC has very comprehensive help files, while jIRC users are pretty much on their own in this respect. mIRC also allows you to specify what you want help on by adding parameters to /help: for example, to get help on the /ignore command, you'd type "/help ignore".

Why do some people have an @ sign in front of their names?

In the list of users on the channel, some are prefixed with an @ and usually show up at the top of the list. These are the channel operators, commonly called chanops or just ops. The ops run the channel--they can kick people out, ban people from entering, change the channel's modes, and more. They're there to keep the channel running smoothly.

On some channels, you'll see some users with a + sign in front of their nicks. This is called "voice", and it's really only meaningful on moderated channels (channels with the mode "m" set), where it means that they are allowed to speak. On unmoderated channels, it's usually just there for show. In #webcomics, for example, it's used to denote active webcomic artists.

Registering nicks:

In general, on IRC, you are allowed to use any nick you'd like as long as no one else is using it at the same time. However, on Nightstar (and many other networks), it is possible to register your nick so that you are the only user allowed to use it. To do this, type:
 
/nickserv register <password>
 
with your preferred password in place of <password>. If you get a message saying that your client doesn't understand the command, use this instead:
 
/msg nickserv register <password>
 
Then, every time you log in with that nick, the first thing you should do is type:
 
/nickserv identify <password>
 
or
 
/msg nickserv identify <password>
 
using the password you gave when you registered. If you're using mIRC, you can set it up to do so automatically when you connect. Go into the "Options" window (the little icon in the upper left hand corner with a hammer and folder opens that window), and click on "Perform" under "IRC" in the Category box. In the large text box, type the proper identification command. Then click in the little checkbox that says "On connect, perform these commands:" and click OK. If you're using xchat, you can also do this. Go into the Servers window (the one that appears when you start the program--if you're already on a network, go into the X-Chat menu ad select Server List). Click on the server you will be using, and click Edit. In the text box labelled "Connect Cmd:", type the identification command, and click OK.

On Nightstar, it is possible to link several nicks so they are all treated as the same. To do so, register both nicks (here I'll call them nick1 and nick2) first. Then, as nick2, type:
 
/nickserv link nick1 <password for nick1>
 
with the password you gave when registering nick1 (or replace /nickserv with /msg nickserv, if necessary).

Here's the most useful thing about registering. Sometimes, due to certain conditions on the Internet, you get disconnected from the server, reconnect, and find that your nick is still in use. In other words, you got disconnected, but the server hasn't found out yet and thinks your old connection is still active. If you haven't registered the nick, you'll have to wait for the old connection to die (which could take a while), but if you've registered your nick, you can take the initiative and have it killed. To kill off a "ghost" like that, use the ghost-kill command:
 
/nickserv ghost <nick> <password>
 
with the ghost's nick and your password in the appropriate places. This will cause NickServ to force that connection to terminate, allowing you to change your nick back (with /nick) and go about your business.

Help! I forgot to identify, and NickServ changed my nick and won't let me change back!

If you forget to identify for your nick, NickServ may change your nick (on Nightstar, it will change your nick to NSGuest-#, where # is some number). It will also create a "phantom user" called a "hold" with that nick so obody can use it for a short period of time--this is to prevent people who haven't registered for the nick from simply changing their nick back each time they get the boot. The ghost command can't get rid of the hold. Instead, you have a couple of options: wait until the hold disappears by itself, or use the NickServ "release" command: /nickserv release <nick> <password>, which will remove the hold immediately. Once the hold is gone, you can change your nick back. However, remember that you will still have to identify once you've recovered the nick, otherwise NickServ will give you the boot again.

What's that little +x in my title bar for?

When you're in the status window in mIRC, your user modes show up in the title bar. The "+x" is a special mode that means that part of your computer host name is hidden, preventing malicious users from finding your IP address and pingflooding you or cracking into your computer. You can turn it off by typing "/mode -x", although I recommend you keep it on.

If you clicked the "invisible mode" checkbox in mIRC, it'll also have an "i" in the list of modes. This prevents you from showing up in lists of all users on the network. So, to talk to you, somebody either has to join a channel you happen to be on or already know your nick. If you have this mode set, you are much less likely to get random messages from people you don't know asking you if you want to chat. You can turn it on by typing "/mode +i" and off with "/mode -i". It's nice to have.

The last usermode you can set on yourself is mode "w", which allows you to see "wallops" messages, which are messages that administrators occasionally send out, usually joking around with each other. Almost nobody uses wallops on Nightstar. It's entirely useless. Don't bother.

Other user modes exist, but are reserved for admins and IRC operators (called IRCops, or opers, these folks help run the network, but unlike the admins they don't have physical access to the servers). You won't be able to set these on yourself, and they're really not that interesting to anyone who isn't running the show anyway.

So, what about the weird characters in the title bar when I'm in a channel?

When you're in a channel, mIRC shows a bunch of characters like "+nrst" in the title bar along with the name of the channel and the topic. These are channel modes, which give the channel special characteristics. They can only be set by the ops. Here's what they mean:

As well as these general modes, there are a few that affect specific users. These don't show up in the list of modes: +o gives a user op status, +v gives a user voice, +b bans a user (prevents them from entering the channel or, if they are in the channel, prevents them from speaking).

What is ChanServ?

ChanServ, along with its partners NickServ and MemoServ, is a program that runs on the network with special priviledges. Its job is to maintain channels that have been registered with it. It automatically gives ops to the channel founder and other users designated by the founder. Nightstar's ChanServ is quite sophisticated, and allows a lot of customization in how each channel is run: users are assigned access levels, and access to specific features are allowed based on level. This can be anything from automatically giving voice to automatically opping, to even more powerful options. However, unless you're an op in a registered channel, you really don't need to worry about it too much.

MemoServ, for what it's worth, allows you to send short messages to other registered users even if they aren't logged in. It's sort of like email, although the messages can't be long. It is useful in certain circumstances, for example if you need to get in contact with someone but are rarely on at the same time as they are, and you don't know their email address.

To get more info on the services, type /nickserv help, /chanserv help, or /memoserv help. The help files can also be accessed on the web: NickServ,ChanServ, and MemoServ.

Private chat:

As well as chatting on channels, it's possible to chat privately with individual users. mIRC and jIRC both allow you to double-click on a user's nick in the list of names on a channel to open a new window for chatting with that person. You can also type "/msg <nick> <message>" on any client. On most clients, each private chat gets its own tab (window in jIRC).

Pinging and lag:

It's possible to check out certain facts about another user through a feature called CTCP. The most basic CTCP command is the ping, which is used to check the network lag time between yourself and another user. Just type /ping followed by the nick of the person you're pinging and you'll receive a notice (in your status window if you're using mIRC) with the target nick and the time it took for the ping to get there and back. It's possible to ping everyone on a channel if you put the channel name as the target of your ping, which is a good way of comparing lag times to see how much lag is on your end. Note that jIRC users are out of luck on this: jIRC doesn't display the time elapsed, which makes pings pretty useless--it doesn't reply to other people's pings at all. Some people are irritated by unannounced pings, especially pinging an entire channel or pinging repeatedly, so it's best to ask unless you know the subject doesn't mind.

There are other CTCP commands besides ping: TIME gets the time on the target user's computer, and VERSION gets the name and version of the target user's client. These don't have their own commands (/time and /version do something else entirely), so you need to send them with the /ctcp command:
 
/ctcp TIME
 
and
 
/ctcp VERSION
 
respectively. There are other standard CTCP queries, like CLIENTINFO (lists CTCPs supported by the target), FINGER (almost never used), and USERINFO (user data--the target must be specially set up to respond to this), but they're rare and not particularly useful. The /me command is actually the ACTION CTCP, but typing "/me does something" is faster and easier than typing "/ctcp #<channel name> ACTION does something".

It's also possible to make up your own CTCP commands, although you shouldn't expect any sort of meaningful response: the /ctcp command can be used with any message.

Trading files:

It's possible to trade files over IRC using a feature called DCC (which stands for Direct Client Connection). Once again, jIRC users are out of luck. mIRC has a nifty little menu just for this purpose. Just select "Send" in the DCC menu and a dialog box will pop up. Type the target nick in the "nick" text box and select a file to send just like in any other file dialog. The other user has to accept the file before it gets sent. DCC is fairly convenient and trustworthy for moderately-sized files like text, graphics, or short sounds--for longer files like movies, you'll want to use another means of transmission.

You can also use DCC to chat. The main difference between regular private chat and DCC chat is that DCC chat, once started, is independent of the IRC network itself--even if the entire IRC network crashes, or one or both of the people chatting disconnect from the server, the chat will be unaffected.

WARNING!!! : DCC works by trading IP addresses, then creating a direct connection between the two computers that bypasses IRC completely. This means that it's fairly easy for somebody to get ahold of your computer's IP address this way. Do NOT accept any DCC file or request for DCC chat unless you are sure that you can trust the other person.

A bunch of people just quit without warning. What gives?

Sometimes a bunch of users will seem to all quit at once with cryptic-looking quit messages. What happened is that their server has lost contact with your server. This is called a "netsplit", since it splits the IRC network into two pieces. The strange quit message is actually the addresses of the two servers that lost contact.

IRC works through a group of servers. Each server is connected to one "hub" server. Any number of servers may share a hub. If a hub crashes, or two servers lose a connection, then any servers connected to each other through that hub (or connection) will no longer be able to see each other on the network.

Why did I just get cut off?

A couple of things may have happened. One is that your computer may have lost contact with the server due to conditions on the Internet itself. Another is that the server you were connected to crashed (hey, it happens). When this happens, just try to reconnect. If you can't, the server is probably down. If you can, it was just an Internet glitch.

Sometimes if you reconnect after being cut off, you'll get a message saying that your nick is already in use. This means that the server hasn't realized that you were cut off, and still thinks your old connection is active. In this case, use the NickServ Ghost command (see the intro to NickServ) if your nick is registered. If your nick isn't registered, just use a different nick until the server drops your old connection.

What's up with the quit message "Connection reset by peer"?

This quit message comes up when the server can't contact a connected client. See the previous section.

Common abbreviations and shorthand:

There are loads of abbreviations used all of the time on IRC. Most are fairly common to the Internet as a whole, showing up in email, newsgroup postings, web-based discussion forums, etc. You probably already know those, so I won't repeat them. There are a few that are specific to IRC (or at least to chat):

This is a work in progress. If you have any questions or suggestions, I'll add them.