1. Introduction

Internet Relay Chat (IRC) is a text-based communication protocol that enables real-time conversation and group chat over the Internet. IRC has been used for a wide range of purposes over the years, including technical support, open-source software development discussions, hobbyist communities, and more.

While its popularity has waned with the rise of more visually engaging messaging platforms, IRC continues to thrive as a dependable and efficient tool for those who prefer text-based communication and value the sense of community it fosters.

In this tutorial, we’ll explore several IRC clients for Linux command-line interface (CLI) users.

2. Using Irssi

Irssi is a popular command-line IRC client that provides a powerful and customizable environment for connecting to IRC servers and interacting with other users. Irssi offers a text-based interface, making it suitable for casual and power users who prefer efficiency.

2.1. Install and Run

First, let’s install irssi via apt-get and sudo:

$ sudo apt-get install irssi

Now, we can run irssi:

$ irssi
 Irssi v1.2.3-1ubuntu4 - https://irssi.org                    
15:05 -!-  ___           _
15:05 -!- |_ _|_ _ _____(_)
15:05 -!-  | || '_(_-<_-< |
15:05 -!- |___|_| /__/__/_|
15:05 -!- Irssi v1.2.3-1ubuntu4 - https://irssi.org

[09:23] [] [1]                                               
[(status)]

At this point, irssi is ready for our commands.

2.2. Server

Firstly, we can display a list of saved server configurations:

/server list
07:48 Server               Port  Network    Settings
07:48 irc.dal.net          6667  DALnet     
07:48 ssl.efnet.org        9999  EFNet      tls
07:48 irc.esper.net        6697  EsperNet   tls, tls_verify
07:48 irc.libera.chat      6697  liberachat tls, tls_verify
...

In this case, we see a list of servers with their network port number, network names, and connection encryption. Of course, we can use any desired server.

So, we can /connect to a server by its address or name:

/connect irc.dal.net

Thus, we’re connected to a server.

2.3. Channel

Now, we can /join a channel:

/join #linux

Moreover, we can /list all channels. After joining, we start a conversation:

irssi

Notably, the list of online users is at the top, while the conversations are below.

2.4. Themes

Furthermore, Irssi is themeable, so we can customize the visual appearance of the IRC client with pre-existing or custom themes.

In fact, Irssi themes are available online. Generally, to apply them, we just need to download and copy the .theme file to the ~/.irssi/ path.

Then, we can load the theme:

/set theme mytheme

In this example, the theme file name is mytheme.theme which will be replaced with the default theme.

2.5. Features

So, let’s see a list of special features of Irssi:

  • scripting support: enhance and customize functionality through Perl
  • themes and styles: change the appearance of Irssi for a personalized look
  • proxy support: added security or anonymity
  • split windows: follow multiple conversations at once
  • advanced logging: better reference and troubleshooting
  • notification system: integrate with external notification systems for alerts even when not actively using the client
  • UTF-8 support: handle messages in various languages
  • secure connections: SSL/TLS communication
  • auto-completion and tabbing: simplify typing
  • scriptable aliases: custom command shortcuts
  • extensive documentation: easier learning and configuration
  • rich set of commands: ease various actions and managing IRC sessions efficiently
  • multi-server connection: simplifying the management of conversations across different networks

Irssi has unique and customizable features that make it a powerful IRC client. It’s ideal for users who want control and personalization in their IRC experience.

3. Using WeeChat

WeeChat is a fast, flexible, and extensible IRC client that runs on various platforms, including macOS, Windows, and Linux. It’s designed to be highly customizable and offers a wide range of features suitable for both beginner and advanced users. Moreover, WeeChat supports multiple protocols and can be extended using various plugins to enhance its functionality.

3.1. Install and Run

First, let’s install weechat:

$ sudo apt-get install weechat

After installing weechat, we can run it:

$ weechat

At this point, the client is ready for our commands.

3.2. Server

We can use the /server add command to add IRC servers:

/server add <server_name> <server_address>/<port>

As we can see, we need the server name, server address, and connecting port.

Let’s add a server network:

/server add freenode irc.freenode.net/6667 -autoconnect

In this example, we added the Freenode network with connection port 6667. Moreover, we used -autoconnect to ensure that WeeChat automatically connects to this server when we start the client.

Now, we connect to the network:

/connect freenode

At this point, we’re connected to a network.

3.3. Channel

Now, we can join our desired channel:

/join #linux

After joining a channel, we’re able to start a conversation:

weechat

Consequently, the connected servers and channels list is on the left side, discussions are in the middle, and user lists are on the right side. Furthermore, to navigate between servers, we can use Ctrl+N.

3.4. Features

Let’s list some special features of WeeChat:

  • scripting and plugin support: various scripting languages enable custom plugins
  • IRC bouncer: stay connected to IRC networks even when WeeChat is offline or disconnected
  • multi-server and multi-channel: connect to many IRC servers and channels simultaneously
  • proxy support: SOCKS5 and HTTP proxies provide users with additional privacy and security
  • WeeChat relay: connect remotely using a client or web interface, managing IRC from different devices
  • scriptable user interface (UI): customize appearance, layout, and functionality
  • FIFO (First-In, First-Out) interface: structured communication with external programs
  • reliable notifications: integrate with various notification systems
  • built-in scripts: support common tasks such as auto-joining channels, highlighting messages, and managing buffers
  • smart filtering: advanced message filtering and tagging
  • server buffer merging: automatically merge server buffers, reduce clutter, and simplify multi-server conversations

In general, WeeChat’s combination of unique features, scripting capabilities, and versatility make it a popular choice among IRC enthusiasts who value customization, remote access, and a reliable IRC experience.

4. Using F-IRC

F-IRC is an IRC client designed to be as user-friendly as possible, with easy navigation and keyboard shortcuts for quick access to features. F-IRC supports a variety of regular IRC features, such as joining channels, creating private messages, and sending files.

4.1. Install and Run

First, let’s install f-irc:

$ sudo apt-get install f-irc

Notably, this client isn’t available in the latest versions of Debian.

Once installed, we can run f-irc:

$ f-irc

In addition, the first time we start F-IRC, it prompts us to create a configuration file.

4.2. Server

When it comes to f-irc, pressing F8, followed by the A key initiates the process of adding a new server. Then, we’ll be prompted to provide the server name and nickname.

Still, we can also specify these in the shell.

4.3. Channel

After adding a server, we’re ready to join a channel via /join and start a conversation:

f-irc

In this case, a list of channels and servers is on the right and a large box with conversations is on the left. Further, the channel’s topic is on the top and the line at the bottom is where we write our text to send to the channels.

4.4. Features

Notably, we can edit the ~/.firc file and add various commands like automatic joining, re-joining, channel opening, and messaging.

Let’s see the list of special features of F-IRC:

  • minimalistic design: minimal and lightweight IRC experience with a clean and simple user interface
  • server tags: keep track of multiple IRC servers and channels, making it easy to organize the conversations
  • customizable colors and themes: customize colors and themes to personalize the F-IRC experience
  • integrated URL handling: handle URLs within the client

In summary, the minimalism of F-IRC makes it an excellent choice for users who value simplicity and efficiency in their IRC interactions.

5. Using glirc

glirc is a console IRC client that offers efficient ways to connect to IRC servers and participate in chat discussions using text-based commands. With glirc, we can have a traditional IRC experience and still benefit from flexibility and customization options at the same time.

5.1. Install and Run

First, let’s install glirc:

$ sudo apt-get install glirc

Once installed, we can run glirc:

$ glirc

At this point, we’re ready to enter commands.

5.2. Server

Now, we connect to a server:

/connect irc.libera.chat

So, we can continue by working with channels.

5.3. Channel

After connecting to a server, we just join a channel via /join:

glirc

The interface resembles that of previous clients but omits the user list from the main view.

5.4. Features

glirc has some useful features:

  • modern and graphical: visual IRC client experience with a focus on aesthetics and user-friendliness
  • scrollback search: search the scrollback buffer, helping find past messages quickly
  • markdown support: render messages in Markdown format
  • tabbed interface: manage multiple channels and conversations efficiently
  • notification integration: integrate with desktop notifications

In essence, all of the above make glirc an attractive option for users who want a more visually appealing and feature-rich IRC client.

6. Using ScrollZ

ScrollZ is a command-line IRC client that is known for its flexibility, extensive scripting capabilities, and user-friendly interface. Additionally, ScrollZ is designed to provide a feature-rich experience for IRC users while maintaining a text-based, terminal-focused interface.

Furthermore, ScrollZ offers robust features, making it a popular choice for newcomers and experienced IRC users.

6.1. Install and Run

First, let’s install scrollz:

$ sudo apt-get install scrollz

Now, we run the client:

$ scrollz

At this point, we should see the interface.

6.2. Server

After that, we connect to an IRC server:

/server irc.libera.chat

In this case, we connect to the Libera server.

6.3. Channel

So, we can now join a channel in the server:

/join #ubuntu

At this point, we can communicate with users:

scrollz

Evidently, the current Linux username is taken as the default nickname. Of course, we’re able to change it by using the /nick command.

If we join multiple channels simultaneously, we can navigate between them via Ctrl+N and Ctrl+P.

6.4. Features

Let’s see the list of some main ScrollZ features:

  • scripting framework: TCL support, enabling custom scripts and extensions
  • enhanced CTCP (Client-to-Client Protocol) handling: richer chat experience
  • DCC (Direct Client-to-Client) file transfers: better file sharing
  • advanced user lists: extensive user list features, including customizable columns and sorting options
  • customizable look and feel: extensively customize the appearance and behavior of the client

In general, ScrollZ’s unique combination of TCL scripting support, advanced CTCP handling, and other features makes it a valuable choice for users who want a highly customizable and feature-rich IRC client.

7. Using ERC

ERC is an IRC client integrated with the Emacs text editor. In fact, this client provides users with the ability to connect to IRC servers and channels, engage in real-time chat, and manage IRC interactions seamlessly within the Emacs environment.

7.1. Install and Run

First, let’s install emacs:

$ sudo apt-get install emacs

Now, we need to run emacs in CLI mode:

$ emacs -nw

Once Emacs is running in text mode, we can open ERC:

M-x erc

Here, we press and hold the Meta key (often mapped to Alt or Esc, depending on the terminal), then press the X key. Next, we see a small prompt at the bottom of the Emacs window. At the prompt, we type erc and then press Return.

7.2. Server

Once we start erc, it prompts for the IRC server, port, nickname, and password.

However, we can also specify them at the Emacs command prompt:

(erc :server "irc.libera.chat" :full-name "Amir")

Thus, we directly connect to the specified server.

7.3. Channel

At this point, we can join a channel:

/join #freenode

Finally, we can interact with the channel:

ERC

Here, we can send messages, and communicate with other IRC users.

7.4. Features

Let’s see some of ERC’s special features:

  • Emacs integration: seamless chat experience within the Emacs environment
  • scripting with Emacs Lisp: extend the functionality using the power of Emacs
  • buffer management: manage IRC conversations as Emacs buffers, providing advanced text-editing capabilities
  • highlighting and notifications: message highlighting and desktop notifications for mentions
  • integration with other Emacs modes: enhance productivity by using features of Emacs in parallel

Generally, these additions make ERC an excellent choice for users who are already proficient in Emacs and want to manage their IRC communications without switching between different applications.

8. Using ircII

ircII is a classic, text-based IRC client known for its longevity. Further, it allows users to connect to IRC servers, chat in channels, and customize their experience through scripting.

8.1. Install and Run

First, let’s install ircII:

$ sudo apt-get install ircii

Now, we run the client:

$ ircii

At the prompt, we can start entering commands.

8.2. Server

At this point, we can connect to an IRC server:

$ ircII nickname server:port

We can also connect to a server directly from the shell:

$ ircII amir123 irc.freenode.net:6697

Of course, the nickname is optional here. If we don’t specify it, ircII uses the current system username as the nickname. Similarly, the server address is optional as we can also change the default server in /etc/irc/servers.

8.3. Channel

Finally, we can join a channel with the usual /join.

Let’s take a look at the environment of ircII:

ircII

Although ircII isn’t a themeable tool, we can change the color of the nickname, text, and background.

8.4. Features

Let’s see the features of ircII:

  • scripting and script libraries: strong scripting system and a wide range of available scripts and add-ons
  • user-defined functions: custom functions and commands to enhance the IRC experience
  • scriptable look and feel: even though there aren’t ready-made theme files, the appearance and functionality can both be customized

The unique combination of scripting flexibility, customization options, and enduring community support makes ircII a compelling choice for users who value control over their IRC experience.

9. Using EPIC

EPIC is a powerful and flexible client that is designed for users who want to script their own IRC experiences. Since it’s based on the ircII client, it offers a similar interface and feature set.

9.1. Install and Run

First, let’s install epic5:

$ sudo apt-get install epic5

After that, we run the client:

$ epic5

After some red tape, we’re presented with a prompt.

9.2. Server

Now, we can run epic5 and then connect to a server:

/server irc.freenode.net 6667

In this case, we use the Freenode server.

9.3. Channel

Next, we join a channel:

/join #programming

Now, we can type some text to start interacting with the client and users:

epic

As we can see, the list of users is at the top, and then the channel information is displayed at the bottom.

9.4. Features

The client is mostly pure text. Yet, it still has some added features:

  • scripting and programming: EPICScript is an integrated language for customization
  • flexible configuration: extensive options, enabling users to tailor the client to their specific needs
  • multiple servers and channels: manage multiple servers and channels at the same time
  • advanced automation capabilities: complex automation of IRC tasks
  • DCC and CTCP support: provide support for DCC file transfers and CTCP interactions

EPIC’s capabilities make it an attractive choice for users who want to tailor their IRC experience to their specific needs.

10. Conclusion

In this article, we explored a range of IRC clients for Linux CLI users, each with its own unique features. Whether it’s scripting capabilities, customization tooling, multi-server support, or any other distinct attributes, these clients provide a variety of options.