IRC bot

Last updated
An IRC bot performing a simple task. IrcBot.png
An IRC bot performing a simple task.

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.

Contents

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 bot Primary developers Software license Operating system Programming language First public release - date (version)Latest version - date (version)Notable featuresFunction scope Website
CardinalJohn Maguire MIT Cross-platformPython 32013-02-03 (beta)2021-01-13 (3.1.0)??
Pynfokuran GPL-2 Cross-platformPython2002-10-212013-02-27??
SupybotJeremiah Fincher, James Vega and others BSD Cross-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? ,
Cerberus Stefan Hüsges GPL-3.0 Cross-platformPHP2008-02-18 (beta)2016-10-04 (1.6.0)??
CinchDominik Honnef, Lee JarvisMITUnix-likeRuby2010-07-08 (0.3.2)2015-03-31 (2.2.5)Threaded, object-orientedBot writing framework
CNT BotCNT Bot Team Unlicense Unix-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
DarkbotJason Hamilton, juiceGPL Unix-like C  ? ? ?responds to user questions from database
DaskebDigitGPL Unix-like Haskell  ? ?minimal starter bot?
Eggdrop EggheadsGPL Cross-platform C1993-122022-03-06 (1.9.2)SSL, botnet, partyline, filesharing, user management, IRC bot uptime contest, supports scripting in tclmulti-purpose
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
ErebotFrançois Poirotte GPL-3.0 Cross-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
ErwinIdar Lund GPL-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.
FoxBotLee Watson GPL-3.0 Cross-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.?
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
GambotDerek Hoagland GPL Unix-like Perl 2011-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,
GozerbotBart Thate BSD Unix-likePython ? ? (1.0.1)IRC and XMPP bot; can be bridged with Google Wave ?
GraystoneGeoff Woollams MIT Cross-platform C# 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.?
guppySvetlana Tkachenko GPL Cross-platform Python 2011-03-202012-12-11 (0.4.3)easy to install, modular structuremulti-purpose
IbidJonathan Hitchcock, Michael Gorven, Stefano Rivera GPL3, core under MIT Unix-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
Infobot Kevin Lenzo Artistic License Unix-like Perl 2004-082008-08-01 (1.5.3) ?replies to users from database
IrcBotMarlinc BSD Unix-likePHP ? (0.1) ? (1.2) ??
jenniMichael Yanovich EFLv2 Unix-likePython (2) ? ?Threaded, general purpose, includes some games. Easily expandable by writing new modules.user management, conversation / lookup, games
irccdDavid Demelier ISC Cross-platform C++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
JerkbotJason Stephenson Artistic License 2.0 Cross-platform Sleep2014-02-10 (1.0)2017-08-29 (1.7.65)Configurable chatter bot, written as jIRCii scriptresponsive chatter + learns + modules
JSONBOTBart ThateMITUnix-likePython2010-042012-03-23 (0.84.4)Beta
JZBotAlexander Boyd, Maximilian Dirkmann, James Stoker LGPL Cross-platform Java  ? ? ?feeds, werewolf / maffia, karma system, reminders
KGBMartín Ferrari and Damyan Ivanov GPL-2+ Cross-platformPerl2008-07-14 (Git)2014-09-17 (1.3.3 see commits)KGB is a system that provides notifications on IRC for commits made to Git, Subversion and CVS repositories.notifications on code commits
LambdabotAndrew J. Bromage et al.MITUnix-like Haskell  ? (1.0)2011-01-20 (4.2.3.2)Many plugins; usable offline as a Haskell development tool; embeddable in GHCi haskell development tool
Limnoria BSD Cross-platformPython ?2017-03-30 (2017.03.30)See SupybotA maintained fork of Supybot
MozbotIan Hickson, Chris Crews MPL Cross-platformPerl ? ? ?services to developer communities
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
nibblrjrKirjavaNoneCross-platformJavascript ? ?bot framework for creating custom behaviour dynamicallyBot framework
node-ircMartyn SmithGPLv3Unix-likeJavascript ?2015-01-16 (0.3.9)Node- native non blocking?
PircBotPaul MuttonGPLCross-platformJava2001-08-012009-12-14 (1.5.0)Framework for creating botsframework to create bots
pmxbotYouGov, Jamie Turner, Chris MulliganMITUnix-likePython 3 ? ?Designed to be extensible for a work IRC networkconversation, search, games
Ruby-rbotruby-rbotGPLUnix-like Ruby  ? ?flexible plugin systemTwitter & RSS feeds, searches, games
Rubybotumby24 GPL-3.0 Cross-platformRuby ?2013-10-30 (4.2)Simple, yet easily extensible.usermanagement
SchongoSelig, Posiden, Wil ?Cross-platformPython 3 ? ?Focus on simplicity, highly extandable module system, rapid development cycleinternet searches
ShockyShockah, clone1018 GPL-2.0 Cross-platformJava??A Very advanced Java irc bot, that supports all kinds of stuffuser management, factoids, games, karma system
sircbot Alpine Linux GPL-2.0 Unix-likeC (Lua scriptable) ?2011-12-15Simple IRC bot for shell and lua scripts? git wiki
Sopeldgw, Elsie Powell, Dimitri Molenaars, Elad Alfassa, Ari Koivula EFLv2 Cross-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
TennuHavvy (Ryan Scheel)ISC Cross-platform Javascript2012-03-08 (1.0.0)2016-06-22 (4.9.0)Node.js, Plugin architecture, Promise drivenuser management
Ultrosgdude2002 and rakiru Artistic License 2.0 Cross-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, games git site
VikingBotTor Henning Ueland GPL-3.0 Unix-likePHP ?2013-10-09Simple PHP based IRC bot with support for secure IRC servers and plugin supportbot stats
YauibJulien Palard Simplified BSD Cross-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

See also

Related Research Articles

BitchX Free IRC client

BitchX is a free IRC client and has been considered to be the most popular ircII-based IRC client. The initial implementation, written by "Trench" and "HappyCrappy", was a script for the IrcII chat client. It was converted to a program in its own right by panasync. BitchX 1.1 final was released in 2004. It is written in C and is a TUI application utilizing ncurses. GTK+ toolkit support has been dropped. It works on all Unix-like operating systems, and is distributed under a BSD license. It is originally based on ircII-EPIC and eventually it was merged into the EPIC IRC client. It supports IPv6, multiple servers and SSL and a subset of UTF-8 with an unofficial patch.

Internet Relay Chat Protocol for real-time Internet chat and messaging

Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages as well as chat and data transfer, including file sharing.

QuakeNet

QuakeNet is an Internet Relay Chat (IRC) network, and was one of the largest IRC networks. The network was founded in 1997 by Garfield and Oli as a new home for their respective countries' Quake channels. At its peak on February 8, 2005, the network recorded 243,394 simultaneous connections. As of 2020, there are 9 servers and about 12000 users remaining.

XDCC File sharing service

XDCC is a computer file sharing method which uses the Internet Relay Chat (IRC) network as a host service.

Bersirc Former Internet Relay Chat client

Bersirc is a discontinued open-source Internet Relay Chat client for the Microsoft Windows operating system. Linux and Mac OS X versions were "in development". Bersirc uses the Claro toolkit, which aims to provide an interface to native windowing systems and widgets on all operating systems. Microsoft .NET and Qt toolkit ports were also planned. The final version of Bersirc was 2.2.14.

Internet Relay Chat services is a name for a set of features implemented on many modern Internet Relay Chat networks. Services are automated bots with special status which are generally used to provide users with access with certain privileges and protection. They usually implement some sort of login system so that only people on the access control list can obtain these services.

Botnet Collection of compromised internet-connected devices controlled by a third party

A botnet is a number of Internet-connected devices, each of which runs one or more bots. Botnets can be used to perform Distributed Denial-of-Service (DDoS) attacks, steal data, send spam, and allow the attacker to access the device and its connection. The owner can control the botnet using command and control (C&C) software. The word "botnet" is a portmanteau of the words "robot" and "network". The term is usually used with a negative or malicious connotation.

Eggdrop

Eggdrop is a popular IRC bot and the oldest that is still being maintained.

An IRCd, short for Internet Relay Chat daemon, is server software that implements the IRC protocol, enabling people to talk to each other via the Internet. It is distinct from an IRC bot that connects outbound to an IRC channel.

Client-to-client protocol (CTCP) is a special type of communication between Internet Relay Chat (IRC) clients.

A BNC is a piece of software that is used to relay traffic and connections in computer networks, much like a proxy. Using a BNC allows a user to hide the original source of the user's connection, providing privacy as well as the ability to route traffic through a specific location. A BNC can also be used to hide the true target to which a user connects.

IRC script Way of shortening commands while connected to an IRC network

IRC scripts are a way of shortening commands and responding automatically to certain events while connected to an IRC network. There are many different scripting languages for different types of IRC clients: ircII, BitchX, HexChat, mIRC, Visual IRC, Bersirc, and others have their own scripting languages, many of which share common features and syntax and therefore are easily portable from one IRC client to another.

An Internet bot, web robot, robot or simply bot, is a software application that runs automated tasks (scripts) over the Internet, usually with the intent to emulate human activity on the Internet, such as messaging, on a large scale. An Internet bot plays the client role in a client–server model whereas the server role is usually played by web servers. Internet bots are able to perform tasks, that are simple and repetitive, much faster than a person could ever do. The most extensive use of bots is for web crawling, in which an automated script fetches, analyzes and files information from web servers. More than half of all web traffic is generated by bots.

IRC subculture refers to the particular set of social features common to interaction on the various Internet Relay Chat (IRC) systems around the world, and the culture associated with them. IRC is particularly popular among programmers, hackers, and computer gamers.

CGI:IRC CGI program

CGI:IRC is a CGI program written in Perl that allows access to IRC via a web browser. It is designed to be flexible and has many uses such as an IRC gateway for an IRC network, a chat-room for a website or to access IRC when stuck behind a restrictive firewall.

MSN Chat was the Microsoft Network version of IRCX, which replaced Microsoft Chat, a set of Exchange-based IRCX servers first available in the Microsoft Comic Chat client, although Comic Chat was not required to connect.

Mibbit Web based IRC client

Mibbit is a web-based client for web browsers that supports Internet Relay Chat (IRC), Yahoo! Messenger, and Twitter. It is developed by Jimmy Moore and is designed around the Ajax model with a user interface written in JavaScript. It is the IRC application setup by default on Firefox.

Konversation IRC client

Konversation is an Internet Relay Chat (IRC) client built on the KDE Platform and is free software released under the terms of the GNU GPL-2.0-or-later. Konversation is currently maintained in the KDE Extragear Network module, which means that it has its own release cycle which is independent from the main KDE applications. It is the default IRC client in many prominent Linux distributions, such as openSUSE, the KDE spin of Fedora, and Kubuntu.

KVIrc IRC Client

KVIrc is a graphical IRC client for Linux, Unix, Mac OS and Windows. The name is an acronym of K Visual IRC in which the K stands for a dependency to KDE, which became optional from version 2.0.0. The software is based on the Qt framework and its code is released under a modified GNU General Public License.

References

  1. RFC   1324 - 2.5.1, Size
  2. von Loesch, Carl (2003-07-17). "Functionality provided by systems for synchronous conferencing: 1.2.1 Growth" . Retrieved 2019-01-29.