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:
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:
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:
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:
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:
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:
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:
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:
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.