metabase-snapshot

Track every dashboard change and give AI agents readable context on your BI layer

GitHub Python CLI

Overview

Metabase doesn't give you a clean way to track dashboard changes in git. metabase-snapshot exports every dashboard, card, and SQL query into human-readable YAML with SQL in separate files, so diffs actually make sense. Run it on a schedule and commit the output for a full audit trail.

Features

Installation

pip install metabase-snapshot

Quick Start

# Take a snapshot of your Metabase instance metabase-snapshot snapshot \ --url https://your-metabase.com \ --user admin@company.com \ --password $MB_PASSWORD \ --output ./snapshots # See what changed since last snapshot git diff snapshots/

Use Cases

Agentic dashboard management

AI coding agents can read snapshot YAML to understand your full Metabase setup — which dashboards exist, what SQL they run, how cards are arranged. Point an agent at the snapshot directory and it has complete context to create new dashboards, update queries, or reorganize cards from plain-language instructions.

Dashboard governance

Teams can track who changed which dashboard and when. Pair with branch-based workflows to require review before dashboard changes go live.

dbt + Metabase workflow

If you manage your data models in dbt, metabase-snapshot lets you keep your BI layer in the same git repo. When a dbt model changes, you can see whether downstream dashboards need updating.

View on GitHub
James Riso

James Riso

Founder, Riso Group

James is a data and AI strategy consultant who helps companies build scalable analytics infrastructure and data-driven growth strategies. Connect on LinkedIn.