The Most Popular Chatbot Projects on GitHub

GitHub is home to many chatbot projects. The following are among the most popular, based on the number of watchers and stars.


Botkit is a development kit from Howdy for creating and integrating bots. It’s based on Node.js and is available under the MIT open source license. Developers can use their choice of NLP services, messaging platforms, and databases. Additionally, starter kits are available to create a bot that works in a specific environment, and a number of them are available as separate GitHub projects. Using Botkit, developers can create standalone bots or add one to an existing Node.js application.


Chatterbot is a Python library which implements a ”conversational dialog engine” for chatbots and their bots can be created in any human language. Moreover, developers can ”train” the bot by giving it statements and responses and a logic adapter matches the user’s input against the training data and finds the statement with the closest match. Currently, training files are available in English, Spanish, and Portuguese. The library is available under the BSD 3-clause license.


Botpress is a framework for creating bots under Node.js. Its aim is to let developers create bots which non-technical people can manage. The bots use SQLite and PostgreSQL for databases. It’s available under the AGPLv3 license, with an option to switch to a paid support license. The design makes heavy use of independent modules, and third parties are encouraged to create and share them. A separate GitHub repository contains officially supported modules.


BotMan is a PHP library for building chatbots distributed under the MIT license and can be used by itself or in a Laravel-based bundle called BotMan Studio. Drivers are available for popular messaging channels, and developers can create their own drivers. A Web Driver and Web Widget allow adding a bot to an HTML page. Middleware hooks are available to add services. Support for the Dialogflow NLP service lets developers create bots with natural-language input.