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 are short for roBOTs; they are automated IRC clients which run with little or no user interaction, generally to provide some utility or amusement to channels.
Some best practices for bot operators:
- Bots should only function on channels where they are welcome.
- Bots which are not used for channel protection should leave or return according to the wishes of channel operators.
- Bots should clearly indicate who’s responsible for running them, or the ops of channels where they are operated should know this information.
- Bots should be carefully coded to avoid “privmsg loops” - where two or more bots are triggering each other to speak endlessly. Following the guidance of RFC1459 regarding automation is highly recommended.
- Bots should not be configured in a way to limit the actions of channel operators without a thorough understanding of consequences. A bot may be able to react more quickly than a human chanop can, but speed is no substitute for human judgement, and many “well meaning” protections like mode locks have been known to backfire spectacutlarly. (If you can’t trust your channel ops, why are they opped?)
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:
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, 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 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.
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.
Source Code Repository
- znc on GitHub
git clone git://github.com/znc/znc.git
Clients with built in proxies
Several unix clients also function as IRC proxies, and are documented on their respective pages: