The ops layer for the databases AI apps run on

Your AI app runs on SQLite.
Who's watching it?

Agents, RAG pipelines, and edge services all ship on SQLite — then drift, bloat, and corrupt in the dark. Litescope is the operations layer: see your schema, catch faults, and fix them — from one local file to a fleet of thousands.

litescope fleet health
$ litescope fleet health Fleet: production · 312 database(s) · 1 critical · 1 warning tenant-0203 CORRUPT — integrity_check failed (page 142) tenant-0148 WAL 2.1GB — checkpoint starved, reads degraded tenant-0001 18.4MB · wal 1.2MB · wal tenant-0002 17.9MB · wal 0.9MB · wal 312 databases · 310 healthy · 1 warning · 1 critical
The problem

AI shipped on SQLite.
Nobody's watching it.

Every agent, RAG store, and AI app reaches for SQLite — it's the zero-config default. Then the schema drifts, the WAL bloats, a file corrupts, and the backup nobody tested can't be restored.

Postgres has a decade of tooling for this. SQLite — now running real production behind AI apps, Turso, and D1 — has almost none. Litescope is that tooling.

AI apps & agents  LangChain, RAG stores, local-first AI, MCP servers
Turso & Cloudflare D1  libSQL edge replicas, per-tenant databases at scale
Local & embedded  app databases, CI fixtures, backups
The toolchain

Every operation, one binary

A pure-Go CLI with zero dependencies. Works on local files and remote databases through the same commands.

🩺
doctor free

One command, one verdict

Point it at a database and get a single checkup — integrity, health, index advice, and schema lint — with a shareable, self-contained HTML report.

🔍
diff free

See what changed

Human-readable schema and data diff between any two databases. JSON, Markdown, and HTML output for CI and PR comments.

🧹
lint free

Catch schema smells

Flags SQLite design anti-patterns — no primary key, untyped columns, non-STRICT tables, AUTOINCREMENT, non-integer PKs — in CI, before they ship.

📈
advise free

Fix slow queries

Catch the performance bugs AI-generated schemas ship: foreign keys with no index, redundant indexes, and full table scans. Get runnable CREATE INDEX fixes.

🗺️
schema free

Inspect & diagram

Inspect tables, columns, and indexes on local, Turso, or D1 — or emit a Mermaid ERD with --erd to paste straight into a GitHub README.

📦
dump free

Portable SQL export

Export schema + data to portable SQL with sqlite3 .dump parity — blob/NULL/quote-safe and round-trip verified. Schema-only or per-table too.

📥
import free

Spreadsheet to SQLite

Turn a CSV, TSV, or JSON file into a real, typed SQLite database in one command — header-aware, type-inferred. Or just run litescope yourfile.csv and it imports itself. Fix it, then export it back out.

📈
metrics free

Scrape it into Grafana

Render fleet health and schema-drift as Prometheus / OpenMetrics text — one-shot for a textfile collector, or --serve a /metrics endpoint. Drops straight into Grafana and Alertmanager.

🩻
health free

Spot faults early

One command flags corruption, WAL bloat from a starved checkpoint, and fragmentation — the faults that silently break production SQLite.

🔒
validate free

Lock your schema in CI

Snapshot a known-good schema and fail the build when an unplanned change sneaks in. Migration locking for your pipeline.

🗂️
explorer free

Browse your data

Visual table explorer with row-level queries and a SQL console. Get oriented fast without leaving the app.

🤖
mcp free

Let your AI drive it

An MCP server so Claude or any agent can call Litescope as read-only tools — and inspect the database it just built. Diagnose freely; a human commits the fix.

migrate free

See the blast radius first

Diff → runnable SQL with every op classified Safe / Risky / Destructive, plus declarative plan (with a CI drift gate) and versioned authoring (new / status) — Atlas-grade. Apply safely with apply/up: auto-backup, single transaction, FK verification, and rollback.

📡
monitor free

Catch drift over time

Baseline a known-good schema and check for drift on demand (cron/CI), or watch continuously with webhook alerts to Slack and Discord.

🛡️
check free

Trust your backups

Batch PRAGMA integrity checks plus schema and row-count comparison against a reference. Catch a bad backup before you need it.

🌐
fleet free

Operate hundreds at once

Read-only shock diagnosis — fingerprint + health across a Turso org or D1 account — and the full lifecycle: converge drift to canonical, recover corrupt databases, staged canary rollouts. A fleet of any size.

📊
serve free

Your fleet in a browser

One command — litescope serve — opens a local web dashboard: topology map colored by health, worst-first faults, and a schema-drift fingerprint. Plus a read-only data browser and SQL console — click a table to preview rows, or run any SELECT. Runs on your machine or your own server. No cloud, no account, no telemetry.

How it works

Three steps to production safety

1

Baseline

Snapshot your known-good schema. Takes one command and outputs a versioned JSON file you commit to your repo.

2

Watch

Run drift detection on a schedule or continuously. Get instant alerts when something changes unexpectedly.

3

Operate

Validate backups, generate safe migrations, and roll them out across your entire fleet with one command.

Why it bites

One database is fine.
A thousand is a different job.

Turso and Cloudflare D1 made one-database-per-tenant the norm — hundreds or thousands of SQLite files, each its own production system. That's exactly where the old tools assume "one database" and fall apart. Three moments turn a quiet fleet into a 3 a.m. page.

🧬
Drift you can't even see

"I thought I ran one schema."

A per-tenant migration half-fails and your fleet quietly splits into many shapes — and you don't know it happened. The next migration is the one that breaks. sqlite3 can't tell you this; fleet fingerprint shows exactly how many schemas you really run.

💥
Deploy across hundreds

"How do I roll this out safely?"

DDL locks the entire SQLite file. A migration across 500 tenants is 500 downtime rolls of the dice. migrate apply wraps each in backup → transaction → FK verify → auto-rollback; fleet migrate --canary proves it on a few before the rest.

🚨
A tenant DB is corrupt, 3 a.m.

"Which ones broke, and how bad?"

The first command to run when the pager fires. fleet health triages every database worst-first, fleet recover restores from verified backups, and blast-radius flags the at-risk neighbors in the same group.

Run the shock diagnosis, see your own drift, and fix the whole fleet — free and open source, on a fleet of any size.

Fleet lifecycle

Diagnose, then treat —
schema and faults.

Per-tenant SQLite is exploding, and they don't drift into one shape — they fracture into many. Litescope runs the fleet the way an SRE runs a service.

  • 🔬
    fingerprint Cluster every database by schema. You think you run one — see how many you actually run, and exactly how each drifted.
  • 🩺
    health Parallel fault triage: corruption, WAL bloat from a starved checkpoint, fragmentation, unreachable. Sorted worst-first.
  • 🔧
    converge Auto-generate and stage the migration that brings every drifted database back to canonical — canary, halt-on-failure, rollback.
  • ♻️
    recover Restore corrupt databases from verified backups; quarantine the unrecoverable so they're excluded from future ops.
litescope fleet fingerprint
$ litescope fleet fingerprint Fleet: production · 312 database(s) · 3 distinct schemas ██████████████████ 264 schema 645e9e58 (canonical) ███░░░░░░░░░░░░░░░░ 45 schema 530de62d - missing table audit_logs █░░░░░░░░░░░░░░░░░░ 3 schema 4aa5e064 + users.temp_col extra column → litescope fleet converge to bring all 312 onto canonical
AI-native

Your AI can drive it too.

Litescope ships an MCP server, so Claude, Cursor, or any agent can call it as a tool — and inspect the database it just built.

  • 🤖
    One command litescope mcp — point Claude Desktop at it and the tools appear.
  • 🔒
    Diagnose freely, treat with a human The agent gets read-only tools — health, diff, fingerprint, and migration plans with blast-radius. It can recommend a fix; a person commits it.
claude_desktop_config.json
{ "mcpServers": { "litescope": { "command": "litescope", "args": ["mcp"] } } } "use litescope to health-check ./app.db" Claude calls litescope_health → reads the report
Free & open source

The whole toolchain is free.
Forever.

Litescope is open source under the GNU AGPL-3.0. Every command — diff, migrate, monitor, the entire fleet lifecycle, and the local web dashboard — is unlocked for everyone, on a fleet of any size. No license key, no tiers, nothing to unlock.

Coming later · Hosted dashboard

One thing we'll host for you

The only paid offering is optional and runs beside the open-source tool, never gating it. Running SQLite on Turso, Cloudflare D1, and local files? The CLI you already use becomes the agent — litescope push streams health and schema metadata (never your data) to a hosted dashboard that shows your entire fleet, thousands of instances, on one screen, with time-series drift history and alerts when something breaks.

It runs on a metadata-only edge stack (Cloudflare Workers + D1), so it costs almost nothing to operate — and there's nothing to host yourself unless you want to: litescope serve already gives you the same dashboard locally, free. The hosted version is planned and demand-gated — see the roadmap. Need enterprise self-host or support? dl_litescope@crode.net.

Litescope dashboard — fleet health, topology map, fault triage, and schema fingerprint on one screen

Run this locally today with litescope serve — free. The hosted version is the multi-user, always-on cloud edition.

Install

Up and running in seconds

One pure-Go binary. No runtime, no dependencies.

$brew install croc100/tap/litescope