- Joe Bot -
Joe is a library used to write chat bots in the Go programming language.
Fork me on GitHub
- Chat adapters for Slack, Rocket.Chat, Telegram, Mattermost, IRC and () VK. Adding your own is easy as well.
- Event processing system to consume HTTP callbacks (e.g. from GitHub) or to trigger events on a schedule using Cron expressions
- Persistence of key-value data (e.g. using Redis or SQL)
- User permissions to restrict some actions to privileged users
- Unit tests are first class citizens, Joe has high code coverage and ships with a dedicated package to facilitate your own tests
- Minimal: Joe ships with no third-party dependencies except for logging and error handling.
- Modular: choose your own chat adapter (e.g. Slack), memory implementation (e.g. Redis) and more.
- Batteries included: you can start developing your bot on the CLI without extra configuration.
- Simple: your own message & event handlers are simple and easy to understand functions without too much cruft or boilerplate setup.
To get started writing your own bot with Joe, head over to the
Quickstart section or directly have a look at the
Basic Tutorials to learn the core concepts.
If you want to dive right in and want to know what modules are currently provided
by the community, then have a look at the Available Modules section.
Last but not least, you can find more instructions and best practices in the Recipes section.
To contribute to Joe, you can either write your own Module (e.g. to integrate
another chat adapter) or work on Joe’s code directly. You can of course also
extend or improve this documentation or help with reviewing issues and pull
requests at https://github.com/go-joe/joe. Further details about how to
contribute can be found in the CONTRIBUTING.md file.
The Joe library is licensed under the BSD-3-Clause License.