DoltLite: A SQLite fork with Git-style version control, built with 2k agent PRs
TL;DR Highlight
DoltLite swaps SQLite's B-tree for a Prolly Tree to add Git-style branching, reaching Beta via ~2,000 agent PRs.
Who Should Read
A backend developer who uses SQLite as an embedded DB and needs branch, diff, and rollback for data, or worries about agents modifying the database.
Core Mechanics
- Only SQLite's storage layer was replaced
- The SQL parser, analyzer, file system layer, and test harness are stock SQLite.
- Only the B-tree layer was swapped for a Prolly Tree (content-addressed B-tree) on a single-file chunk store.
- Git features now live in SQLite
- Locally it supports branch, merge, diff, rebase, cherry-pick, and reset.
- Remotely it supports push, pull, clone, and fetch, with DoltHub usable as the sync backend.
- SQL compatibility tests nearly all pass
- It passes 100% of sqllogictest (5.8M complex queries).
- It passes 99.46% of SQLite's 892,277 TCL acceptance tests, with 4,809 known divergences.
- Divergences come from primary-key tables instead of rowid, chunks instead of pages, and no WAL/journal files.
- Reads are close to parity, writes are slower
- In-memory DBs are 10% slower on reads and 60% slower on writes versus SQLite.
- File-backed DBs match on reads and are 10% slower on batched writes.
Community Reactions
- Skepticism about test confidence
- Some commenters said it is 1.2x to 4x slower and can't match SQLite's level of validation.
- Several said they wouldn't trust their data to an agent-built database.
- Simpler alternatives suggested
- One commenter said copying the file, a copy-on-write filesystem, or a SQLite VFS would be faster to build, run, and validate for forking.
- Interest for local-first apps
- One commenter building a local-first music app that syncs across devices was excited about it.
- Gaps and curiosity
- One commenter called the lack of a Go client the biggest limitation.
- Another asked how the process was automated to this degree, and whether subagents were used.
How to Apply
- Run a compatibility check on a copy of your SQLite file
- Install DoltLite locally today and open a copy of your production DB to run key queries.
- Grep your code for direct reliance on rowid, pages, or WAL.
- Branch before agent work and reset on failure
- Create a branch before any agent task that modifies the DB, and review results with diff.
- Roll back with dolt_reset('--hard') if something breaks.
- Batch your writes and benchmark
- Wrap autocommit single writes into transactional batches and compare against SQLite under the same load.
- Measure small autocommit writes first since they are 3.1x slower.
- Try push/pull for offline sync needs
- In a prototype that needs cross-device sync, use DoltHub as the remote and run push, pull, and clone.
- Check whether the conflict handling fits your requirements.
Try It
# Paste into Claude or ChatGPT (the article's facts turned into a checklist prompt)
I'm evaluating moving a SQLite-based service to DoltLite (a SQLite fork with Git-style version control, Prolly Tree instead of B-tree).
Facts from the article: SQL layer is stock SQLite, tables keyed by primary key instead of rowid, chunks instead of pages, no WAL/journal files, small autocommit writes 3.1x slower, reads on file DBs at parity.
My service:
- Schema: {{schema}}
- Main query patterns: {{query patterns}}
- Write pattern (autocommit or batched, writes per second): {{write pattern}}
- Use of WAL, rowid, or page-related code: {{usage}}
Using only the facts above, give me a table of:
1. Code spots likely to break
2. Spots where write performance matters and how to batch them
3. Five tests to run first
Next step: ask it to turn item 1 into actual grep commands for your codebase.Terminology
Related Papers
Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy
Saving long tool output to files cut GPT-5.1 accuracy by 11.3 points; naming the authoritative file restored it.
Fake News, Real Crashes: Information Injection Attacks on LLM Financial Trading Agents
Fake headlines hijacked LLM trading agents 62% of the time versus 14% for prompt injection.
Harness Engineering 101: The LLM is the brain, the harness is the body
An agent is a loop managing a JSON array; 16 chapters build one from scratch
Harness2 by Google Research – Recursive Agent Harnessing
Recursively refining the harness with fixed model weights raised benchmark scores by up to 11.8 points.
Ousted Savannah police officer gave ICE agent husband access to Flock system
A police officer shared her Flock login with her ICE-agent husband; an audit found 983 searches and she was fired
Tmux and Claude Code: Sessions, Send-Keys, and the Ceiling
Running Claude Code agents in tmux works well, but limits appear around four agents.