/limbo

A simple, clean, easy to modify Slack chatbot

Primary LanguagePythonMIT LicenseMIT

Limbo

A Slack chatbot

Installation

  1. Clone the repo
  2. Create a bot user if you don't have one yet, and copy the API Token
  3. export SLACK_TOKEN="your-api-token"
  4. make run (or make repl for local testing)
  5. Invite Limbo into any channels you want it in, or just message it in #general. Try typing !gif dubstep cat to test it out

kitten mittens

Command Arguments

  • --test, -t: Enter command line mode to enter a limbo repl.
  • --hook: Specify the hook to test. (Defaults to "message").
  • -c: Run a single command.
  • --database, -d: Where to store the limbo tinydb database. Defaults to log.json.
  • --pluginpath, -pp: The path where limbo should look to find its plugins (defaults to /plugins).

Environment Variables

  • SLACK_TOKEN: Slack API token. Required.
  • LIMBO_LOGLEVEL: The logging level. Defaults to INFO.
  • LIMBO_LOGFILE: File to log info to. Defaults to none.
  • LIMBO_LOGFORMAT: Format for log messages. Defaults to %(asctime)s:%(levelname)s:%(name)s:%(message)s.
  • LIMBO_PLUGINS: Comma-delimited string of plugins to load. Defaults to loading all plugins in the plugins directory (which defaults to "/plugins")

Commands

It's super easy to add your own commands! Just create a python file in the plugins directory with an on_message function that returns a string.

You can use the !help command to print out all available commands and a brief help message about them. !help <plugin> will return just the help for a particular plugin.

These are the current default plugins:

Docker

  • How do I try out Limbo via docker?
    • @PeterGrace maintains a public build of limbo, available from the docker registry. Executing make docker_run will start the default bot.
    • make docker_stop will stop the bot
  • When I start the docker container, I see an error about unable to source limbo.env. Is this a problem?
    • No. The limbo.env file only exists when using Kubernetes with the included opaque secret recipe for storing your environment variables.
  • I'd like to develop plugins for Limbo, but would still like to use Docker to run the bot. Is there a quick way to add plugins to the bot?
    • Yes! Use the included Dockerfile.dev as a template, and simply build via make docker_build You'll then need to start the bot with your new_image_name, for example docker run -d -e SLACK_TOKEN=<your_token> new_image_name

Contributors