Since HexChat seems to be the goto for this type of client, that will be what this tutorial is about.  XChat is old, and mostly closed source, as far as my memory allows. Since HexChat comes from XChat, if you use hexchat, there should be no real big difference in your interface.

Lets get our clients!

Hexchat: https://hexchat.org

XChat: https://xchat.org

Installation is pretty easy, if you’re a beginner, you should be good on just pressing ‘Next’ through the whole thing. Otherwise, you should know what you’re doing with each section.

Let’s Start Connecting!

To start off, when you open HexChat for the first time, you should see a server list dialog box.

Shown here


As you’ll see I have a selected network called “New Network”, we’ll talk about this later in the post, for now, lets go for instant connections.

Ok, so lets say you’ve skipped the network list, if you want to connect to LameNet, then we enter /server irc.lamenet.org +6697 for SSL. and /server irc.lamenet.org 6667 for Non-SSL.

If you need to open up a new connection without killing your first, then you need to use the command /NEWSERVER with the same input, so that would be /NEWSERVER chat.freenode.net 6667/+6697

Here they are for readabilities’ sake.

/SERVER irc.lamenet.org 6667 -> Non-SSL
/SERVER irc.lamenet.org +6697 -> SSL

/NEWSERVER irc.lamenet.org 6667 -> Non-SSL
/NEWSERVER irc.lamenet.org +6697 -> SSL

You may be thinking, ‘But what do we do if we want to connect to servers when we start XChat though’, unfortunately, the scripting isn’t as helpful in HexChat, so we’re going to have to do this through the Server List GUI, so lets review that.

Network List and Advanced Setup

So you’ve gotten this far, you’ve connected to servers or networks, but want to step up your game.

Lets see that picture of the network list again


Ok, so we have the global settings, your preferred nickname, and your second and third choice, and for the buttons, we have ‘Add’, ‘Remove’, ‘Edit’, ‘Sort’, and ‘Favor’

We’re going to click ‘Add’, then click where ‘New Network’ appeared, edit the name to your liking, then press ‘Enter’ or ‘Return’ on your keyboard, and it will set that as the name. Now click ‘Edit’, making sure that your new network is selected, and it will bring up another little window.

Since we want to connect on the start of the client, we’re going to select the ‘Connect automatically…’ box. You’re going to do this to each network that you want to connect to when HexChat starts.

HexChat: Edit LameNet_028

You’re going to click first up where it says ‘newserver/6667’, then type ‘irc.lamenet.org/6667’, if its SSL, just put ‘irc.lamenet.org/6697’, and then click the ‘Use SSL for all the servers on this network’. If you know them and know they sign their own SSL certificates, click the ‘Accept invalid SSL certificates’.

If you end up making yourself a services account, check out the ‘Login Method’ dropdown, and select what suits your situation. Usually you’re going to use ‘NickServ…’

That should be all that needs to be done, if you haven’t added your channels to NickServ’s ‘AJOIN’, or you don’t have a bnc, you can add channels to autojoin, click the tab ‘AutoJoin Channels’ then ‘Add’, enter the channel name and if it has a key (join password) put that where its supposed to be.

With that, you should be well on your way to having a fine time IRCing.

Scripting Tip

One more thingone_more_thing… If you write your scripts using xchat’s API, they will work in both XChat and HexChat.

Here’s a sample script taken from here

__module_name__ = "Cancel's HelloBot"
__module_version__ = "1.0.0"
__module_description__ = "HelloBot by Cancel"

print "\0034",__module_name__, __module_version__,"has been loaded\003"

import xchat

def on_join(word, word_eol, userdata):
      triggernick, triggerchannel, triggerhost = word
      destination = xchat.get_context()
      destination.command("say Hello " + triggernick + " and welcome to " + triggerchannel)

xchat.hook_print('Join', on_join)



If you think there should be changes to this post, leave a comment down below! I can’t improve if there’s no response of what I need to improve on.

See here for other ways to contact me.

Top 5 IRC Clients (IMO)

I’ve used many IRC clients before,

1. weechat

While weechat is a terminal IRC client, it is my favorite IRC client, mostly due to its configurability, and its large plugin(script) repository. which also shows off how easy it is to play with the plugin API. There are 309 scripts in weechat’s repository as of Apr/25/16, this is mostly from being able to write scripts in multiple languages. Currently, you can write plugins in,

Some of Weechat's Abilities - IRC Clients Some of Weechat’s Abilities

  • Python
  • Perl
  • Ruby
  • Lua
  • JavaScript
  • Guile
  • TCL
  • C

2. KVIrc

KVIrc, or K Visual IRC, is my second because of the lack of forward development on it, not just the client itself, but rather plugins and themes mostly, but that isn’t their fault.  It has a decently fleshed out appearance, although there are some minor graphical glitches sometimes.

KVIrc clients screenshot Basic KVIrc look


It also allows native scripting, in a language known as KVS, based on perl, which can be used within KVS. All of KVS’s functions, commands, etc are all packed into its help browser, opened by /help, its amount of functions seems to be around twice the amount of what mIRC has.


3. AdiIRC

AdiIRC is seen by many as a mIRC clone with some improvments, somethings that were 3rd party addons have been hardcoded into the client, as well as some extras.  One of the extras is the addition of passive popups, not unlike KVIrc’s for channels and nicknames. Another improvement on mIRC is AdiIRC’s more advanced server list, which itself has had multiple versions, as well as the native inclusion of SASL features for networks that support it. 

Some of the scripts that have been made for mIRC in the past have been included natively in AdiIRC, such as the use of MTS or mIRC theme standard files to load themes that began as an advanced addon for mIRC.

AdiIRC is great at looking like other clients AdiIRC’s weechat flavor

Some of the extras that came with AdiIRC were the use of native highlight, url, and other ‘monitor’ panels. These allowed easy access to these features without having to manually script something like these in, as well as having them inside the main window, instead of their own ‘window’ in the client.

I myself see AdiIRC as a mIRC+KVIrc hybrid, minus the ability to script in perl of course. Its a very good client for those beginning with IRC, but wanting something that is more intuitive than mIRC, more so when it comes to scripting, or having some features already, instead of having to code each event or window.

4. mIRC

mIRC is a client that has a rich scripting interface, but lacks on the graphical side, it often is very clunky, and its window code gets very slow. It however is very useful in making IRC bots and other IRC helpers, such as context menus and dialogs, as well as being able to load a separate window and use it in many ways, much like what AdiIRC’s monitor windows do natively, but that you can add more uses to them instead of the hard coded actions.  One use for those that own a network, and use mIRC, is that instead of having all of the notices you get, meaning both regular /notice and SNOTICEs do not flood your status window or your current window. Of course this difference all depends on how you have your settings. However, you can then make a script that then adds all Server NOTICE to a separate window to keep everything else clean.


5. XChat/Hexchat

With XChat, the fault lies in its trouble of configuration, as well as the difficulty in changing the look of the window. Instead of choosing your own themes and such, you mostly have font changing abilities or you can change between certain ‘look&feel’s which are usually between GTK, Tango, and Motif themes, if my memory serves me correctly.
With its configuration, some of the settings that someone coming from mIRC or another client may have is having /whois replies come to the current buffer or other events, have to instead first look at the help file, which doesn’t easily tell them of the /set command, which has ~50 options behind it.

While it has some faults, its usefulness is much like that of weechat. Its scripting languages are less than that of weechat, but mostly in the same format, both in the way the files are supposed to look, and in how the methods are called. This means that someone that came from xchat to weechat, or vice-versa could easily pickup or port their scripts. XChat allows some of the same languages allowed in weechat, namely, C, Python, Perl, and TCL.

xchat_screenshotNow with Hexchat, many things are the same, mainly because Hexchat began as a free fork of XChat, but turned into its own client, but still borrowing most of the things that started with XChat.  Settings are are a bit more fleshed out, some plugins are included with the installer. Most changes are seen through the appearance and menu items, as well as some of the code. Most of the changes with the scripting API just were renaming the functions, xchat->hexchat.


All in all, most of the features in these clients are all the same, but most see a change in how additions can be made, or how they look. With myself, the structured look of weechat and its ease of configuration and scripting, make for an easily like environment. KVIrc on the other hand has a flashy and colorful GUI, which is liked by many that use it, its ease of native scripting is on par with that of mIRC and AdiIRC’s although with some differences. AdiIRC and mIRC would’ve been put together, but the inclusion of some of mIRC’s earlier addons into its native code has put it in its own rank. mIRC, though by far has the most use, and most of the features in other clients, mainly KVIrc and AdiIRC seem to have come from that. HexChat and Xchat though seem to be the easiest to use outside of web clients.

Clients I’ve used

  • weechat
  • KVIrc
  • AdiIRC
  • mIRC
  • xChat
  • Hexchat
  • IceChat (briefly)
  • HydraIRC (briefly)
  • irssi (briefly)
  • ChatZilla
  • Opera’s IRC plugin
  • Pidgen
  • ThunderBird
  • web client (KiwiIRC, Mibbit, qwebirc, iris)

  • If this page or post could use some sprucing up, let us know by contacting us through this link