Helga is a full-featured chat bot for Python 3.8+ using Twisted. Helga originally started as a python fork of a perl-based IRC bot olga, but has grown considerably since then. Early versions limited support to IRC, but now include other services like XMPP, HipChat, Slack, and Discord. Full documentation can be found at http://helga.readthedocs.org.
Note: Version 2.0.0+ requires Python 3.8 or higher. For Python 2.7 support, use version 1.x.
Helga supports IRC, XMPP, HipChat, Slack, and Discord out of the box. Note, however, that helga originally started as an IRC bot, so much of the terminology will reflect that. The current status of non-IRC support varies by backend. In the future, helga may have a much more robust and pluggable backend system to allow connections to any number of chat services.
Contributions are always welcomed, whether they be in the form of bug fixes, enhancements, or just bug reports. To report any issues, please create a ticket on github. For code changes, please note that any pull request will be denied a merge if the test suite fails.
See CONTRIBUTING.md for detailed contribution guidelines, including:
- Development setup with modern tools (Black, Ruff, Mypy)
- Pre-commit hooks for code quality
- Testing guidelines
- Code style standards
- Pull request process
If you are looking to get help with helga, join the #helgabot IRC channel on freenode.
A docker compose file is included, which has a irc server and mongodb instance. Once you bring the cluster using docker-compose up, you can connect to the irc on localhost port 6667, and join the #test channel.
Helga can be easily deployed to IBM Cloud using Cloud Foundry. A complete deployment guide, configuration files, and automated deployment script are included:
- Quick Start: Run
./deploy-ibmcloud.shfor an interactive deployment - Manual Deployment: See
IBM_CLOUD_DEPLOYMENT.mdfor detailed instructions - Configuration: Edit
ibmcloud_settings.pyor use environment variables
The deployment includes:
- Cloud Foundry manifest (
manifest.yml) - IBM Cloud-specific settings (
ibmcloud_settings.py) - MongoDB service integration
- Environment-based configuration
For complete instructions, see IBM_CLOUD_DEPLOYMENT.md.
A docker compose file is included for local development and testing. It includes an IRC server
and MongoDB instance. Once you bring up the cluster using docker-compose up, you can connect
to the IRC server on localhost port 6667 and join the #test channel.
Copyright (c) 2014 Shaun Duncan
Helga is open source software, dual licensed under the MIT and GPL licenses. Dual licensing was chosen for this project so that plugin authors can create plugins under their choice of license that is compatible with this project.
Helga has been modernized with current Python best practices and tooling. See MODERNIZATION.md for details on:
- Modern Python packaging (pyproject.toml)
- GitHub Actions CI/CD
- Pre-commit hooks and linting (Ruff, Black, Mypy)
- Enhanced Docker configuration
- Automated dependency updates