Specialized Clients - Bots, Bouncers, and everything else

This category covers special types of clients, such as bots, bouncers, and other programs that connect into IRC, but don’t provide the typical client interface.


Bots

Bots are automated IRC clients which run with little or no user interaction, generally to provide some utility or amusement to channels. On networks without channel registration services such as EFNet and IRCNet, bots often fulfill a key role on channels of maintaining ops.

Servers have widely varying policies regarding bot usage - in the past, very few servers allowed bots on EFNet and IRCNet (and those that did usually required prior permission) because of their place in channel wars, while networks supporting registration have generally been more tolerant.

These days, most servers will allow bots, but it’s still necessary to check the policies of the network and individual servers. Even where bots are allowed, bots are expected to be well behaved - bots that cause problems, or in some case, even bots that are involved in problems, are likely to be banned.

Some best practices for bot operators:

Eggdrop

Eggdrop is a widely popular IRC bot package, and is frequently used either to protect channels in the absence of services, or to provide services to a channel beyond what the network’s services can provide.

Still the most popular bot for channel protection purposes, Eggdrop is a relative heavyweight that provides a framework for managing user accounts, networking between bots, and a DCC partyline for management, as well as a TCL interpreter for extending the bot.

Other Eggdrop Resources:

Support Channels:

Infobot

Infobot is a popular “FAQ” bot for IRC channels, with a rudamentary capability to be taught boilerplate answers to common questions. It’s still very popular, but it’s old and mostly unmaintained these days. It’s spawned many clones, forks, and imitations, which by now are far more advanced than the original.

Bucket

Bucket (source) is a modern infobot replacement originally written for #xkcd. It’s written in Perl, highly configurable, and supports a number of modules. Oh, and it also has a sense of humor…

IRC Channels

Irker

Irker is a version control notification bot written by Eric S. Raymond to replace the defunct CIA notification service. It is used to notify a channel of software developers when changes are “committed” or “pushed” to various version control systems, including Git.

IRC channels:

Bot Frameworks

A number of frameworks also exist, which are well suited to writing your own customized bots. A few of these are listed here.

Other Bots

This is by no means a comprehensive list of bot software, especially given that full-featured IRC clients often have functionality that borders on bot-like, and many specialized bots exist to particular tasks. Software developers in particular are fond of writing bots for specific tasks, like announcing commits to version control systems, outcomes of software builds and testing, and other things that interest them.

Bouncers

Bouncers, also known as IRC proxies, proxy IRC connections for reasons of privacy, security, or vanity, and they may additionally function as bots as well, allowing persistent presence for users with intermittent connections.

bnc

BNC was the original IRC bouncer, and may still be referred to in some howtos and other documentation. The homepage is down of this writing, but the package is still found in some repositories. It’s considered obsolete by most users these days, but it’s sufficient for circumventing port restrictions or masking your home address.

znc

Part bot, part bouncer, znc is a robust way to keep a constant presence on IRC. In addition to the standard bnc proxying functions, znc provides persistent connections to the server that stay active when a client connects, a backlog that’s delivered to the client when it reconnects, and a module system that allows znc to function as a bot in your absence.

Homepage

Download

Source Code Repository

IRC Channels

Clients with built in proxies

Several unix clients also function as IRC proxies, and are documented on their respective pages:

Others

Some other “specialty” clients may not fit cleanly into any of these categories. They are listed here.

xmpp-to-irc gateways

xmpp, better known to many users as jabber, has a provision for gateways between the IRC network and the XMPP network. These gateways are known in XMPP terms as “transports”, and usually translate IRC sessions to XMPP’s Multi-User Chat (MUC) facility so that an instant messaging user can connect to IRC without an additional client.

Normally, a transport is installed only for the users (or a subset of the users) of a particular XMPP service on the network.

Some XMPP-to-IRC transports include:

Functionality of such solutions will be limited by both the gateway and the instant messaging program in use. but is sufficient for basic chatting, and may be sufficient for limited exercise of channel operator functions, but not much else.

irc-to-xmpp and irc-to-other gateways