Skip to content

Installation

Marivo requires Python 3.12 or newer.

Install the base library from PyPI:

Terminal window
pip install marivo

Install the backend extra that matches the datasource you want to query:

BackendInstall command
DuckDBpip install "marivo[duckdb]"
MySQLpip install "marivo[mysql]"
Postgrespip install "marivo[postgres]"
ClickHousepip install "marivo[clickhouse]"
Trinopip install "marivo[trino]"
All packaged backendspip install "marivo[all]"

Scaffold a new project in the current directory with the CLI:

Terminal window
marivo init

marivo init creates the project skeleton and installs the Marivo agent skills:

PathPurpose
marivo.tomlProject manifest. The project name defaults to the directory name.
models/Where you author datasource and semantic declarations.
.marivo/Project-local state: sessions, evidence, and cached metadata.
.claude/skills/marivo-semantic, .claude/skills/marivo-analysisMarivo skills for Claude Code (symlinked into the project).
.codex/skills/marivo-semantic, .codex/skills/marivo-analysisThe same skills for Codex.

init is idempotent: existing files are left untouched and reported as skipped, so it is safe to re-run — for example after upgrading to a release that ships updated skills. Re-running only adds what is missing. Use marivo init --force to delete the artifacts above and recreate them from scratch.

The result is a ready-to-author project:

your-project/
marivo.toml
models/
.marivo/
.claude/skills/ # marivo-semantic, marivo-analysis
.codex/skills/ # marivo-semantic, marivo-analysis

Add .marivo/ to .gitignore; version-control marivo.toml and models/ (see Quick Start).

Marivo is a Python library, not a hosted service. Deploy a Marivo project by installing the library where the agent runs, checking in datasource and semantic declarations, and providing datasource secrets through environment variables referenced by *_env fields.

For local development from this repository:

Terminal window
python3 -m venv .venv
.venv/bin/pip install -e ".[dev,duckdb,trino]"
.venv/bin/python -c "import marivo; print(marivo.__name__)"