dolthub/dolt

Dolt – Git for Data

Dolt – Git‑style version control for SQL data

What it is – Dolt is a relational database (MySQL‑compatible) that treats tables like files in a Git repository. You can fork, clone, branch, merge, push, pull and commit changes to data and schema using the same commands you know from Git, either via a command‑line tool (dolt) or through SQL system tables, functions and stored procedures.

Why it matters – Traditional databases keep a single, mutable state. Dolt adds time‑travel and collaborative capabilities: every change is recorded as a commit, you can view diffs, resolve merge conflicts, and roll back to any point in history. This makes it useful for data‑centric workflows such as collaborative analytics, reproducible research, and—importantly for AI—agent memory where multiple agents need a shared, versioned knowledge base.

Key features

  • Git‑like CLI – init, add, commit, branch, merge, push, pull, etc., operate on tables instead of files.
  • SQL‑level version control – system tables like dolt_log, dolt_status and stored procedures such as dolt_add, dolt_commit expose the same functionality inside any MySQL client.
  • MySQL‑compatible server – dolt sql-server runs on the standard MySQL port (3306); any MySQL client can connect.
  • Full relational features – foreign keys, indexes, triggers, check constraints, stored procedures, and up to twelve‑table joins.
  • Hosting options – public sharing via DoltHub, self‑hosted DoltLab, or fully managed Hosted Dolt. A PostgreSQL‑compatible front‑end (Doltgres) is also available.
  • Cross‑platform installation – binaries (~103 MB), Homebrew, Arch, Chocolatey, Docker images, or build from source (Go + cgo).

Typical workflow

  1. dolt init a new repository (creates a folder for the database).
  2. Start the server: dolt sql-server.
  3. Connect with any MySQL client (dolt -u root -p '' sql or the standard mysql client).
  4. Create/alter tables via normal SQL.
  5. Stage changes with dolt_add (or dolt add <tables>), then commit with dolt_commit -m "msg".
  6. Use dolt_log, dolt_diff_<table> or dolt_status to inspect history, and dolt merge to combine branches.

Use cases highlighted by the project

  • Collaborative data science and analytics pipelines.
  • Versioned datasets for reproducible research.
  • Agent memory stores for multi‑agent AI systems (the README calls it “the best database for agent memory”).
  • Public data sharing (e.g., the DoltHub dataset catalog).

Getting started – Install via the provided script, Homebrew, Docker, or download the binary; configure a user name/email with dolt config; then follow the quick‑start in the README to spin up a server, create a schema, commit, and explore diffs.


All details above are taken directly from the repository’s README; no external assumptions have been added.

Related

  • Project
  • Project
  • Project
  • Project
  • Project