Contributing

Memory is open source and welcomes contributions. Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.

Ways to Contribute

Report Bugs

Found something broken? Open an issue with steps to reproduce.

Request Features

Have an idea? Open a discussion to explore new capabilities.

Submit Code

Fix bugs or implement features via pull requests.

Improve Docs

Help make Memory easier to understand and use.

Add Connectors

Build new data source integrations for more platforms.

Share Feedback

Try Memory and share your experience in discussions.

Development Setup

  1. Fork the repository

    Click "Fork" on the GitHub repo.

  2. Clone your fork
    git clone https://github.com/YOUR_USERNAME/memory.git
    cd memory
  3. Set up development environment
    python3.11 -m venv .venv
    source .venv/bin/activate
    pip install -e ".[dev,web,all-sources]"
  4. Create a branch
    git checkout -b feature/your-feature-name
  5. Run tests
    pytest tests/
    ruff check src/

Pull Request Guidelines

  • Keep PRs focused - One feature or fix per PR
  • Write tests - New features need test coverage
  • Update docs - If your change affects documentation
  • Follow style - Run ruff format before committing
  • Clear description - Explain what and why

Issue Guidelines

Good Issue Example

Title: Gmail connector fails with "token expired" after 7 days

Description: Steps to reproduce: 1. Connect Gmail, 2. Wait 7 days, 3. Try to sync.

Expected: Token auto-refreshes. Actual: 401 error.

Environment: Memory 0.1.0, Python 3.11, macOS 14.2

Less Helpful Issue Example

Title: Gmail doesn't work

Description: It's broken, please fix.

Code of Conduct

Be respectful, constructive, and welcoming. We're all here to build something useful.

  • Be kind and patient with newcomers
  • Assume good intentions
  • Focus on the work, not the person
  • No harassment, discrimination, or personal attacks

Getting Help

If you're stuck or have questions:

First Time Contributing?

Look for issues labeled good-first-issue on GitHub. These are beginner-friendly and well-scoped.