Internet Relay Chat:
The Forgotten Chat Frontier

by Paul Arnote

Internet Relay Chat, more commonly referred to as IRC, is one of the older chat services on the internet. IRC was started in 1988 (10 years before Yahoo! released Yahoo! Pager, the forerunner of Yahoo! Messenger). It didn't really take off until 1991, during the Gulf War, when updates about the war kept users "tuned in" to their IRC chat channels.

However, due to the popularity of instant messenger programs, like Yahoo! Messenger and MSN Messenger, IRC has became the forgotten frontier for a lot of computer users. Even today, it lives deep in the shadows of the various Internet social networking sites. In a lot of ways, IRC was the Internet social network of its time. I know this was the case for me, until I started frequenting IRC again (after a lengthy hiatus) when I started working on revitalizing the PCLinuxOS Magazine.

The Past

Back in 1996, when I was still running Windows 95® and before I knew about Linux, I was running mIRC, a then-popular IRC client, which is still popular among Windows users today. Yahoo! Messenger (initially known as Yahoo! Pager) was still two years from being released. ICQ would only just be released in late 1996. The only other way for people to "chat" across the Internet was via America Online, a.k.a. AOL. And, if you didn't have an AOL account, that left IRC as the only other way to chat with users who had interests similar to yours across the Internet.

Many of you may not have even been involved with computers at that time, and may not have even had a chance to use IRC, the grand-daddy of Internet chat who once ruled the roost. For those of you who fall in this category, you are in for a treat.

Living at the time in a very small, central Missouri town whose sidewalks literally rolled up at 7 p.m., IRC was my connection to the "outside world." For me, it was either watch TV or chat on IRC. Since I worked night shift at the hospital, my "waking hours" were what everyone else considered "sleeping hours." Thus, there wasn't much of anything of interest on late night on TV (it was even worse then, than it is now). So the choice was obvious. I'd log in to IRC and spend the evening, and long into the night, speaking with my "friends" — other "night owls" — on IRC.

I still have vivid memories of the excitement felt when I was able to chat, instantaneously, with another user from another country. Often times, conversations on IRC went late into the night, discussing every conceivable topic and solving the world's problems in the process. In 1998, I knew that I was moving from smallville, central Missouri, to the hustle and bustle of the Chigacoland area, in Northwest Indiana. So IRC helped me make friends in Indiana long before I ever moved there.

Then, when Yahoo! released their Yahoo! Pager software in 1998, it literally burst upon the scene with a fury. Everyone who was anyone was downloading and using Yahoo! Pager. For a while, I bounced between using Yahoo! Pager and my comfortable, old friend, mIRC. I kept with mIRC mostly, but more and more, Yahoo! Pager became my software of choice. After a while, I forgot about that old friend, mIRC. I would occasionally revisit that old friend, but the visits became less and less frequent, until they stopped altogether.

Fast Forward To The Present

Now fast forward to June, 2009 — 10 years later. I needed a better, faster, more immediate way to communicate with Archie, who truly lives half way around the globe from me. Brainstorming sessions simply aren't as effective via email; you need the immediacy offered by chat software. Late during my evening, Archie was just starting his day. And early in my day, Archie was just ending his day. We are literally, 13 hours apart right now, because of daylight savings time. So, Archie urged me to pop onto IRC.

Once there, things felt somewhat foreign, yet at the same time, there was something familiar about it all. My old friend was still there, behaving as it always did, despite me having forgotten the "lay of the land" and many of the once-familiar commands. It didn't take long, though, before I was remembering the old commands and navigating IRC much as I had 10 years earlier.

Today, IRC continues to serve its users. In fact, as recently as May, 2009, IRC was serving more than 500,000 users at one time, through hundreds of thousands of channels, operating on approximately 1,500 servers around the world.

You Can Join the Fun, Too — XChat

PCLinuxOS makes it easy for you to join in on the fun and discussions on IRC. In all full PCLinuxOS 2009 installations, there is a chat software client installed by default, called XChat. While there are other programs in the PCLinuxOS repository that allow you to connect to IRC (e.g., Konversation, Pidgin, Kopete, and kvirc, among others. There is even ChatZilla, an IRC plugin for Firefox.), we will restrict our discussion to how to use IRC via XChat. I'll leave the use of the other programs as something for you to experiment with.

Getting started with XChat is not difficult at all. When you first launch XChat, you will first be shown the IRC network window. It is here where you can decide which IRC network you would like to connect to. There are several IRC networks to choose from, but for our purposes, we'll leave it at the default, FreeNode. It's on the FreeNode server where all the PCLinuxOS IRC chat channels are located. But you should allow yourself to explore the other IRC networks. Back when I was a "heavy" IRC user, EFNet, DALnet, and UnderNet were all very popular IRC networks. I haven't yet re-investigated them, as I've been busy, and quite happy, participating in the discussions on the PCLinuxOS channels.

IRC channel names start with "#" at the beginning of their names. There are several PCLinuxOS channels already set up for you to chat in. The default, #pclinuxos, is more of a common area. It's open to everyone. You can engage in conversations with other PCLinuxOS users there, but don't ask support type questions in there. For support, there are two other channels: #pclinuxos-fixme and #pclinuxos-support. The fixme channel exists to help critteryou fix problems with your PCLinuxOS that may be preventing you from accessing your PCLinuxOS installation, or where you have limited abilities due to something that may have gone awry with an update. The support channel is for all other types of PCLinuxOS support questions. There is a channel for the PCLinuxOS Magazine, called #pclinuxos-mag, where everyone and anyone can join to discuss ideas and topics concerning the PCLinuxOS magazine. The #pclinuxos-package channel is set up for the PCLinuxOS packagers. If you are interested in joining the ranks of the packagers for PCLinuxOS, this may be the place for you to hang out. Then, there is #pclinuxos-naughty (no it's not what you think), which is a channel devoted to discussing PCLinuxOS and its variants. There are even channels specific for various members of the PCLinuxOS international community. For Polish users, there is #pclinuxos-pl, and for French users, they can chat — in French — in #pclinuxos-fr.

Simply pressing the "Connect" button in the first dialog box will get you connected, but we can do something here to improve your experience. First, enter your nick name that you want to use in IRC in the space at the top of the window. You can also alter the information displayed on the next four lines as you choose. Next, click on the "Edit..." button, and we can set up the IRC channels we want to automatically log into whenever we start XChat. On the line labeled "Favorite Channels:," list the channels you wish to automatically log into when you connect to the FreeNode IRC network. Separate multiple channels with a comma and a space. Again, the choices for the PCLinuxOS channels are:

  • #pclinuxos
  • #pclinuxos-dev (invitation only)
  • #pclinuxos-fixme
  • #pclinuxos-fr
  • #pclinuxos-mag
  • #pclinuxos-naughty
  • #pclinuxos-package
  • #pclinuxos-pl
  • #pclinuxos-support

Once you are done setting up your favorite rooms, select "Close" in the Edit dialog, then "Connect" in the Network List dialog box. You will now be connected to XChat, and be connected to the chat channels you set up as your favorites. Your XChat window should look something like this:

Although it's a matter of personal preference, we can modify this window to improve its appearance and increase its functionality. The default view is called "tree view." The "tree" on the left side of the window shows you all the channels you are connected to. My personal preference is for the "tab view," where the channels you are logged into appear as tabs across the bottom of the window. By using the "tab view," I gain more screen real estate, width-wise, for my message area (the center part of the window). To change to the "tab view," go to the Settings menu and select Preferences. This will bring up a dialog box as follows:

Highlight "Channel Switcher," and change the Switcher Type from "Tree" to "Tab," at the top of the dialog box. Hitting "OK" will change your window to something that looks like this:

While you are in the Settings > Preferences dialog box, poke around in there. You can change the font used to display the text in your message window, the color of your message text, the default directory where files shared with you are shared, specify a sound to play when you receive a message (only sound files with the *.wav file extension work), time-stamping the conversations, and lots of other settings. You can even set XChat to log all your conversations for later reference or posterity.

Do you notice how some tabs have light red text (the #pclinuxos channel in the screen shot)? The color changes to light red when there are newmessages/conversations in that channel. Do you also notice that some tabs are in dark red (the #pclinuxos-package channel in the screen shot)? Those indicate that someone has either joined or left the channel. If someone addresses you directly with your nickname, the channel tab will be highlighted in blue text. Tabs with black text have no new messages.

Also, take note of the horizontal red line in the message window. That red line means you were doing something else when that message came in, and the XChat window didn't have the focus at that time. It could be that you went to check on something on a web site, or you were typing a paper for school. To catch up on the conversation or follow what's happened since you switched away from IRC, just start reading after the red line.

The right side of the screen, whether you are using the "Tree View" or the "Tab View," lists the users who are also logged into that specific chat channel. Notice how some users have a green dot next to their name? These users are the "channel operators," or just "ops." Other IRC chat software may use an "@" symbol to designate the "ops" of the channel. Their job is to maintain order in the channel. Should you choose to not adhere to the channel rules and etiquette, you can either be "Kicked" (where you are kicked out of the channel for a period of time), or worse, "Banned" (where your IP address is recorded and you will not ever be allowed back into the channel). Only "ops" can "Kick" or "Ban" you. By the way, one sure way to get kicked out of an IRC channel is to log into IRC while you running your computer as the "root" user. You should never log into, or routinely run your computer, as the root user.

Also, when looking at the user pane, did you notice that one user at the top had a funny name (in the screen shot above, it's BabCom)? That is a "bot." Two other common names you are likely to see are "ChanServ" and "BTOB." The "bot" locks down that specific channel so no one can "steal it," and may perform other jobs, like logging whatever chats occur there, giving "ops" to certain users, monitoring the channel for adherence to the rules … pretty much whatever the "bot" author and user decides that they want the "bot" to monitor.

We can further enhance our chat window by placing buttons under the user list pane, allowing us to perform special functions with those users. By highlighting the name of a user, we can then hit any one of the six buttons down below. The Op, DeOp, Ban, and Kick buttons only function for those who are designated as an op in a channel. You can also send a file to someone in a similar way. Highlight the user's nickname that you want to send a file to, hit the Sendfile button, find the file you want to send, and hit OK. It's considered proper etiquette to let the other user know that a file is forthcoming. Highlighting the user's nickname and selecting the Dialog button opens a private chat with that user. Again, it's considered proper etiquette in some circumstances to ask the user's permission to send them a private message. Another use for this it to tell someone in the chat room something that you don't necessarily want everyone else to see or know about. We'll discuss another way of doing this when we talk about the IRC commands. You can display these buttons simply by clicking on the View menu, and selecting Userlist Buttons.

There is one other enhancement to your chat window that you may — or may not — wish to make. These are the Mode Buttons, accessible under the View menu. These buttons are usually only of use to those who have op status. To find out what each button means, simply hover your mouse over the button you want to know about.

With all these enhancements, this is what your XChat window will look like:

So now, it's time to get down to learning the commands that allow us to interact with IRC and its users.

IRC Commands

To interact with IRC, and its users, there is a set of commands that tells the IRC server what you want to do. They are relatively simple to learn and use. All commands are entered on the chat line, near the bottom of the chat window.

/join <channel-name>

This is the command we use to join a channel. Say you are in the middle of a chat session, and decide to check out another chat channel. Simply typing "/join checkers" (without the quotes) will allow you to join the chat channel named "checkers" (if it exists … my examples are only hypothetical).

/me <action>

If you want to let the rest of the channel that you feel faint, or that you are hot and sweaty, or anything else, this is the command to use. Typing "/me feels faint" (again, without the quotes), will display "*parnote feels faint" in the message window. The action can be whatever you want it to be. Just remember to keep it appropriate for the channel you are chatting in, or you may be finding yourself either kicked or banned from a channel.

/msg <user> <message>

To send a private message to another user, use this command. If you type "/msg parnote I need to tell you something" (without the quotes) will send me, parnote (my nickname in IRC) a private message that no one else in the channel can see. In XChat, the user you sent the message to will have their nickname surrounded by reversed brackets, e.g., >parnote<. If the user responds to you, it will be in a new tab at the bottom of the XChat window. In some channels — like a singles channel — it's customary, and proper etiquette, to ask someone permission to send them a private message before doing so.

/nick <new-nickname>

If you want to change your nickname in the middle of your chat session, enter "/nick TheGrimReaper" (without quotes) to change your nickname to "TheGrimReaper." Be sure your nickname is appropriate for the channel you are chatting in (and all the PCLinuxOS channels are considered "family" channels). Otherwise you may find yourself kicked or banned from a channel.

/notice <user> <message>

Similar to the /msg command, this command sends a message to another user, but without opening a private chat window.

/part

To leave a channel, simply enter "/part" on the message entry line. To leave all of the channels you are currently chatting in, enter "/partall" on the message entry line.

/ping <user>

Entering "/ping parnote" will give you the ping time, or lag time, between you and the person you pinged. Of course, you would replace my nickname with the nickname of the user you are wanting to ping. Lag time is the amount of time it takes from the time you type a message and it appears for others to read your messages.

/quit

Typing "/quit" on the message entry line causes you to leave IRC altogether, disconnecting you from the IRC server.

/ignore <user!*@*>

Sometimes, you may encounter someone who really, really annoys you. Or maybe there's someone who has a habit of harassing you. Or maybe there's some user that you just don't want to receive messages from (an ex girlfriend, boyfriend, wife, or husband perhaps?). This command allows you to ignore the specified user. Just enter "/ignore billybob!*@*" to ignore the user with the nickname "billybob." To ignore all users with "billybob" as a part of their nickname, enter "/ignore billybob*!*@*" and "billybob," "billybob25," and "billybobruns" will all be ignored. Adding NOSAVE at the end of the line will make the ignore command only effective for that chat session, and remove the ignore when you quit IRC. There are many other options for this command, and you can read about them by following the links at the end of this article.

/unignore <user!*@*>

If you change your mind about ignoring someone, this command reverses the ignore command. It uses a syntax similar to the ignore command. So, if you decide that you would like to see messages from "billybob" again, just enter "/unignore billybob!*@*" on the message entry line.

/chat <user>

Sometimes, you may want to engage in a private chat with another user, independent of the IRC network. The "/chat timothy" command will send a DCC Chat request to the user "timothy," and if he accepts, you can continue to chat, even if you get get disconnected from the IRC server. Warning: do NOT accept any DCC request, whether it's for chat or file sends, from people you do not know.

/whois <user>

There are times when you may want to know if someone is who you think they are, or other times you may want to know more information about a user (like who their ISP is, their IP address, what other channels they are in, etc.). The "/whois charlieboy" command would tell you all that information about the user "charlieboy" (if he exists). The information will appear in the main window or tab from the IRC network you are connected to.

/away <optional message>

If you enter "/away going to bed now" in the message entry line, you will remain logged into IRC, but your user nickname will be marked as being away. If you have XChat set to display "away" messages, your status will display in the message window as "*parnote is away: going to bed now." If you omit the optional message, you will still be marked as away, and only "*parnote is away" will be displayed, unless you've defined a standard away message in the XChat preferences dialog.

What now?

Now you know what the basic commands are to participate on IRC. The rest is now up to you. Go out and explore the different IRC networks. Try out the new commands you've learned. IRC really can be a fun way to communicate with others from all around the globe.

Before you do, however, let me remind you that IRC is primarily intended to transfer text. It is unencrypted, and thus security is your responsibility. It's not advisable to share personal information that you don't want everyone to have access to.

There are a lot of other resources for information on IRC. For example, you may wish to look at the full set of commands to see what all you can do while on IRC. I've only given you the basic command set here. There are many more commands available. So, here are some resources that you may find particularly useful:

These should get you started quite well towards learning and using the grandfather of Internet chat software. Maybe IRC isn't so forgotten after all, but rather is alive and well, still keeping users connected more than 20 years after its debut. IRC was "social networking" before the rest of the world even knew what social networking was.