Contributing to Engrams
Contributions of all kinds are welcome — bug reports, feature requests, documentation improvements, and code contributions.
Code of conduct
By participating in this project you are expected to uphold our Code of Conduct. Please report unacceptable behaviour via a GitHub issue.
Reporting bugs
Open a new issue on GitHub Issues and include:
- A clear description of the bug
- Steps to reproduce
- Engrams version (
engrams --version) - Operating system and Python version
- Relevant error messages or log output
Suggesting enhancements
Open a GitHub issue describing:
- The proposed enhancement
- The problem it solves or benefit it provides
- Any design considerations
Development setup
1. Clone and install
git clone https://github.com/stevebrownlee/engrams-mcp.git
cd engrams-mcp
# Create virtual environment (uv recommended)
uv venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
# Install all dependencies including dev extras
uv pip install -r requirements.txt
uv pip install -e ".[dev,dashboard,test]" 2. Run tests
pytest
# or with coverage
pytest --cov=src/engrams 3. Code style
# Format
black src/ tests/
isort src/ tests/
# Lint
flake8 src/ tests/
autoflake --remove-all-unused-imports -r src/ Pull request workflow
- Fork the repository
- Create a branch:
git checkout -b feature/my-feature - Make your changes and add tests
- Ensure all tests pass and code style is clean
- Push to your fork and open a PR against
main - Provide a clear description of your changes
Documentation improvements
Documentation lives in docs/src/pages/ as Astro .astro files.
To preview locally:
cd docs
npm install
npm run dev Licensing
By contributing you agree that your contributions will be licensed under the Apache-2.0 License.