A simple, clean, easy to modify Slack chatbot
At the moment, I consider limbo to be feature complete, and the project is in maintenance mode. Every once in a while I come in and update the dependencies.
Contributions will be considered and may be accepted, you may want to bill@billmill.org">email me because I might not notice your PR.
At the moment, this software only officially supports python >=3.10, because the test fixtures fail on older versions of python due to an urllib3 inconsistency I don’t understand.
It should still run on other versions of python, but for the moment they’re unfortunately not tested.
make run
(or make repl
for local testing)!gif dubstep cat
to test it outI recommend that you always run limbo in a virtualenv so that you are running in a clean environment.
--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 sqlite3 database. Defaults to limbo.sqlite3.--pluginpath
, -pp
: The path where limbo should look to find its plugins (defaults to /plugins).--version
, -v
: Print a version number and exit%(asctime)s:%(levelname)s:%(name)s:%(message)s
.Note that if you are getting an error message about not seeing environment variables, you may be running limbo as sudo
, which will clear the environment. Use a virtualenv and always run limbo as a user process!
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.
By default, plugins won’t react to messages from other bots (just messages from humans). Define an on_bot_message
function to handle bot messages too. See the example plugins for an easy way to define these functions.
These are the current default plugins: