IRC
Internet Relay Chat, a text-based client/server protocol from 1988 for real-time group and one-to-one messaging organized around channels.
Created by Jarkko Oikarinen
IRC, short for Internet Relay Chat, is one of the oldest text-based real-time communication protocols still in everyday use. Created in 1988, it defines how clients and servers exchange short lines of plain text to support group conversations in named channels as well as private one-to-one messages. Although it is a network protocol rather than a programming language, IRC occupies a place in computing history comparable to the early languages of its era: it established conventions—channels prefixed with #, nicknames, operators, bots, and a federated server model—that shaped how an entire generation of programmers collaborated online.
History & Origins
IRC was written by Jarkko Oikarinen in the summer of 1988 while he was working at the Department of Information Processing Science at the University of Oulu in Finland. He administered a Sun Unix machine that ran a public-access bulletin board system called OuluBox, and he set out to improve its existing multi-user chat program, MultiUser Talk (MUT). Oikarinen drew inspiration from Bitnet Relay Chat and from Jyrki Kuoppala’s rmsg program, and aimed to add real-time discussion features alongside the BBS. He called the result IRC and first put it into use at the end of August 1988.
The protocol spread quickly. It moved across the Finnish university network (FUNET) and then beyond Scandinavia as Oikarinen obtained accounts elsewhere and handed the software to colleagues, who passed it on to universities in the United States. Transatlantic links connected the growing North American and European servers into a single network, and the count of servers and users climbed steadily.
IRC reached a much wider audience during major news events of the early 1990s. Most famously, during the 1991 Gulf War, people around the world logged on to share live updates as conventional broadcast coverage was interrupted—an early demonstration that a simple text protocol could function as a global, real-time newswire.
Design Philosophy
IRC was built to be simple, federated, and text-based. A handful of design choices give it its character:
- Everything is a short line of text. Clients and servers communicate by exchanging newline-terminated messages, each beginning with an optional prefix, a command, and parameters. This makes the protocol easy to implement and trivial to inspect or script.
- Channels are the organizing unit. Conversations happen in named channels (conventionally beginning with
#), which any user can join, leave, or create on the fly. Channels are ephemeral by default and exist only while occupied. - The network is a tree of servers. IRC servers link together and relay messages so that users connected to different servers share the same channels. This federation is core to the architecture rather than an afterthought.
- Operators and modes govern behavior. Channel operators (
@) and a system of user and channel modes provide moderation, access control, and topic management without a central authority.
This minimalism is both IRC’s greatest strength and its most cited limitation: it is easy to build on, but features taken for granted today—persistent history, reliable identity, rich media—were never part of the original design.
Key Concepts
The Line Protocol
Every IRC message is a single line. A client might send:
NICK archaeologist
USER archaeologist 0 * :Code Archaeologist
JOIN #retrocomputing
PRIVMSG #retrocomputing :Hello, World!
And the server responds with similarly structured lines, for example a numeric reply or a relayed message:
:welcome.example.net 001 archaeologist :Welcome to the network
:friend!user@host PRIVMSG #retrocomputing :Hi there!
This human-readable framing is why a working IRC client or bot can be written in only a few dozen lines using nothing more than a TCP socket.
Channels, Nicknames, and Operators
Users identify themselves with a nickname, join one or more channels, and may hold privileges such as channel operator status. Because nicknames in the base protocol are not owned, networks layered on services (such as NickServ and ChanServ) to let users register names and channels.
CTCP and DCC
The base protocol carries only text and provides no file transfer. To work around this, clients adopted two conventions built on top of ordinary messages:
- CTCP (Client-To-Client Protocol) embeds structured queries inside normal messages—used for things like
VERSION,PING, andACTION(the familiar/meemote). - DCC (Direct Client-to-Client) uses CTCP to negotiate a direct TCP connection between two clients, bypassing the server entirely for private chats and file transfers.
Bots
Because participating in IRC requires nothing more than sending and receiving text over a socket, automated clients—bots—became ubiquitous. They moderate channels, guard against abuse, answer questions from a knowledge base, and relay notifications from version control, issue trackers, and continuous-integration systems.
Standardization
IRC grew as running code before it was ever formally documented. The first specification, RFC 1459, was published in May 1993 and described the protocol roughly as it then existed. In April 2000 the specification was expanded and reorganized into four documents:
| RFC | Title |
|---|---|
| RFC 2810 | Internet Relay Chat: Architecture |
| RFC 2811 | Internet Relay Chat: Channel Management |
| RFC 2812 | Internet Relay Chat: Client Protocol |
| RFC 2813 | Internet Relay Chat: Server Protocol |
In practice these RFCs are best understood as descriptions and updates rather than a single authoritative standard, and real-world server implementations diverged in many details. The modern IRCv3 working group addresses this fragmentation by defining backward-compatible extensions—message tags, better authentication (SASL), server-time and message history, and more—so that contemporary networks can offer features users expect while remaining compatible with classic clients.
Networks and the Splits
IRC has never been a single network. As it grew, disagreements over policy, routing, and abuse handling repeatedly caused networks to fork:
- Undernet split from the original network (later known as EFnet) in 1992, introducing timestamp-based channel synchronization and registration services.
- DALnet branched off in 1994, prioritizing stability and persistent nickname/channel ownership.
- The “Great Split” of July 1996 divided EFnet itself, with European servers forming IRCnet while North American servers retained the EFnet name.
- Freenode rose to prominence as the home of free-software communities, but a disputed change of control in 2021 prompted a mass exodus to Libera.Chat, founded by former Freenode staff.
These splits illustrate a recurring theme: with no central owner, IRC’s communities govern themselves, and when governance breaks down they vote with their feet by moving to a new network.
Current Relevance
IRC is no longer the default place where the internet gathers to chat—that role passed to web and mobile platforms like Slack, Discord, and Matrix, several of which borrowed liberally from IRC’s vocabulary of channels, nicknames, and bots. Slack even shipped an IRC gateway in its early years, and Matrix positions itself as a federated, IRC-like successor with bridges back to IRC networks.
Yet IRC remains very much alive. Networks such as Libera.Chat host thousands of channels for open source projects, and IRC continues to be valued precisely for what it has always been: an open, lightweight, vendor-neutral protocol that anyone can implement, self-host, and automate. For technical communities that prize openness and longevity over polish, it endures.
Why It Matters
IRC matters because it defined the grammar of real-time online collaboration. The conventions it popularized—joining a #channel, picking a nickname, granting operator status, running a bot, sending a /me—became the mental model that later chat systems inherited, often without acknowledging the source. It proved that a deliberately simple, federated, text-only protocol could scale to a global community and survive for nearly four decades. For students of protocol design, IRC is a compact, readable case study; for the open source world, it was the town square where much of modern software was discussed, debugged, and built.
Sources: Wikipedia – Internet Relay Chat, Daniel Stenberg – History of IRC, LivingInternet – IRC History, RFC 1459, and RFC 2810.
Timeline
Notable Uses & Legacy
Free and Open Source Software Communities
For decades IRC was the default real-time meeting place for FOSS projects; the Linux kernel, Debian, Arch Linux, and countless others have maintained channels for support, coordination, and development discussion.
Libera.Chat
A volunteer-run network founded in 2021 by former Freenode staff, focused on free and open source projects and supporting modern IRCv3 features such as improved authentication and message history playback.
IRC Bots and Automation
Because the protocol is plain text over a socket, projects build bots for moderation, notifications, issue tracking, factoid lookup, and build/CI reporting using lightweight client libraries.
DCC File Transfer and Sharing
IRC itself defines no file transfer, so clients added Direct Client-to-Client (DCC) connections—negotiated via CTCP—to send files and hold direct one-to-one chats outside the server.
Live Event and Crisis Coverage
IRC has historically been used to relay real-time information during major news events, most famously the 1991 Gulf War, when users gathered to share updates as conventional coverage was disrupted.