How do you use IRC?
Tags: irc
Published: 2019-01-30 00:42:47

---
title: How do you use IRC?
published: true
description: Have you ever been curious about how the IRC protocol works? Me too!
tags: irc
---

IRC is pretty neat. It's from the late 1980s, but it's still around, and still fairly widely used. As of this writing, the IRC network I'm on the most has 86,546 users, and according to [netsplit.de](http://irc.netsplit.de/networks/top100.php), the top 100 most popular IRC networks have 234,581 users combined. It's also pretty common in open-source projects, as a way to get support.

But... how do you use it? You've been told that your favorite project is on #aproject on Freenode, but how do you get on that channel, too? Well, in big, abstract steps:

1. Download an IRC client
2. Pick a nick
3. Find the server you want
4. Connect to it
5. Connect to your channels
6. Register your nick
7. Additional info

# 1. Download an IRC client

This step, as you might guess, depends on your operating system. There are a wide variety of IRC clients, from command-line software like [irssi](https://github.com/irssi/irssi) to the GUI-oriented generic chat software [Pidgin](https://pidgin.im/). Because I personally use it and it's cross-platform, this tutorial uses [HexChat](https://hexchat.github.io/), but all of them work similarly.

# 2. Pick a nick

This is a more important step than you might think. A "nick", or nickname, is how you're identified in IRC. It's your name on IRC. 

It can be at most nine-characters long<sup>1</sup>, and can contain letters (uppercase or lowercase), numbers, hyphens (`-`), underscores (`_`), square brackets (`[]`), curly braces (`{}`), backslash (`\`), backticks (`` ` ``), or pipes (`|`). If you have a consistent handle across the internet, I highly recommend using that, or some minor variation on it, so people recognize you elsewhere, too.

Fill your nick in in the topmost box, and add a username. The username doesn't have to be anything specific, but it's recommended that you make it close to the username of your local user. If you don't know that, just put in `unknown`.

<small>1: Some servers -- e.g. Freenode -- allow longer nicks, but the IRC protocol specifies a maximum of 9. Therefore, it's generally a good idea to use a 9-character nick, so you can take it with you to different servers.</small>

# 3. Find the server you want

You need to find two things to connect to an IRC server network: The domain or IP address, and the port. In HexChat, quite a lot of servers are presupplied. Fill in your nick at the top, find the server's name on the list and click Connect, and it'll all happen automatically.

If you've been given a name but no more information and can't find it on the list, try Googling it. Many IRC servers have an associated website which will give you all the details you need. That is, the domain name or IP address, and port.

If you're given a domain or IP and port and want to connect directly, you can add your own server to the list. Click Add -- it's the topmost of the five buttons -- give it a name you'll remember, click Edit, and add the domain name and port to the list at the top, separating them with a slash. For example, if the domain is `irc.server` and the port is `1234`, you'd put `irc.server/1234`.

If you're not given a port, try 6667. It's the de facto default for IRC.

# 4. Connect to it

In HexChat, this is as simple as clicking the server in the list, then clicking "Connect" in the bottom right.

You may see a message about your nick -- something like this:

> your_nick :Nickname is already in use

or

> This nickname is registered. Please choose a different nickname, or identify via **/msg NickServ identify <password>**.  
> You have 30 seconds to identify to your nickname before it is changed.

Try connecting again with another nickname. The former means someone is currently logged in with that nickname, and the latter means someone else has staked a claim on that nick. I'll walk you through doing it for yourself in step 6.

# 5. Connect to your channels

Once you connect to the server, wait for a moment. It takes some time to establish an IRC connection. Once you see the text stop scrolling, you can join a channel with `/join #channelname`. You _must_ include the first `#`; it's part of the channel name. Some channels start with `&` instead -- rather than being global across the entire network, these are exclusive to the server you're currently on.

# 6. Register your nick

While trying to connect to your desire channel, you might have seen a message like "Please register and identify to speak". There are several ways to do that, depending on the server, but most of them involve NickServ.

NickServ is a special bot available on most servers. You message it to register your nickname, and it ensures that no one else takes your nickname, as well as tying nicks to emails so troublemakers can be effectively moderated. To register your nick with NickServ, send it a private message:

```
/msg NickServ REGISTER [your-password-here] your@email.here
```

Of course, replace `[your-password-here]` with your actual, unique password, and `your@email.here` with your actual email. You'll get an email sent to that address with a special code, which just confirms that you actually have that email. Confirm that's really your email with `/msg NickServ CONFIRM [code]`, and the nick is yours!

Now whenever you join, you'll see this message:


> This nickname is registered. Please choose a different nickname, or identify via **/msg NickServ identify <password>**.  
> You have 30 seconds to identify to your nickname before it is changed.

You now have the password -- you just created it -- so just type:

```
/msg NickServ IDENTIFY [your-password-here]
```

And just like that, NickServ knows you're who you say you are. You can also do some more configuration, which is largely out of the scope of this tutorial. If you have any other questions, `/msg NickServ HELP`. (The all caps isn't actually required, but I find it amusing to shout 'help' at a robot)

# 7. Additional info

## Multiple nicks?

If you have multiple nicks, you need to group them. Change your nick to the other nick you want to use, then:

```
/msg NickServ IDENTIFY old-nick [your-password-here]
/msg NickServ GROUP
```

Now your two nicks are grouped together, and any NickServ management you do to one applies to the other.

## AFK?

`/away` you go! Use that command to tell the server, and other people, that you're away. You can also add a message, like `/away to get food`, if you want to be a little more specific.

## Curious how IRC works?

I'm going to be writing up more articles on how IRC works internally later, but those are by no means the only resources. The [RFC](https://tools.ietf.org/html/rfc1459) is surprisingly easy to follow if you get some experience using IRC before reading it, and, given that it's the standard every IRC server meets or exceeds, it gives most of the necessary information. Extra features like SASL aren't in the original RFC, but they're also standardized and open.

## Want to say you're doing something?

Use `/me`. It's not a standard IRC command, but it's supported by basically every server I've been a regular on. This command:

```
/me does a thing
```

produces this message:

```
* nic-hartley does a thing
```

in contrast to the normal IRC message format, which might be

```
nic-hartley: does a thing
```

## Got more questions?

Ask in the comments! I'm happy to answer more questions, if I know the answer.