SpinDB
raw JSON →SpinDB (v0.48.1) is a zero-configuration, Docker-free local database management tool that packages 21 database engines (PostgreSQL, MySQL, MariaDB, SQLite, DuckDB, MongoDB, FerretDB, Redis, Valkey, ClickHouse, Qdrant, Meilisearch, CouchDB, CockroachDB, SurrealDB, QuestDB, TypeDB, InfluxDB, Weaviate, TigerBeetle, LibSQL) into a single CLI. It runs directly on macOS, Linux, and Windows without Docker or VMs, providing commands to create, start, connect, run SQL/shell, backup, and clone databases. The tool persists data in ~/.spindb and exposes connection URLs. It is licensed under PolyForm Noncommercial and requires Node.js >=22 and pnpm >=8. Key differentiators include broad engine support, simple CLI, and no external dependencies like Docker.
Common errors
error Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/spindb' ↓
error spindb: command not found ↓
error Error: This version of spindb requires Node.js >=22 ↓
error Error: listen EADDRINUSE: address already in use :::5432 ↓
error Error: (FetchError) request to https://github.com/... failed, reason: connect ECONNREFUSED ↓
Warnings
gotcha Node.js 22+ is required; older versions cause cryptic errors on install. ↓
deprecated FerretDB v2 requires macOS/Linux; v1 on Windows uses plain PostgreSQL backend (not a full MongoDB replacement). ↓
gotcha Data persists in ~/.spindb/; accidental deletion of this directory removes all databases. ↓
breaking CLI commands changed in v0.30.0: 'spindb run' now requires -c or file argument; inline scripts removed. ↓
gotcha ClickHouse and LibSQL on Windows require WSL; native Windows is not supported. ↓
deprecated License is PolyForm Noncommercial; commercial use requires a separate license. ↓
gotcha Global install may require sudo on macOS/Linux; non-sudo installs may break PATH. ↓
Install
npm install spindb yarn add spindb pnpm add spindb Imports
- spindb (CLI) wrong
npm install spindb (without -g)correctnpm install -g spindb - spindb (programmatic usage not supported)
N/A - no programmatic API - spindb create wrong
spindb mydb create (wrong order)correctspindb create mydb --start --connect
Quickstart
npm install -g spindb
spindb create testdb --engine postgresql --start --connect
# Then inside psql:
SELECT version();
\q
spindb backup testdb --format sql --out backup.sql