Skip to content
Bot framework in Python with programmable interfaces and dynamic plug-in architecture.
Python Makefile Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Wrapper for python-telegram-bot to allow dynamic plug-in architecture, an attempt to make python-telegram-bot more hubottish.

Execution flow

  1. bin/pybot starts the bot with the selected adapter and using the configuration options defined in conf/pybot.conf or the command-line arguments.

  2. The selected adapter receives the message and sends it to the

  3. The loads in runtime all the .py files in the ./memory folder each time and try to execute a defined method, for example hear(message.text).

  4. Each module in ./memory with that method returns a response, the sends it to the and it sends the response back to the chat.

  • As the methods are dynamically loaded, you can edit and add the files in ./memory without need to restart, and they will be reloaded on the next message. Overkill but funny.

Makefile targets

usage:             Show this help
setup-venv:        Setup virtualenv
lint:              Run code linter to check code style
telegram:          Run pybot with the telegram adapter
docker-build:      Build the docker image for running pybot
docker-telegram:   Run with telegram adapter in the docker container
docker-lint:       Run pep8 in the docker container
docker-clean:      Remove the docker image

Execution example

make docker-telegram
docker run -it --rm --name pybot -v /Users/rael/Code/python/pybot:/usr/src/pybot -w /usr/src/pybot 'pybot' bin/pybot telegram
Starting pybot using conf token file. CTRL-C to quit.
2017-04-17 07:35:54,392 - pybot.interfaces.telegram - INFO - Bot raelbot up and ready!
2017-04-17 07:36:39,371 - pybot.brain - INFO - 116133952, Hello world!, 53693428, 2017-04-17 07:36:39,"53693428";


Contributions of all sizes are welcome.


You may copy, distribute and modify the software provided that modifications are described and licensed for free under LGPL-3 <>_. Derivatives works (including modifications or anything statically linked to the library) can only be redistributed under LGPL-3, but applications that use the library don't have to be.

You can’t perform that action at this time.