Thank you for your interest in HEMA! This document provides guidelines for contributing.
If you find a bug:
- Check if it's already reported in GitHub Issues
- If not, create a new issue with:
- Clear title describing the problem
- Steps to reproduce
- Expected vs. actual behavior
- Python/Node version, OS, environment
- Relevant logs or screenshots
Bug fixes, documentation improvements, and new features are welcome via pull requests.
# Fork and clone
git clone https://github.com/your-username/HEMA.git
cd HEMA
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment
cp .env.example .env
# Edit .env with your API key(s)
# Frontend
cd frontend && npm install- Create a branch from
main:git checkout -b fix/your-bug-fix-name
- Make your changes
- Test thoroughly
- Submit a pull request with a clear description
- Python: Follow PEP 8, use type hints where applicable
- JavaScript: Use consistent formatting with Prettier
Write clear, descriptive commit messages:
Fix energy data loading for UTC timestampsUpdate README installation instructions
HEMA is designed to be extensible. If you want to add new capabilities:
- New Agent: Create tools in
agents/tools/, agent inagents/specialized/, add routing inagents/graph/ - New Tools: Implement tool function, add to agent's tool list, update system prompt
- New LLM Provider: Add to
LLMProviderenum, implement inconfig/llm_factory.py
You are welcome to fork the repository and build on it under the GPL-3.0 license.
- Never commit API keys or credentials
- Never include real household data
- Use environment variables for secrets
- If you accidentally commit sensitive data, contact maintainers immediately
- Bug Reports: Open a GitHub Issue
- Questions: Open a GitHub Discussion
- Security Issues: See SECURITY.md
- Maintainer: Dr. Wooyoung Jung (wooyoung -at- arizona -dot- edu)
By contributing, you agree that your contributions will be licensed under the same GPL-3.0 license as the project.