Development Guide

This guide will help you set up your development environment and contribute to OmniMind.

Prerequisites

  • Python 3.8 or higher
  • Git
  • Node.js and npm (for MCP server dependencies)

Setting Up Development Environment

  1. Clone the repository:
git clone https://github.com/Techiral/OmniMind.git
cd omnimind
  1. Install development dependencies:
pip install -e ".[dev]"
  1. Install pre-commit hooks:
pre-commit install

Code Style

OmniMind uses Ruff for code formatting and linting. The project follows these style guidelines:

  • Use type hints for all function parameters and return values
  • Follow the PEP 8 style guide
  • Use docstrings for all public functions and classes
  • Keep functions focused and single-purpose

Running Tests

The project uses pytest for testing. To run the test suite:

pytest

For more specific test runs:

# Run tests with coverage
pytest --cov=omnimind

# Run specific test file
pytest tests/test_client.py

# Run tests with verbose output
pytest -v

Documentation

Documentation is written in MDX format and uses Mintlify for rendering. To preview documentation changes:

  1. Install Mintlify CLI:
npm i -g mintlify
  1. Run the development server:
mintlify dev

Contributing

  1. Create a new branch for your feature:
git checkout -b feature/your-feature-name
  1. Make your changes and commit them:
git add .
git commit -m "Description of your changes"
  1. Push your changes and create a pull request:
git push origin feature/your-feature-name

Project Structure

OmniMind/
├── omnimind/           # Main package code
├── tests/             # Test files
├── examples/          # Example usage
├── docs/             # Documentation
├── static/           # Static assets
└── pyproject.toml    # Project configuration

Adding New MCP Servers

To add support for a new MCP server:

  1. Create a new configuration template in the examples directory
  2. Add the necessary server-specific code in the omnimind package
  3. Update documentation with new server information
  4. Add tests for the new server functionality

Release Process

  1. Update the version in pyproject.toml
  2. Update CHANGELOG.md
  3. Create a new release tag
  4. Build and publish to PyPI:
python -m build
python -m twine upload dist/*