All Projects → llimllib → Limbo

llimllib / Limbo

Licence: mit
A simple, clean, easy to modify Slack chatbot

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Limbo

Watson Online Store
Learn how to use Watson Assistant and Watson Discovery. This application demonstrates a simple abstraction of a chatbot interacting with a Cloudant NoSQL database, using a Slack UI.
Stars: ✭ 156 (-59.59%)
Mutual labels:  chatbot, slack
Bolt Python
A framework to build Slack apps using Python
Stars: ✭ 190 (-50.78%)
Mutual labels:  chatbot, slack
Fantasy football chat bot
GroupMe Discord and Slack Chatbot for ESPN Fantasy Football
Stars: ✭ 166 (-56.99%)
Mutual labels:  chatbot, slack
Messaging Apis
Messaging APIs for multi-platform
Stars: ✭ 1,754 (+354.4%)
Mutual labels:  chatbot, slack
hubot-code-review
A Hubot script for GitHub code review on Slack.
Stars: ✭ 38 (-90.16%)
Mutual labels:  slack, chatbot
Claudia Bot Builder
Create chat bots for Facebook Messenger, Slack, Amazon Alexa, Skype, Telegram, Viber, Line, GroupMe, Kik and Twilio and deploy to AWS Lambda in minutes
Stars: ✭ 1,717 (+344.82%)
Mutual labels:  chatbot, slack
Flottbot
A chatbot framework written in Go. All configurations are made in YAML files, or inside scripts written in your favorite language.
Stars: ✭ 175 (-54.66%)
Mutual labels:  chatbot, slack
Integrations
Connect your App to Multiple Messaging Channels with the W3C Open standard.
Stars: ✭ 721 (+86.79%)
Mutual labels:  chatbot, slack
Bottender
⚡️ A framework for building conversational user interfaces.
Stars: ✭ 3,803 (+885.23%)
Mutual labels:  chatbot, slack
Awesome Bots
The most awesome list about bots ⭐️🤖
Stars: ✭ 2,864 (+641.97%)
Mutual labels:  chatbot, slack
Botkit
Botkit is an open source developer tool for building chat bots, apps and custom integrations for major messaging platforms.
Stars: ✭ 10,555 (+2634.46%)
Mutual labels:  chatbot, slack
Yetibot
🤖 Extreme chatops bot for Slack and IRC 🔧 New contributors welcome 🏗
Stars: ✭ 311 (-19.43%)
Mutual labels:  chatbot, slack
Botonomous
A PHP Framework For Creating Autonomous Slack Bots
Stars: ✭ 109 (-71.76%)
Mutual labels:  chatbot, slack
Lookerbot
Lookerbot lets you access all your Looker data from Slack! Super fun!
Stars: ✭ 138 (-64.25%)
Mutual labels:  chatbot, slack
Cog
Bringing the power of the command line to chat
Stars: ✭ 910 (+135.75%)
Mutual labels:  chatbot, slack
Chatskills
Run and debug Alexa skills on the command-line. Create bots. Run them in Slack. Run them anywhere!
Stars: ✭ 171 (-55.7%)
Mutual labels:  chatbot, slack
Java Slack Sdk
Slack Developer Kit (including Bolt for Java) for any JVM language
Stars: ✭ 393 (+1.81%)
Mutual labels:  chatbot, slack
Slacker
Slack Bot Framework
Stars: ✭ 495 (+28.24%)
Mutual labels:  chatbot, slack
Sactive Bot
😈 An extensible chat bot framework. sactive-bot is an evolution of the open source hubot project. - https://www.shipengqi.top/sactive-bot .
Stars: ✭ 212 (-45.08%)
Mutual labels:  chatbot, slack
messaging-apis
Messaging APIs for multi-platform
Stars: ✭ 1,759 (+355.7%)
Mutual labels:  slack, chatbot

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

I recommend that you always run limbo in a virtualenv so that you are running in a clean environment.

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 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

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 "limbo/plugins")

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!

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.

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:

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].