Willie is a simple, lightweight, open source, easy-to-use IRC utility bot, written in Python. It's designed to be easy to use, easy to run, and easy to make new features for.
Willie comes with a ton of ready-made features for you to use. It can leave notes for people, give you reminders, check RSS feeds, and much more.
Developing for Willie is a great way to familiarize yourself with Python. It's easy to start, but there's no limit to the cool things you can do with it.
- Fully documented API for writing new modules
- SSL Support
- IRCv3 support, with SASL authentication
- Easy quickstart wizard
- Dynamic topic support using topic masks
- Numerous modules: meetbot, YouTube, Reddit, movie information, and more
- Support for remembering timezone, weather location, and other information for users
- Presistant user and channel settings database using MySQL or SQLite
- Ability to easily run as a daemon
- Safe asynchronous inter-module communication
- And much, much more
Sean Palmer was the original creator of the bot, which he called phenny.
Embolalia improved it even more, with a lot of help from Dimitri Molenaars and Elad Alfassa, and renamed it to Willie. This is the current and most advanced version of the bot, which is supported by Nerdfighteria Network.
A number of other people have helped out along the way, and they can be seen in the CREDITS file in Willie's source code.
Frequently Asked Questions
- Where can I report a problem with Willie?
- You can file a ticket in our GitHub issue tracker, or join the developers Embolalia, Tyrope, and elad in #willie on Freenode.
- Is there somewhere I can go to find modules other people have written for Willie?
- The closest we have is willie-extras. We are considering some options for making something better. They'll be available in Willie 6.
- Will Phenny/jenni modules work with Willie?
- Probably. There are a small number of features in the older versions which are implemented differently in Willie. The vast majority of modules should work without problems, though.
- Can I use Willie with Docker?
- Probably, but there's not much reason to. We only provide support for one version of Willie at a time, and it already supports running multiple instances side-by-side. If you really need to containerize dependencies, virtualenv is a lot easier.
- Does Willie work on Google App Engine?
- Probably not. App Engine doesn't currently do sqlite, which Willie requires for its database.
- Does Willie run on OSX? Windows? PyPy? Jython?
- Probably, probably, probably, probably. Willie itself is pure Python (though some included modules have dependencies that aren't, like lxml), and an effort is made to be as platform-independant as possible. That said, most of the development is done on Linux, so some platform-specific bugs may be missed. If you do run into a bug, be sure to report it, because otherwise we won't know about it.
- How do I make Willie give me ops when I enter a channel?
- You should use your network's services to do this. If you're on a network like EFnet which doesn't have services, you can write a module to make Willie do it. Willie will never be as good at it as network services, though, so we don't include that functionality in our default set of modules.
- Why is Willie saying
- Willie is built to avoid being spammy as much as possible, so it
keeps track of the last few things its said. If too many of those last few
things are the same, it says
...a few times instead of repeating itself (and then stops trying to say that thing entirely, until its said some other things). Usually, this happens because someone is spamming the same command over and over, or something is just broken. It doesn't keep the bot from saying anything else, and it can say the same thing as often as you want, as long as it says some other stuff, too.