An IRC bot is a set of scripts or an independent program that connects to Internet Relay Chat as a client, and so appears to other IRC users as another user. An IRC bot differs from a regular client in that instead of providing interactive access to IRC for a human user, it performs automated functions.

An IRC bot performing a simple task.

Function

Often, an IRC bot is deployed as a detached program running from a stable host. It sits on an IRC channel to keep it open and prevents malicious users from taking over the channel. It can be configured to give channel operator status to privileged users when they join the channel, and can provide a unified channel operator list. Many of these features require that the bot be a channel operator. Thus, most IRC bots are run from computers which have long uptimes (generally running a BSD derivative or Linux) and a fast, stable Internet connection. As IRC has become popular with many dial-up users as well, shell accounts at shell providers have become popular as a stable Linux server with a decent connection to run a bot from.

Aside from managing channel permissions, a bot can also perform functions such as logging what is posted to an IRC channel, giving out information on demand (very popular in IRC channels dealing with user support), creating statistics tracking the channel's top posters and longest-lived lurkers, or hosting trivia, Uno and other games. These functions are usually provided by scripts, often written in a scripting programming language such as Tcl or Perl by the bot's users. Channels dedicated to file sharing often use XDCC bots to distribute their files.

IRC bots are particularly useful on IRC networks such as EFnet and IRCnet without channel registration services, and on networks like Undernet or QuakeNet that require conditions to be met (minimum user count, etc.) before a channel may be registered. Where bots are used for administrative functions such as this, they may need more access than a normal client connection allows. Some versions of IRC have a "Service" protocol that allows clients with these extra powers. Such server-sanctioned bots are called IRC services.

Bots are not always welcome. Some IRC networks forbid the usage of bots. One of the reasons for doing so is that each nickname connected to the network increases the size of the network database which is being kept in sync across all servers. Allowing for bots in large networks can cause a relevant amount of network traffic overhead which needs to be financed and may even lead to netsplits.[1][2]

Comparison

IRC botPrimary developersSoftware licenseOperating systemProgramming languageFirst public release - date (version)Latest version - date (version)Notable featuresFunction scopeWebsite
AnGeL-BotBenedikt HübschenGPL-3WindowsVisual Basic 61999 (1.2.0)2003-05-31 (1.6.2 BETA 10)The fastest Windows IRC bot of its time, extensive scripting support via Windows Scripting, compatibility with multiple Active Scripting languages, colored partyline, and Eggdrop-compatible botnet support.multi-purpose[1]
CardinalJohn MaguireMITCross-platformPython 32013-02-03 (beta)2021-01-13 (3.1.0)Ease of development, re-loadable asynchronous plugins, python decorators for commands, IRC events, simple persistent JSON data storage and a well-documented API.?[2]
PynfokuranGPL-2Cross-platformPython2002-10-212013-02-27Network bridging/relaying, basic "infobot" capabilities, googling, 3 access tiers, and a shorter-link function. Easily extensible and fully disk-persistent.?[3]
SupybotJeremiah Fincher, James Vega and othersBSDCross-platformPython? (0.30)2018-05-10 (0.84.0)Many plugins, SSL, multiple networks support, (un)loading plugins, threads, configuration registry, standardized command syntax, argument parsing?[4], [5]
CerberusStefan HüsgesGPL-3.0Cross-platformPHP2008-02-18 (beta)2016-10-04 (1.6.0)??[6]
CinchDominik Honnef, Lee JarvisMITUnix-likeRuby2010-07-08 (0.3.2)2015-03-31 (2.2.5)Threaded, object-orientedBot writing framework[7]
CNT BotCNT Bot TeamUnlicenseUnix-likeTCL2015-06-15 (0.1)2015-07-24 (0.2)Voting, polling, elect/recall delegates, hold plenaries, admission control, automatically connects to other CNT BotsDemocracy software for digital activists building flat, horizontal networks[8]
DarkbotJason Hamilton, juiceGPLUnix-likeC???responds to user questions from database[9]
DaskebDigitGPLUnix-likeHaskell??minimal starter bot?[10]
EggdropEggheadsGPLCross-platformC1993-122022-03-06 (1.9.2)SSL, botnet, partyline, filesharing, user management, IRC bot uptime contest, supports scripting in tclmulti-purpose[11]
EnergyMechProtonGPLUnix-likeC1998-09-10 (2.5.24, first release by Proton)2018-03-09 (3.0.99p4)single-thread multi-bot capable, low resource usage, botnet, user management, channel moderation, built-in irc bouncer, can be upgraded without disconnecting, IRC bot uptime contest, supports scripting in tcl, python.multi-purpose[12]
ErebotFrançois PoirotteGPL-3.0Cross-platformPHP2010-10-092011-05-08Extensible with many modules and support for multiple networks, multiple identities, SSL/TLS, STARTTLS, IdentD and various IRC daemons extensions. Can be used as a framework to create advanced channel bots.games[13]
ErwinIdar LundGPL-2.0+Cross-platformPerl2004-04-05 (1.0-beta1)2017-03-19 (1.2.0)Easily expandable by writing new modules.Replies to users from database.[14]
FoxBotLee WatsonGPL-3.0Cross-platformJava?2013-09-06 (0.9)Command framework is designed to make writing commands easy. Has simple and powerful permissions system. Simple and fully explained config.?[15]
FoxEyeAndriy GrytsenkoGPLUnix-likeC2011-01 (beta)2011-02-24 (0.9b10)Multithreaded, multinetworked. Encoding chosen per user or network. Extendible by plugins, can be used as client or whatever. Currently supported scripts: Lua, Tcl.kit to build internet client / server / gateway, primary for messaging networks[16]
GambotDerek HoaglandGPLUnix-likePerl2011-1-12011-07-16 (1.0)Framework for creating bots. Messages handled completely asynchronously. Extensible in any programming language. Can be updated without reconnecting, restarting, or reloading.Twitter and other feeds, games / memes,[17]
GozerbotBart ThateBSDUnix-likePython?? (1.0.1)IRC and XMPP bot; can be bridged with Google Wave?[18]
mikoskinenGeoff WoollamsMITCross-platformC#2015-10-082015-10-09 (0.1)IRC commands can launch any command line or http request to allow any program or script to control the bot by its output. MySQL support for non user initiated actions and 3rd party integration.?[19]
guppySvetlana TkachenkoGPLCross-platformPython2011-03-202012-12-11 (0.4.3)easy to install, modular structuremulti-purpose[20]
IbidJonathan Hitchcock, Michael Gorven, Stefano RiveraGPL3, core under MITUnix-likePython, Twisted in IM protocols? (0.1.0)? (0.1.1)Twisted engine allows connecting to multiple IM sources, including IRC, XMPP, SILC, Campfire, NMDC? + plugin "factoids" responds to users from database[21]
InfobotKevin LenzoArtistic LicenseUnix-likePerl2004-082008-08-01 (1.5.3)?replies to users from database[22]
IrcBotMarlincBSDUnix-likePHP? (0.1)? (1.2)??[23]
jenniMichael YanovichEFLv2Unix-likePython (2)??Threaded, general purpose, includes some games. Easily expandable by writing new modules.user management, conversation / lookup, games[24]
irccdDavid DemelierISCCross-platformC++17 and JavaScript2013-09-13 (1.0.0)2021-01-04 (3.1.1)Multiple servers, rules filtering, templates system, cross-platform, extensible with Javascript and C++ pluginsbot framework[25]
JerkbotJason StephensonArtistic License 2.0Cross-platformSleep2014-02-10 (1.0)2017-08-29 (1.7.65)Configurable chatter bot, written as jIRCii scriptresponsive chatter + learns + modules[26]
JSONBOTBart ThateMITUnix-likePython2010-042012-03-23 (0.84.4)Beta[27]
JZBotAlexander Boyd, Maximilian Dirkmann, James StokerLGPLCross-platformJava???feeds, werewolf / maffia, karma system, reminders[28]
KGBMartín Ferrari and Damyan IvanovGPL-2+Cross-platformPerl2008-07-14 (Git)2014-09-17 (1.3.3)KGB is a system that provides notifications on IRC for commits made to Git, Subversion and CVS repositories.notifications on code commits[29]
LambdabotAndrew J. Bromage et al.MITUnix-likeHaskell? (1.0)2011-01-20 (4.2.3.2)Many plugins; usable offline as a Haskell development tool; embeddable in GHCihaskell development tool[30]
LimnoriaBSDCross-platformPython?2022-07-29 (2022.07.29)See SupybotA maintained fork of Supybot[31]
MozbotIan Hickson, Chris CrewsMPLCross-platformPerl???services to developer communities[32]
MrBot - AwesomeBotMattMcApache v2Cross-platformJavaNovember '132014-06-01A Semi-Advanced Java Bot with a ton of feactures and still more coming... join #AwesomeBot on espernet for more info..factoids + lastseen[33]
nibblrjrKirjavaNoneCross-platformJavascript??bot framework for creating custom behaviour dynamicallyBot framework[34]
node-ircMartyn SmithGPLv3Unix-likeJavascript?2015-01-16 (0.3.9)Node- native non blockingNodeJS IRC library.[35]
PircBotPaul MuttonGPLCross-platformJava2001-08-012009-12-14 (1.5.0)Framework for creating botsframework to create bots[36]
pmxbotYouGov, Jamie Turner, Chris MulliganMITUnix-likePython 3??Designed to be extensible for a work IRC networkconversation, search, games[37]
Ruby-rbotruby-rbotGPLUnix-likeRuby??flexible plugin systemTwitter & RSS feeds, searches, games[38]
Rubybotumby24GPL-3.0Cross-platformRuby?2013-10-30 (4.2)Simple, yet easily extensible.user-management[39]
SchongoSelig, Posiden, Wil?Cross-platformPython 3??Focus on simplicity, highly extendable module system, rapid development cycleinternet searches[40]
ShadowAaron BlakelyMITCross-platformPerl2012-08-312022-06-09Reloadable plugins, channel management, weather info, link metadata fetching, RSS, and more.multi-purpose, bot framework[41]
ShockyShockah, clone1018GPL-2.0Cross-platformJava??A Very advanced Java irc bot, that supports all kinds of stuffuser management, factoids, games, karma system[42]
sircbotAlpine LinuxGPL-2.0Unix-likeC (Lua scriptable)?2011-12-15Simple IRC bot for shell and lua scripts?wiki
Sopeldgw, Elsie Powell, Dimitri Molenaars, Elad Alfassa, Ari KoivulaEFLv2Cross-platformPython2012-07-15 (3.0.0)2020-08-04 (7.0.6)SSL, (un)loading of plugins at runtime, threaded, user/channel/plugin settings database, Python 3 support. (Formerly Willie; based originally on phenny)Twitter & other feeds, internet searches, meetingbot, link information[43]
TennuHavvy (Ryan Scheel)ISCCross-platformJavascript2012-03-08 (1.0.0)2016-06-22 (4.9.0)Node.js, Plugin architecture, Promise drivenuser management[44]
Ultrosgdude2002 and rakiruArtistic License 2.0Cross-platformPython22013-04-08 (Git)2014-09-25 (1.1.0+ - see commits)Python IRC bot with an extensible plugin and protocol system, and a package manager. Also supports mumble.internet searches, gamesgit
VikingBotTor Henning UelandGPL-3.0Unix-likePHP?2013-10-09Simple PHP based IRC bot with support for secure IRC servers and plugin supportbot stats[45]
YauibJulien PalardSimplified BSDCross-platformPython2011-03-22?Plugins can be written in any languagetakes all pubmsg and priv and tries to match the first word as a command to a directory with exec files and the rest as parameters[46]

See also

References