Skip to main content

Overview

One Postgres-native store on your machine, shared by every client: the CLI, MCP agents, a browser viewer, and plain HTTP. Requires Node 20 or later.

Install

Or run everything through npx memloom@latest <command>.

Start

Creates ~/.memloom with the store and config.env, then starts the daemon.

Use it

If memloom is not found after installing, your Node is probably too old. npm skips a package whose engines it cannot satisfy, so nothing lands on your PATH. Check node -v, upgrade, and install again.
Prefer to delegate? An agent can run this whole setup from one pasted prompt. See Agent setup.

Turning on cloud mode

Without a key memloom runs offline with deterministic embeddings and no dedup. Set OPENROUTER_API_KEY in ~/.memloom/config.env, then:
Offline and cloud embeddings live in different vector spaces. Mixing them makes similarity meaningless, so the daemon refuses to start until the store matches the config. That is what reembed is for.

Memory types

Every memory carries a type, and it means the same thing whichever client wrote it. Defaults to fact. Chunks from ingested files are not saved memories. They carry the sentinel type context.

Bring your files

Markdown, text and PDF, chunked along real structure and fused into the same recall as your memories. Every result says where it came from: from lecture-notes.pdf › LIMITS OF FUNCTIONS > 2. DEFINITION (p. 1). See Extractors and chunking.

The daemon

memloom serve owns the store. Everything else is a client, and any CLI command starts it if it is not running.
The Postgres wire pauses the API. PGLite takes one connection at a time, so while Drizzle Studio or psql is attached it holds an exclusive lock. Memory endpoints answer 503 instead of hanging. Disconnect the client to resume.

Where next

Features

What memloom does, one card per capability.

Architecture

One daemon, one store, many clients.

CLI reference

Every command.

MCP setup

Give your agent the store.