v0.1.0 · Redis · PostgreSQL · MongoDB · AI-agent MCP

Real databases for tests.
Zero Docker, zero setup.

Wire-compatible Redis, PostgreSQL and MongoDB in one npm install. Built-in dashboard, deterministic fixtures, and an MCP server so AI coding agents can reset, seed and query them on demand.

terminal
$ npm install -g localdb-simulator
+ localdb-simulator@0.1.0

$ lds init
✔ Created localdb-simulator.yaml

$ lds start
✔ redis     running  127.0.0.1:6379
✔ postgres  running  127.0.0.1:5432
✔ mongodb   running  127.0.0.1:27017
◆ Dashboard http://127.0.0.1:8080

$ lds status
  NAME      STATUS   PORT   UPTIME   MEMORY
  redis     running  6379   12s      4.2 MB
  postgres  running  5432   12s      38.1 MB
  mongodb   running  27017  12s      76.5 MB
3
wire protocols
RESP · PostgreSQL · MongoDB
14
MCP tools for AI agents
start · reset · seed · query
0
Docker required
just npm install

Database-dependent code deserves a real database in tests

Most teams settle for something that is almost a database. Each workaround hurts differently.

Docker is heavy

A daemon to install, images to pull, cold starts in CI. Many runners, sandboxes and locked-down machines simply do not have it.

Native installs drift

redis-server, mongod and Postgres must be installed per machine, and versions drift between teammates and CI.

SQLite is not your database

No wire protocol, no real dialect: tests pass against SQLite, then fail against production Postgres, Redis or MongoDB.

localdb-simulator removes all three. Wire-compatible Redis, PostgreSQL and MongoDB, zero Docker, zero system installs, deterministic state for developers and AI agents alike.

Why not the usual workarounds

The tools you already know solve one problem and create another.

localdb-simulator Docker + Testcontainers SQLite
Wire-compatible with production ✓ ✓ ✗
No Docker daemon ✓ ✗ ✓
Redis + Postgres + Mongo, one tool ✓ per-project ✗
AI agent interface (MCP) ✓ ✗ ✗
Deterministic reset for tests ✓ ✗ ✓
One npm install, nothing else ✓ ✗ usually

Everything you need for local development

One install, three wire-compatible databases, zero Docker, deterministic state.

No Docker required

Redis and PostgreSQL run as lightweight embedded processes; MongoDB uses a cached official binary. Nothing to install beyond npm i -g localdb-simulator.

Web Dashboard

Built-in dashboard at localhost:8080: service cards, live metrics charts, log streaming, and a data browser.

Ergonomic CLI

lds start, lds stop, lds logs, lds status. lds test --reset starts the server automatically if needed.

AI Agent ready

MCP server (lds mcp) gives Claude Code, Cursor and OpenCode 14 tools. Deterministic lds test --reset + fixtures + per-service compat_report.

Optional Persistence

Toggle persistence: true per service. Data survives restarts using LevelDB snapshots (Redis), pglite files (PostgreSQL), or WiredTiger (MongoDB).

Wire-compatible drivers

Connect with your existing code. ioredis, redis, pg, node-postgres: all work without modification.

How it works

One process, three wire protocols. Agents drive it through MCP, your app through ordinary drivers.

AI Agent
Claude Code · Cursor
→
lds mcp
14 MCP tools
→
Emulators
Redis · PostgreSQL · MongoDB on 127.0.0.1
→
Your app + tests
ioredis · pg · mongodb drivers

Wire protocol is real: code that works locally works against production unchanged.

Supported databases

Each emulator is wire-compatible: use your existing client library unchanged.

R
Redis ✓ Available

RESP over TCP. 90+ commands: strings, hashes, lists, sets, sorted sets, pub/sub, TTL, SELECT, pipelines. Honest coverage in lds compat.

127.0.0.1:6379

ioredis · redis

P
PostgreSQL ✓ Available

Powered by pglite (WebAssembly). Multi-database, MD5/trust auth, JSONB, prepared statements, transactions.

127.0.0.1:5432

pg · node-postgres

M
MongoDB ✓ Available

Powered by mongodb-memory-server: official mongod binary (~77 MB, cached after first run). Multi-database, aggregation pipeline, indexes.

127.0.0.1:27017

mongodb driver

My
MySQL ⚙ Optional · Docker

Requires Docker daemon. Spawns an official mysql:8 container. Gracefully disabled when Docker is unavailable.

127.0.0.1:3306

mysql2 · Sequelize

Works with your existing stack

ioredis node-redis pg Prisma Mongoose redis-cli psql mongosh

Quick start

Up and running in under a minute.

1 Install
# npm
$ npm install -g localdb-simulator

# pnpm
$ pnpm add -g localdb-simulator

# yarn
$ yarn global add localdb-simulator
2 Create config
# Generates localdb-simulator.yaml
$ lds init

# Or copy the sample config and edit
# localdb-simulator.yaml:
version: "1"
services:
  redis:
    enabled: true
    port: 6379
3 Start services
$ lds start
✔ redis     running  127.0.0.1:6379
✔ postgres  running  127.0.0.1:5432
◆ Dashboard http://127.0.0.1:8080

# Or start a specific service
$ lds start redis
4 Connect your app
// Redis
import Redis from 'ioredis';
const redis = new Redis('redis://127.0.0.1:6379');

// PostgreSQL
import { Pool } from 'pg';
const pool = new Pool({
  host: '127.0.0.1', port: 5432,
  database: 'myapp_dev',
});

One-click .env copy

The dashboard generates ready-to-paste .env connection strings for all running services. Click the copy button, paste into your project: done.

  • ✓ Formatted for common frameworks (Next.js, Prisma, TypeORM)
  • ✓ Updates automatically as services start/stop
  • ✓ Includes all configured databases and ports
.env Copied!
# Redis
REDIS_URL=redis://127.0.0.1:6379

# PostgreSQL
DATABASE_URL=postgresql://postgres@127.0.0.1:5432/myapp_dev
POSTGRES_HOST=127.0.0.1
POSTGRES_PORT=5432
POSTGRES_DB=myapp_dev

# MongoDB
MONGODB_URI=mongodb://127.0.0.1:27017/myapp_dev