Errbot

Errbot is a chatbot, a daemon that connects to your favorite chat service and bring your tools and some fun into the conversation.

Last verified:

Visit Errbot

What is Errbot?

Errbot is an open-source chatbot daemon written in Python that connects to your favorite chat service and brings your tools into the conversation. Its primary goal is to make it easy for developers and DevOps teams to write their own plugins so the bot can perform tasks like deployments, retrieving information online, triggering tools via APIs, monitoring commits, starting builds, and more.

Key features include built-in support for IRC, Telegram, and XMPP chat servers, with add-on support for Slack, Discord, Gitter, Webex, Mattermost, RocketChat, Skype, TOX, VK, and Zulip. Errbot offers chatops-based administration where you can install/uninstall/update/enable/disable plugins directly from chat, configure plugins via the !config command, manage MUC room membership, enforce ACL controls for admin/user rights per command, create full backups with !backup, and inspect logs from chat or stream to Sentry.

The bot is designed for DevOps teams, developers, and anyone wanting to automate tools and scripts in chatrooms. It supports webhook callbacks, conversation flows to track conversation states, markdown formatting with tables and embedded images, polling for periodic tasks, text development/debug consoles, subcommands with arg parsing, and card rendering under Slack. Every plugin has presetup storage for persistence.

Errbot is self-documenting since docstrings automatically become help text via !help command. It includes an end-to-end test backend for development and is licensed under GPL-3.0, making it free software available for any use case from chatroom engagement to home security automation.

Errbot pricing

Pricing model: Freemium

Errbot is free and open-source software available under the GPL-3.0 license. There is no paid tier or commercial version. The software is completely free with no subscription costs. You only incur infrastructure costs for self-hosting on your own Linux, Windows, or Mac server. Plugins from the public repos are also free, though some third-party plugins may have their own licensing.

Errbot pros

  • Open-source and free under GPL-3.0 license
  • Written and easily extensible in Python
  • Built-in support for IRC, Telegram, and XMPP
  • Add-on support for Slack, Discord, Gitter, Webex, Mattermost, RocketChat, Skype, TOX, VK, Zulip
  • Chatops-based administration - manage bot by chatting
  • Install/uninstall/update plugins via !repos command from chat
  • !plugin config command for runtime plugin configuration
  • ACL control feature with admin/user rights per command
  • !backup command creates full export of persisted data
  • Logs can be inspected from chat or streamed to Sentry
  • Webhook callbacks support for external integrations
  • Conversation flows to track conversation states from users
  • Presetup storage for every plugin with self['key'] = 'value'
  • Self-documenting - docstrings become help automatically with !help
  • Text development and debug consoles included
  • Subcommands and various arg parsing options available (re, command line type)
  • Polling support for periodic tasks
  • End-to-end test backend for plugin development
  • Markdown extras formatting with tables, embedded images, links
  • Configuration helper for chat-based plugin configuration
  • 3.2k stars on GitHub with active community

Errbot cons

  • Requires Python 3.6+ (not compatible with Python 2.x)
  • Some chat systems require external add-ons not built-in
  • External backends like Slack/Discord need separate github instructions
  • Had bugs reported with Python 3.X compatibility by some users
  • Smaller community compared to major chatbot platforms
  • Documentation scattered across readthedocs and GitHub
  • No official hosted/cloud offering - self-hosted only
  • No built-in GUI dashboard - everything is chat-based
  • Plugin dependencies may require manual pip install
  • Complex ACL configuration requires editing config.py file

Frequently asked questions about Errbot

What is Errbot?

Errbot is a chatbot daemon written in Python that connects to your favorite chat service and brings your tools into the conversation. It allows you to start scripts interactively from chatrooms for purposes like chatops, starting builds, monitoring commits, triggering alerts, deployment, retrieving online information, or triggering tools via APIs.

Is Errbot free?

Yes, Errbot is free software available under the GPL-3.0 license. There are no paid plans or subscriptions. The entire software including all core features is completely free and open-source.

What chat platforms does Errbot support?

Errbot has built-in support for IRC, Telegram, and XMPP. With add-ons it supports Slack, Discord, Gitter, Webex, Mattermost, RocketChat, Skype, TOX, VK, and Zulip. External backends require following their respective GitHub pages for installation instructions.

How do I install Errbot?

Install Errbot by running: pip install errbot, then create a directory for data files, initialize it with 'errbot --init', and start it with 'errbot'. It runs on Python 3.6+ on Linux, Windows, and Mac. Using a virtualenv is recommended.

How do I write my own plugin?

Writing plugins is extremely simple in Python. Create a class derived from BotPlugin, use the @botcmd decorator for commands, and the docstring becomes help text automatically. Example: a 'Hello, world!' plugin takes just a few lines and creates a !hello command.

How do I manage plugins?

You can administer plugins via chat commands: !repos search to find plugins, !repos install <name> to install from public repos or any git URI, !repos uninstall to remove, !repos update all to update, !plugin deactivate/activate to temporarily disable, and !plugin blacklist to prevent loading at startup.

How do I configure Errbot?

Setup configuration goes in config.py (backend, storage, BOT_ADMINS, ACCESS_CONTROLS). Runtime plugin configuration is done via chat using !plugin config <plugin name>. The config-template.py file provides a documented template for config.py settings.

How do I restrict access to commands?

Use BOT_ADMINS in config.py for admin-only commands. For advanced control, use ACCESS_CONTROLS and ACCESS_CONTROLS_DEFAULT with filters like allowusers, denyusers, allowrooms, denyrooms, allowargs, denyargs, allowprivate, and allowmuc. Unix-style globbing is supported.

How do I get help with commands?

Issue !help to get a list of all available commands. Use !help <command> to learn more about a specific command. Errbot is self-documenting - your plugin docstrings automatically become the help text for commands.

Where can I get support?

For quick questions, join the chat at errbotio/errbot on Gitter. For plugin development questions, use Stackoverflow with tags errbot and python. For bugs or feature requests, use the GitHub project page. You can also use hashtag #errbot on Twitter.

Categories

Use cases

Browse all AI tools on NeedAnAI