Thanks for your interest in contributing! This guide will help you get started.
-
Clone the repo
git clone https://github.com/r0k3/marvin.git cd marvin -
Install Python 3.12+
-
Install uv — a fast Python package manager
-
Install dependencies
uv sync
-
Full stack (optional) — starts NATS, Ollama, MCP Gateway, and Brain Worker:
docker compose up -d
uv run pytestTests live in the tests/ directory.
Marvin uses ruff for linting and formatting.
uv run ruff check .
uv run ruff format .src/marvin/ # Core library
├── server.py # MCP Gateway (FastMCP)
├── service.py # Business logic layer
├── vault.py # Obsidian vault management
├── git.py # Git integration
├── index.py # Hybrid search index (sqlite-vec + FTS5)
├── embeddings.py # Local ONNX embeddings (fastembed)
├── broker.py # NATS message broker
├── worker.py # Brain Worker daemon
├── consolidation.py # Computational sleep engine
├── extraction.py # Entity extraction (langextract)
├── models.py # Pydantic data models
├── config.py # Configuration (pydantic-settings)
└── skill.md # Agent skill instructions
tests/ # Pytest test suite
docs/ # MkDocs documentation
examples/ # Example vaults showcasing memory types
- Fork the repo and create a feature branch
- Ensure tests pass (
uv run pytest) - Follow existing code style (
uv run ruff check .) - Write clear commit messages
- Open a pull request with a description of your changes