About IRCCloud

IRCCloud is, as they say themselves, ‘an IRC client with a future’.  Unlike desktop clients like mIRC, HexChat, AdiIRC… Unlike terminal clients like irssi, weechat, and others. Unlike Android clients like AndroIRC, AndChat, Android IRC… IRCCloud is everywhere…

IRCCloud in a way, acts like a BNC or Bouncer, it keeps* your nickname online when you’re disconnected from it. 

Using IRCCloud

Once you’re using IRCCloud, there’s a few things to do, like adding networks, joining channels, customizing settings. 

For adding networks, if you haven’t purchased the ‘Solo’ plan, then you cannot ‘connect’ to more than 2 networks (other than IRCCloud’s own network).

If you do want to add a separate network, click the button either by looking in your menu (clicking on your email in the webapp or desktop app, or triple dot in the upper right hand corner on Android, and the gear next to the text box on iOS.

Once you find the applicable menu for your system, there should be a button or list-item with the following.

You will then be greeted with the form to add a network, your mileage may vary, but should look very similar to what is pictured here.

Some networks, like ElectroCode, IRCCloud, Rizon, etc. may be included in the dropdown.  If your network is not on the dropdown list, then you can try e-mailing [email protected].  Enter the port you want to connect the client through, and if it’s SSL enabled.  Choose your nickname and your ‘realname’, aka GECOS.

If you’ve got any channels you want to join on connect, enter them in the text box.

If you have a NickServ password or other ‘advanced’ option, then click the ‘Advanced Options’ button to un-hide those options.

If all was inputted correctly, you should’ve been connected to the network that you chose.  From then on its all you, if you need help with IRCCloud, you can contact me.


  • On a phone? There’s an app for that!
  • On a desktop? There’s a program for that!
  • Only have a web browser? They have a web client!

IRCCloud has a client for each type of device too.  Got Windows? Linux? Android? iOS?


  1. IRCCloud will disconnect you from the networks you are on, after a period of inactivity (If you can leave a internet connection up to it, you’re fine)
  2. If you can’t keep your connection up, but want your nickname to stay connected 24/7, then you will need to purchase a ‘Solo’ plan, which is $5 a month, or $50 a year (2 months free).
  3. Not every network allows IRCCloud, but most do allow it.

Updates 18/Aug/17

While we haven’t posted in a while, we’ve not been dead, many things have been happening behind the scenes.

Each one will be categorized on where or with what community we worked with.


ElectroCode (etc.)

ElectroCode has been doing some rearranging and maintenance behind the scenes. We’ve decommissioned squirrel.* and brought in a new server, kojo, and we’ve also removed neko from public use and allowed only kojo and comit(SONA-Gaming’s Server) to be the current client servers. We’ve done this to cut down on the amount of redundancy we have had in the past. This allows us to be much more efficent in our configurations and our ease of updating, previously we’ve had upwards of 6 servers at one point, which is a nightmare to take care of. We will be updating to InspIRCd as soon as the next beta release comes out for 3.x, once that happens we will let you know in advance if any servers are slated to be restarted. We also suggest that if you have used single server connections to use our round-robin, this allows us to place you on a server best suited to give you the least latency.

We’ve also updated our site theme, as you may have figured out if you read our posts directly through our website. We’re currently trying to find the best bootstrap using theme, and configuring it to our needs, if this doesn’t work out, we will be making our own theme, whether we do or not, if you notice any hiccups in the site’s look, then please let us know about it, so that we can fix it.

Coding Projects

Iota has been working on multiple projects of his own as well, currently most of his time (if not working his day job) is on pyrebrandly, rebrandlyrb, and several supybot/Limnoria plugins. The two most recent ones are MsgServer and Rebrandly
MsgServer allows flat text messages to be sent through a webhook built into the bot that sends them onto other channels, Rebrandly on the other hand is a plugin that uses Iota’s pyrebrandly library/package. Both of these projects are currently only used on private things, but if you do end up using it, let me know! Also, if you have any suggestions for changes or additions or would like a specific plugin made, let me know as well.



We (specifically Iota) have been working with xnite (IRC-Source, DataJunkie, to develop and utilities along with it.

If you would like to contact ElectroCode, or Iota, please see our contact page here.

New Projects

I’ve got a few projects and a few things I’m working on right now,

  • Updates to IRC-Source and
  • A GitLab & GitHub webhook
  • bootstrapping of this site
  • bootstrapping of DNSBL API pages
  • And a few more things

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)

Recently I’ve been working with xnite (owner of, on is meant to be a DNSBL (Domain Name Service Blacklist) for use on IRC and XMPP. And has multiple types that a host can fall under, five to be exact.

Tor 1 Holds Tor exit nodes
HTTP(S) 2 Houses HTTP(S) proxies
SOCKS(4/5) 3 Holds SOCKS(4/5) proxies
 Open Router 4 Holds hosts that have been found to be Open Routers (Routers accessible from the public internet with default credentials)
 Abusive Hosts 5 Holds hosts that have been found to be abusive, this can include spammers on IRC, to SSH Bruteforce-ing hosts we find via FAIL2BAN.


We’ve also made DNSBL module blocks for a few different IRCds, just select yours and it will show up.

Charybdis (2.2 & later)
UnrealIRCd 4.0.1+

ZNC Bar by r3m

This ‘gist’ was re-posted here with permission by the original author.


ElectroCode users now have the use of the following methods of authenticating.

/msg NickServ id|identify
CERTFP (/ns help cert)


Days till Christmas How To

This post is a follow-up from ‘Easy Way to Get the Difference of Two Times in Python’, seen here. If confused, please read that first, then come back to this.


So, continuing from where we left off, lets say we want to get the number of days till christmas. For that, we’d do the following.

#! /usr/bin/python3

import arrow

class CustomArrow(arrow.Arrow):
    def days_till_xmas(self):
        xmas = arrow.Arrow(self.year, 12, 25)
        if self > xmas:
            xmas = xmas.replace(years=1)

        return (xmas - self).days

factory = arrow.ArrowFactory(CustomArrow)
mytime =

And boom, that’s it!

Easy Way to Get the Difference of Two Times in Python

This post is quite the short one, but if you ever need the duration/difference between two times, this can come in very handy. But the code may be confusing. So bear with me.

So if you can get the total amount of seconds, which to make it easier, I used the package ‘arrow’.

pip install arrow
pip3 install arrow

Here’s my code, a more stripped down version than what I use.

#! /usr/bin/python3
import arrow
import datetime
def secondsToText(secs):
    days = secs//86400
    hours = (secs - days*86400)//3600
    minutes = (secs - days*86400 - hours*3600)//60
    seconds = secs - days*86400 - hours*3600 - minutes*60
    result = ("{0} day{1}, ".format(int(days), "s" if days!=1 else "") if days else "") + \
    ("{0} hour{1}, ".format(int(hours), "s" if hours!=1 else "") if hours else "") + \
    ("{0} minute{1}, ".format(int(minutes), "s" if minutes!=1 else "") if minutes else "") + \
    ("{0} second{1}".format(int(seconds), "s" if seconds!=1 else "") if seconds else "")
    return result
my_year  = int(input("Year --> "))
my_month = int(input("Month (01-12) --> "))
my_day   = int(input("Day (01-31) --> "))
my_hour  = int(input("Hour (00-23 --> "))
my_min   = int(input("Minute (00-59) --> "))
my_sec   = int(input("Second (00-59) --> "))
my_datetime = datetime.datetime(my_year, my_month, my_day,
                my_hour, my_min, my_sec)
now ="US/Eastern")
mypasttime = my_datetime
then = arrow.get(mypasttime, "US/Eastern")
time_diff = now - then
time_days = time_diff.days
time_diff = secondsToText(time_diff.total_seconds())


So lets say I wanted the exact length of time(in days + rest) since ElectroCode began.

And while I know the date was January 20th 2012, I don’t exactly know the exact time, so we’ll use Noon(12 00 00)

[email protected]:~$ ./ 
Year --> 2012
Month (1-12) --> 01
Day (1-31) --> 20
Hour (0-23 --> 12
Minute (0-59) --> 00
Second (0-59) --> 00
1692 days, 3 minutes, 9 seconds

Now if I wanted to make that able to parse weeks and years, so now I’ll add a few additions to the secondsToText() method.


So with those changes, I now get

4 years, 33 weeks, 1 day, 1 hour, 11 minutes, 38 seconds

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.

Little script I made

I’m a Help Staff on Rizon, and as such we have the responsibility of staffing RizonBNC, which has a rule that you have to be registered 7 days (1 week) before requesting a BNC, so I made a little script to get me the difference in between them.

Here’s the STDOUT on the shell

[email protected]:~$ ./time.rb -t "Aug 04 10:27:26 2016 MDT"
{:time=>"Aug 04 10:27:26 2016 MDT"}
Try again in 6 days, 23 hours, 24 minutes and 46 seconds (7 day wait)
[email protected]:~$ ./time.rb -n Blah -t "Aug 04 10:27:26 2016 MDT"
{:nick=>"Blah", :time=>"Aug 04 10:27:26 2016 MDT"}
Blah: Try again in 6 days, 23 hours, 24 minutes and 25 seconds (7 day wait)

Here’s the code, hosted on GitHub

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