Monlite: The complete back end for AI agents – in one file Monlite launches a zero-dependency TypeScript backend for AI agents that combines memory, vector search, task queues, locks, and cron into a single SQLite file, eliminating the need for Docker or multiple services. The open-source tool scales to Postgres when needed and is available on npm. Document memory, semantic vector recall, full-text search, a durabletask queue, atomiclocks, cache, andcron— over a single SQLite file, with a zero-dependency TypeScript core.No Docker. No connection strings. Nothing to run.And thesame codescales to Postgres the day you need it. A coding agent, RAG pipeline, or autonomous worker needs memory, semantic search, a job queue, and locks. That's normally MongoDB + Qdrant + Redis + BullMQ — four services and a Docker compose file. monlite is all of it, in a file you can cp to back up: js import { createDb } from "@monlite/core"; import { vector } from "@monlite/vector"; import { createQueue } from "@monlite/queue"; import { kv } from "@monlite/kv"; // one file = the agent's entire backend const db = createDb "./agent.db", { allowExtensions: true, plugins: vector { memory: { field: "embedding", dimensions: 384 } } , } ; // 🧠 memory — typed document collections await db.collection "memory" .create { data: { note: "user prefers dark mode", embedding } } ; // 🔎 semantic recall — vector search over embeddings const recall = await db.collection "memory" .findSimilar { vector: query, topK: 5 } ; // 🔒 an atomic lock run-once + 📋 a durable task queue retries, backoff, dedupe, concurrency if kv db .setNX "lock:ingest", 1, { ttl: 30 000 } startIngest ; createQueue db .process "embed", job = embed job.payload.text , { concurrency: 4 } ; Exactly-once job claims, locks, scheduling, and full-text + semantic search — with no server, no migrations, and no native build Node 22.5+ uses the built-in node:sqlite . 📖 Docs https://qataruts.github.io/monlite · 🎮 Live demo https://qataruts.github.io/monlite/demo runs in your browser · 📦 npm https://www.npmjs.com/package/monlite · 💻 GitHub https://github.com/qataruts/monlite Most apps, CLIs, and AI agents wire up the same services. monlite gives you each one as a small package over a single .db file — install only what you use, the core stays zero-dependency: | Instead of | Use | Gives you | |---|---|---| | MongoDB / Mongoose | @monlite/core | watch @monlite/fts collection.search @monlite/vector findSimilar , hybrid RAG @monlite/kv @monlite/queue @monlite/cron @monlite/realtime @monlite/sync @monlite/postgres the same API on a networked Postgres when you outgrow one fileNo Docker. No .env full of connection strings. One file, one API, node serve.mjs . Batteries-included — the whole stack in one package: npm install monlite js import { createDb, kv, createQueue, createCron, fts, vector } from "monlite"; Or the minimal, zero-dependency core , plus packages à la carte: npm install @monlite/core zero-dep core Node ≥ 22.5, built-in node:sqlite npm install @monlite/core better-sqlite3 Node 18/20, or to skip the experimental flag npm install @monlite/fts full-text search @monlite/vector semantic search npm install @monlite/kv cache, locks, pub/sub @monlite/queue durable job queue npm install @monlite/cron scheduler @monlite/realtime live queries over SSE npm install @monlite/postgres run the same API on Postgres npm install @monlite/sync cloud sync MongoDB / PostgreSQL / MySQL npm install @monlite/wasm browser / SQLite-WASM @monlite/electron Electron main↔renderer Zero-install inspector: npx @monlite/studio app.db opens a local web UI to browse collections, view documents, and run queries. A Mongo/Prisma-style API. Typed collections get compile-time-checked where / orderBy , and return types that narrow with select . interface Order { customerId: string; items: { sku: string; qty: number } ; status: "pending" | "shipped" | "returned"; total: number; } const orders = db.collection