
IRClient is a compact IRC client written in C++.
IRClient supports the following features:
Arch:
sudo pacman -S gcc ncurses openssl lua
Debian-like systems:
sudo apt install g++ libncurses-dev libssl-dev liblua5.4-dev
g++ -std=C++17 main.cpp -o irc $(pkg-config --cflags --libs lua ncurses openssl)
Without TLS you may run IRClient the following way:
./irc IRC.EXAMPLE.NET 6667 NICKNAME '#channel'
With TLS you may run IRClient the following way:
./irc IRC.EXAMPLE.NET 6697 NICKNAME '#channel' --tls
You can also store your nickname and authentication details in the config file. The config file is located under ~/.config/IRClient/auth.conf An auth.conf file may look something like this:
nick=username
username=username
realname=username
sasl_username=username
sasl_password=yourPasswordHere
Remember to chmod 600 ~/.config/IRClient/auth.conf!
IRClient is so revolutionary and superior that it utilizes Lua plugins and not Perl. Lua plugins live in ~/.config/IRClient/plugins Available Lua functions include:
Example styled log:
irc.logStyled("plugin loaded", "magenta", "bold")
Supported colors:
red, green, yellow, blue, magenta, cyan, white
Supported attributes:
bold, underline, reverse, dim
An example plugin has been provided in the github page
For plugins to work, please include 00commands.lua
If you are making your own Lua plugin, please don't start the name with 00.
Additionally, please don't include a function named onCommand in your lua script.
Inside IRClient:
/JOIN #channel
/channel #channel
/QUIT :bye
Any other slash command is sent raw to the IRC server. (unless a Lua plugin handles it first)
IRClient is licensed under the GNU General Public License v3.0 or later. See LICENSE for details.