Learn through the super-clean Baeldung Pro experience:
>> Membership and Baeldung Pro.
No ads, dark-mode and 6 months free of IntelliJ Idea Ultimate to start with.
Last updated: March 18, 2024
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.
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.
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.
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.
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.
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.
So, let’s see a list of special features of Irssi:
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.
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.
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.
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.
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.
Let’s list some special features of WeeChat:
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.
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.
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.
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.
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.
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:
In summary, the minimalism of F-IRC makes it an excellent choice for users who value simplicity and efficiency in their IRC interactions.
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.
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.
Now, we connect to a server:
/connect irc.libera.chat
So, we can continue by working with channels.
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.
glirc has some useful features:
In essence, all of the above make glirc an attractive option for users who want a more visually appealing and feature-rich IRC client.
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.
First, let’s install scrollz:
$ sudo apt-get install scrollz
Now, we run the client:
$ scrollz
At this point, we should see the interface.
After that, we connect to an IRC server:
/server irc.libera.chat
In this case, we connect to the Libera server.
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.
Let’s see the list of some main ScrollZ features:
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.
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.
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.
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.
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.
Let’s see some of ERC’s special features:
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.
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.
First, let’s install ircII:
$ sudo apt-get install ircii
Now, we run the client:
$ ircii
At the prompt, we can start entering commands.
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.
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.
Let’s see the features of ircII:
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.
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.
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.
Now, we can run epic5 and then connect to a server:
/server irc.freenode.net 6667
In this case, we use the Freenode server.
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.
The client is mostly pure text. Yet, it still has some added features:
EPIC’s capabilities make it an attractive choice for users who want to tailor their IRC experience to their specific needs.
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.