BotMan is a framework-agnostic PHP library for building chat bots that run across multiple messaging platforms from a single codebase, aimed at PHP developers and Laravel teams who want cross-platform bot logic without writing separate integration code for every service.
What it is
BotMan is an open-source PHP library, distributed under the MIT licence, that simplifies the task of developing bots for several messaging platforms at once. Its stated platform support covers Slack, Telegram, Microsoft Bot Framework, Nexmo, HipChat, Facebook Messenger and WeChat. The core is deliberately framework agnostic, so the same bot logic can run inside a plain PHP application or inside Laravel, where the package registers a service provider named BotMan\BotMan\BotManServiceProvider. The project lives in the Composer and Packagist ecosystem as the package botman/botman, with its documentation hosted at botman.io and a community Slack at slack.botman.io. Its repository topics are bot, bot-framework, botman, chatbot, chatbot-framework and php, which places it in the AI and machine learning category under AI interaction and interfaces.
The concrete problem it solves is duplication across messaging APIs. Every platform exposes a different way to receive a message and send a reply, so a team that wants the same bot on Slack and Facebook Messenger would otherwise maintain separate client code for each one. BotMan replaces that per-platform glue with one handler style, where a bot listens with hears() and answers with reply(). The README example shows the pattern directly: $botman->hears('I want cross-platform bots with PHP!', function (BotMan $bot) { $bot->reply('Look no further!'); });. The same handler can be wired to any supported platform driver, which is the whole point of the design.
Key capabilities
- Framework-agnostic bot core, usable in plain PHP or Laravel without rewriting handlers.
- Message handling through
hears() callbacks that receive a BotMan $bot instance and respond with reply().
- Platform support for Slack, Telegram, Microsoft Bot Framework, Nexmo, HipChat, Facebook Messenger and WeChat.
- Laravel integration through
BotMan\BotMan\BotManServiceProvider, with a publishable configuration file.
- Packagist distribution as
botman/botman, with version, monthly download and licence badges in the README.
- Documentation site at botman.io and a community Slack at slack.botman.io for support.
- Quality tooling visible in the README: Travis CI builds, Codecov coverage and Scrutinizer code quality badges.
Who uses it and how
- PHP teams that need one bot to answer on several messengers, using
hears() handlers instead of separate platform clients.
- Laravel applications that publish the BotMan config with
php artisan vendor:publish --tag=config --provider="BotMan\BotMan\BotManServiceProvider" and register handlers in the host app.
- Developers on plain PHP stacks, since the library does not require a framework to run.
- Projects with community-scale maintenance: 6,160 stars, 812 forks and 10 open issues, with contributions guided by
CONTRIBUTING.md.
- Teams that prefer self-hosted bot logic over routing conversations through a third-party bot platform.
Getting started
BotMan is installed as a PHP dependency through Composer, published on Packagist as botman/botman. In a stand-alone Laravel application, the configuration file is published with php artisan vendor:publish --tag=config --provider="BotMan\BotMan\BotManServiceProvider", and the full setup guide lives at botman.io.
How it compares
No paid products to be replaced by this project are listed among the facts, and no comparable alternative libraries are named in them either. It stands alone in this registry in that respect.
When to use it — and when not to
Choose BotMan when the bot is a PHP project and needs to reach several of the supported platforms from one handler set, since that is exactly the duplication it removes. Be aware that the README is short and defers nearly all operational detail to botman.io, so anyone evaluating the library should read the documentation site rather than the repository page. It is a poor fit for teams outside PHP, or for anyone who needs platform coverage beyond Slack, Telegram, Microsoft Bot Framework, Nexmo, HipChat, Facebook Messenger and WeChat.
project readme (upstream, from github) — read inline

BotMan


If you want to learn how to create reusable PHP packages yourself, take a look at my upcoming PHP Package Development video course.
About BotMan
BotMan is a framework agnostic PHP library that is designed to simplify the task of developing innovative bots for multiple messaging platforms, including Slack, Telegram, Microsoft Bot Framework, Nexmo, HipChat, Facebook Messenger and WeChat.
$botman->hears('I want cross-platform bots with PHP!', function (BotMan $bot) {
$bot->reply('Look no further!');
});
If you want to learn how to create reusable PHP packages yourself, take a look at my upcoming PHP Package Development video course.
Documentation
You can find the BotMan documentation at https://botman.io.
Stand Alone Configuration
If you are installing Botman in a stand alone Laravel application, you can publish the configuration file with the following command:
php artisan vendor:publish --tag=config --provider="BotMan\BotMan\BotManServiceProvider"
Support the development
Do you like this project? Support it by donating
Contributing
Please see CONTRIBUTING for details.

Security Vulnerabilities
If you discover a security vulnerability within BotMan, please send an e-mail to Marcel Pociot at [email protected]. All security vulnerabilities will be promptly addressed.
License
BotMan is free software distributed under the terms of the MIT license.