Err is a plugin based chatbot designed to be easily deployable, extensible and maintainable.
It allows you to start scripts interactively from your chatrooms for any reason: random humour, starting a build, monitoring commits, triggering alerts ...
You can look at the already not up to date catalog to get an idea of the current contributions.
It is really easy to add your own features.
It is open source under the GPL3 license.
Requirements
It is written in Python 2.7+ and runs under Linux / Windows and MacOS. Note: Only linux is really tested daily.
Screenshots
Features
Backends
- XMPP : Tested with hipchat, openfire and Jabber but should be compatible with any standard XMPP servers.
- CampFire support
- IRC support
- Supports MUCs (chatrooms)
- Local Graphical Console (for testing/dev)
- Local Text Console (for testing/dev)
Included
- an !help command that generates dynamically the documentation from the python docstrings of the commands
- A command history system where the users can recall a previous command
- Can proxy and route one 2 one messages to MUC so it can enable simpler XMPP notifiers to be MUC compatible (for example the jira XMPP notifier).
Administration and Security
- Can be setup so a restricted list of persons have the administration rights
- Dynamic plugin architecture : the bot admin can install/uninstall/update/enable/disable plugins dynamically just by chatting with the bot.
- Plugins can be hosted publicly or privately on git
- Plugins can be configured just by chatting with the bot (no need to change setup files for every plugin)
- Configs can be exported and reimported (!export)
- Technical logs can be inspected just by chatting with the chat
Provides for Extensibility
- a smooth learning curve for you to write your first plugin within minutes (see example below)
- test consoles for superfast development roundtrips
- a support for subcommands
- an automatic persistance store per plugin
- a really simple webhooks integration
- a polling framework for the plugins
- an easy configuration framework
- a templating framework to display fancy HTML messages
More details about its features can be found on the wiki
Or Head to the main github page and follow the installation instructions if you want to try a private instance.
Extend it
Head to the plugin dev tutorial to see how it is easy to extend it
Background
At Mondial Telecom (http://www.mondialtelecom.eu), we needed a chat bot over XMPP so it can reach the non techie audience of the company. We liked it so much and we started to write so much features that we decided to make a more modular bot framework and share it.