< Home

Getting Started with IRC

IRC (Internet Relay Chat) is a text-based application layer protocol designed as a teleconferencing system based on a client-server model. It was first implemented as a means for users on BBS (Bulletin Board System) to chat amongst themselves which gradually found its way to be an indepandant service used by a shedload of people. At IRBUG we use IRC as the only official channel to chat and communicate.

This page is not meant to be used as a reference but soon I will expand it into a detailed document on IRC and publish it widely, so stay tuned for the announcement and consider it a WIP, email me if you have any issue, suggestion, or question.


In short, there are numbers of servers forming a network (e.g. Freenode and EFnet) and clients joining them where the only network configuration allowed for is that of a spanning tree, i.e. each server acts as a central node for the rest of the net it sees.
There are various types of communication where the destination could be a list (of clients), server(s), group (channel), or a client (direct message).
If a client is not online, others can't see them. Therefore, direct messages will not be delivered and the sender will get something like nick not found. The same applies to members of a channel. If a client goes offline, they won't get the chat history when they're back. As a consequence, there are multiple solutions to remain connected so as to never lose chat history. Personally I would run a BNC (Bounced Network Connection), ZNC is an example you can easily setup on your server and benefit its features. There's a lot to benetif from bounced network connections and it's beyond the scope of this page, but in brief, your original source of connection would be the bouncer you're connecting to, and in multiple-client scenarios your buffer knows where to be routed. The other, simpler and temporary solution is to use a terminal multiplexer on a server which is 24/7 online. You can use tmux for instance and whenever you're detached, you can simply re-attach the session. But it won't help much if you're having multiple-clients.

Pick a Client

To connect to IRC networks, first and foremost you need a client. Personally I use irssi on my Mac and BSD machines, and Palaver on iOS.

Register a Nick on Freenode

First of all, you need to connect to the network as you launch your clinet:

/connect Freenode

Then you should pick a nick which will be your unique name in the network:

/nick <nickname>

If your chosen nickname is not registered, it means you can register it to your email:

/msg NickServ REGISTER <password> <email>

Youl'll shortly receive a confirmation email. Type the line in your client:

/msg NickServ VERIFY REGISTER <nickname> <token>

To login with your nick:

/msg NickServ IDENTIFY <nick> <password>

You can also use your credentials when connecting to the network:

/connect  chat.freenode.net 6697 <nick>:<password>

Do the following to pick an alternate nick (optional):

/nick <nickname_>
/msg NickServ GROUP


We don't accept unidentified nicks, therefore you need to ensure your nick is correctly registered and you are identified before joining the channel.
Now that you have your nick registered, you can easily join the channel by using the following line:

/join #irbug

Some Tips

A new window will be opened when you join the channel, you can switch between windows by using /window <window_number>. You can list windows by /window list - the output will be shown in the first window.
To highlight someone when speaking to, conventionally you can use their name followed by a colon in the beginning of the line, i.e. foo: <message> - some clients have tab-completion in such cases.
You don't need to highlight folks if the channel is quiet and not on the hop - unless you want to ensure they'll get a notification (if enabled).
You can list joined users of a channel by /who <#channel> or get information on a particular user by /whois <user>, /whowas is the same as /whois, except it is used for people who just left the network.

In the meanwhile, don't forget to abide by the CoC. Be gentle, kind, considerate, and let's grow the community.