Introduction to IRC

Marius Nita

CS Tutors - Portland State Universiry

November 3, 2008

Introduction

Internet Relay Chat (IRC) is an open-standard electronic chat protocol. Using programs which implement the IRC protocol, users can hold group chat sessions in real-time across the internet. In a nutshell, a complete IRC system comprises two programs: a server and a client. The server is a long-running program, on a computer whose address is well known. The client is a short-running program (an application on your computer) which, when started, connects to the server and joins one or more channels. Several clients can connect to one server and chat.

This tutorial is intended to help the reader get started with IRC on the PSU Computer Action Team IRC network, which hosts several student-oriented chat channels.

Getting started

This tutorial will equip the reader with the basic tools needed to understand and use IRC:

IRC clients

Several free IRC client programs exist for every platform. Here, I will suggest a few popular ones, but the reader should feel free to search the web and find one that suits them best.

  1. XChat (GUI, for all platforms.) http://xchat.org

    A full-featured, actively maintained, multi-platform IRC client. UNIX/Linux and OS X versions are available freely; however, the Windows version is not, at least not officially. There are third-party projects which offer free XChat for Windows (legally!), e.g. http://www.psyon.org/projects/xchat-win32/. XChat is installed in our UNIX and Linux labs. On UNIX, you must add package uns, by running addpkg uns, before you can use it.

  2. mIRC (GUI, for Windows.) http://mirc.com

    Only runs on Windows; it has a 30-day evaluation license after which you have to register.

  3. Irssi (Terminal, for UNIX/Linux.) http://irssi.org

    Extremely customizable terminal client (i.e. there is no GUI) which can connect to several servers and several channels on each server simultaneously. Available freely, and installed on our UNIX (in package uns) and Linux systems.

  4. BitchX (Terminal, for UNIX/Linux.) http://bitchx.org

    Similar in spirit to Irssi, BitchX is a terminal-based IRC client; highly customizable and versatile. It is installed on our UNIX systems, again in package uns.

  5. Colloquy (GUI, for OS X.) http://colloquy.info

    Very easy to setup and use IRC client for OS X users. It may be lacking on the features and customizability side in comparison to say, Irssi, but that should not be a big issue unless you are a power user.

Connecting to irc.cat.pdx.edu

When first started, the various clients will ask for (a subset of) the following pieces of information: server address, port number, nickname, password, channels to join. For the CAT IRC network, some of the info is as follows:

Server irc.cat.pdx.edu
Port 6667
Channels to join #cschat

Be sure to read TheCAT's IRC Server guidelines at: http://www.cat.pdx.edu/guidelines/cat-irc-server-guidelines.html

The nickname is entirely your choice and it is the ``handle'' by which you will be known and addressed during the chat session. If you are given the choice to enter a channel to join, enter #cschat, which is our main student chat channel.

Basic commands

Many client programs will have graphical user interfaces which spare you the need to use the commands explained below, but they are useful nonetheless.

The basic structure of an IRC command is a slash, followed by the command name, followed by a space-separated list of arguments. A few examples:

    /join #cschat
    /msg john hello
    /part #cschat
    /help join

Joining a channel

One final step before you can chat with other people on the server is to join a channel. A channel is a chat room in which several people chat on a particular topic. Several channels exist on any given server. If your client asked you for a channel and you entered #cschat as suggested above, you should already be in a channel. All you need to do is type text and hit enter, and your text will be seen by everyone else in the channel. When people in the channel type to you or others, you will see what they say in close to real-time.

If you are not already in a channel, type /join #cschat and hit enter. This will take you to the student chat channel.

Querying the environment

Typing /list followed by Enter will give a list of all the channels on the server, followed by the number of people in the channel and the channel's topic. For example:

    #chat 4 Welcome to the public chat on irc.cat.pdx.edu.
    #doom 2 Fall/Winter capstone group #2 
    #cschat 24 Programming-related chat
    #support 19 Computer Action Team support
    #acm 2 PSU's ACM student chapter IRC chat

Typing /names will print a list of the people in the current channel.

If you want to know more detailed information about a user, and you know their nickname, you can type /whois john, assuming their nickname is john.

Private messages

IRC provides support for private chat. You can send messages to another user that are not visible to anyone else on the server. The syntax is /msg john hello, john. I.e., the command /msg, followed by the nickname, followed by an arbitrary message.

Long private sessions are facilitated by the /query command. If you type /query john, the client will create a private chat room whose contents are visible only to you and john.

PSU Channels

Below are brief descriptions of important student channels on the CAT IRC server.

#cschat

#cschat is a chat room created for Computer Science students in need of assistance with their programming homework and projects. Students in CS161-163, 200-202, 250, 251, and 311 can expect to receive constructive comments and suggestions on their work when help is available. The channel is monitored by CS Tutors on a volunteer basis, so help is not guaranteed. Many students join #cschat to just chill and chat about whatever.

#chat

#chat is a channel that is not necessarily monitored by anyone. Students can join to chat with other students about anything.

#acm

#acm is the PSU ACM (Association of Computing Machinery) student chapter channel. Join this channel to ask questions about the ACM or chat with fellow ACM members.

Advanced features

In this section I discuss commands that are unconventional in the sense that they are not regular, built-in IRC protocol commands. They are private messages to two special users--nickserv and chanserv--which are software programs responding to commands. The former deals with commands involving users, and the latter with commands involving channels. To query nickserv and chanserv for all the possible requests they can fulfill, run one or more of the following:

    /msg nickserv help
    /msg nickserv help commands
    /msg chanserv help
    /msg chanserv help commands
They will output explanatory text.

Registering nicknames

You can register your nickname with the server so that no other person can claim it when you are not online. Run the command

    /msg nickserv register PASSWORD EMAIL
replacing PASSWORD with your desired password and EMAIL with a valid email address. You can subsequently log in with the following command:
    /msg nickserv identify PASSWORD
where PASSWORD is the password you chose at registration time. Many IRC clients can be configured to log you in every time you connect to the server.

If it happens that someone else has claimed your registered nickname while you are offline, you can claim your nickname by force, with the following command:

    /msg nickserv ghost USERNAME PASSWORD
where USERNAME and PASSWORD are the username you've previously registered and its corresponding password.

Creating your own channels

New channels can be created by any user at anytime, unless they are already created. To create a temporary channel, one must simply join the channel; /join #foo will create channel #foo if it doesn't exist, and join it. To make the channel permanent, it can be registered via a process similar to registering a nickname:

    /msg chanserv register #CHANNEL PASSWORD
will register channel named #CHANNEL under the password PASSWORD.

Getting help

The IRC client built-in help mechanism is the single most important source of information and discusses everything you need to know about using IRC. The basic help command is simply /help. If you want help on a particular command, type /help COMMAND, where COMMAND is the command you need help with, without the preceding slash (e.g. /help msg).

The internet is also a rich source of information for using IRC. For example, try googling for ``IRC help''.

Finally, you can always ask questions on #cschat and #chat on the CAT IRC network.