Supybot is an IRC bot written in Python; its goals are primarily clarity, utility, and flexibility.
Clarity refers both to the code with which the bot is implemented and the ease with which the users can discover how to use the bot. One of the primary reasons Supybot was written was to give Python programmers a better option for writing IRC bots — the framework since developed makes writing new plugins simple and easy.
Utility refers to the bot's ability to serve a useful purpose. Including several useful plugins by default (and always gladly accepting more :)), chances are, Supybot does what you want. If it doesn't yet, chances are it will, if someone's interested in writing the plugin.
Flexibility refers both to the ability of the user to customize the way the bot behaves and the ability of the programmer to achieve his goals when writing plugins for Supybot. We've written a complete, highly flexible capability system, allowing those who run bots to specify with the granularity of a single command exactly how their users should be able to interact with the bot. For programmers, we offer entry points at every level of the framework for the utmost in flexibility with respect to the IRC protocol. At the highest level, they can simply reply to messages, but at the lowest level they can access the actual socket to the IRC server.
We hope that you'll find that Supybot is an excellent and easy replacement for a number of other bots, including Blootbot, Mozbot, RBot, Moobot, and Infobot.
Documentation is always being added to Supybot. Here's what we have so far:
Supybot can be downloaded from its Sourceforge Download Page . It's licensed as a liberal 2-clause BSD license, so you can basically do with it what you will, as long as you keep the copyright notice intact.
The fine print: Supybot has integrated several other small Python projects into its source tree in order to reduce the need for people to download other Python packages. These are governed by their associated licenses.
The latest and greatest Supybot is also available via SVN. The ChangeLog is also available. Supybot has an extensive test suite (at last count more than 930 tests making a combined more than 8,100 asserts) so SVN is almost always in a usable state.
We try to make as much use of the facilities Sourceforge provides for free as we can, so our Project Page is always an excellent place to start your search for support.
We pride ourselves in being quick to respond to Bugs and many Feature Requests (we've been known to whip up a plugin for a specific purpose on the fly, while you wait :)). For more complicated bugs or more in-depth feature requests, you should use the Sourceforge Bug/RFE Trackers so we don't forget your needs or the details thereof. Don't feel discouraged at all with the number of either Bugs or RFEs that are open at any given point; as you can tell by the number of closed Bugs and RFEs, we do actually burn through them pretty quickly. We also try to give precedence to Bugs and RFEs submitted by non-developers.
For immediate support or just plain conversation, feel free to visit our IRC channel, #supybot, on either irc.freenode.net or irc.oftc.net (we have to test the Relay plugin somehow :)). There is, of course, a supybot there. His prefix character is '@'. Be sure to try "@relay names" to see who's watching you from the other network :)
To be honest, we don't care. Jeremy (jemfinch) pronounces it "Sue Pie Bot." The vast majority of other people pronounce it "Soupy Bot." Either one works.
Supybot requires at least Python 2.3. Python itself is so easy to compile and install, even to your home directory, that we don't consider it much of a burden.
Most of Supybot's plugins don't require a database, but of those that do, most of them use SQLite via the PySQLite module. This is a nice little database that keeps all its data in individual files, reducing the headache of requiring users to setup a database server with appropriate users/permissions etc. We have, however, implemented configuration and abstraction for database-independence, so making the various database-based plugins support MySQL or PostgreSQL or any other database should not be very hard at all.
We've successfully run Supybot on FreeBSD, Solaris, Windows 9x/2k/XP, and Linux (Debian, Gentoo, and Redhat are all tested). Any platform that supports Python should properly run Supybot; we're always happy to hear reports of another platform on which Supybot runs and its tests pass.
Supybot's irclib is actually independent of the networking framework. It can support a variety of drivers, from sockets to files to interactive sessions. By default, we use a small, simple socket+select driver to handle networking, and it's well tested and works well. We also have drivers to integrate with the Twisted framework, a popular asynchronous networking/everything else framework.
Great, we're glad you like it! If you want to help us out, then you can do any number of things: