> ## Documentation Index
> Fetch the complete documentation index at: https://techiral.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Development

> Contributing to OmniMind

# 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:

```bash theme={null}
git clone https://github.com/Techiral/OmniMind.git
cd omnimind
```

1. Install development dependencies:

```bash theme={null}
pip install -e ".[dev]"
```

1. Install pre-commit hooks:

```bash theme={null}
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:

```bash theme={null}
pytest
```

For more specific test runs:

```bash theme={null}
# 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:

```bash theme={null}
npm i -g mintlify
```

1. Run the development server:

```bash theme={null}
mintlify dev
```

## Contributing

1. Create a new branch for your feature:

```bash theme={null}
git checkout -b feature/your-feature-name
```

1. Make your changes and commit them:

```bash theme={null}
git add .
git commit -m "Description of your changes"
```

1. Push your changes and create a pull request:

```bash theme={null}
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:

```bash theme={null}
python -m build
python -m twine upload dist/*
```
