Sopel is a simple, easy-to-use, open-source IRC utility bot, written in Python. It's designed to be easy to use, easy to run, and easy to make new features for.
Sopel comes with a ton of ready-made features for you to use. It can leave notes for people, give you reminders, and much more.
Developing for Sopel 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: Wikipedia, Reddit, Bugzilla, unit conversion, and more
- Support for remembering timezone, weather location, and other information for users
- Persistent user and channel settings database using 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.
A number of other people have helped out along the way, and they can be seen in the CREDITS file in Sopel's source code.
Frequently Asked Questions
- Where can I report a problem with Sopel?
- You can file a ticket in our GitHub issue tracker, or join the developers Embolalia, Tyrope, and elad in #sopel on Freenode.
- Is there somewhere I can go to find modules other people have written for Sopel?
- Starting in Sopel 6, you'll be able to just search PyPI for "sopel_modules". In the mean time, the closest we have is sopel-extras.
- Will Phenny/jenni modules work with Sopel?
- Probably. There are a small number of features in the older versions which are implemented differently in Sopel. The vast majority of modules should work without problems, though.
- Can I use Sopel with Docker?
- Probably, but there's not much reason to. We only provide support for one version of Sopel 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 Sopel work on Google App Engine?
- Probably not. App Engine doesn't currently do sqlite, which Sopel requires for its database.
- Does Sopel run on OSX? Windows? PyPy? Jython?
- Probably, probably, probably, probably. Sopel 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 Sopel 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 Sopel do it. Sopel 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 Sopel saying
- Sopel 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.