Raviole Labs

Local-first memory beats a vector bill

Cloud RAG charges you rent on your own thoughts. A local index in SQLite and LanceDB, with embeddings from Ollama, is faster, private, and yours.

engrammcpraglocal-firstagentsmemory

Every cloud memory product has the same pitch: give us your notes, your documents, your transcripts, and we will make them searchable for your agent. The pitch leaves out the invoice. You pay to ingest, you pay to store, you pay per query, and the meter never stops because an agent that works for you queries memory hundreds of times a day.

We built EngramMCP the other way around. The index lives on your machine. The bill stops existing.

The stack fits on a laptop

The architecture is boring on purpose:

  • SQLite holds the documents, the metadata, and the relations.
  • LanceDB holds the vectors, embedded next to the SQLite file.
  • Ollama runs nomic-embed-text locally for embeddings.

That’s it. No cluster, no API key, no per-token embedding fee. One local install gets you the whole thing, and 21 MCP tools expose it to any agent that speaks the protocol: remember, recall, recent, ingest, relate, watch, and friends.

Why local wins for agent memory

Latency. A recall that round-trips to a vector SaaS pays the network tax on every call, typically 100 to 300 ms before the model even starts thinking. A local recall pays none: the LanceDB scan itself returns in single-digit milliseconds, and even counting the on-device query embedding, the whole round stays in the tens of milliseconds. Agents chain tool calls, so the difference compounds fast.

Privacy. Agent memory is the most sensitive dataset you own. It is, literally, what you think about. Notion pages, voice notes, meeting transcripts, the conversations you had with your agent at 2am. Uploading that to someone’s multi-tenant cluster so you can search it later is a strange trade.

Cost shape. Cloud RAG pricing scales with usage, and agent usage only goes up. Local pricing scales with hardware you already bought. A corpus of a few hundred thousand chunks is nothing for a modern laptop.

Composability. Because the index is a file, everything composes. Back it up with the rest of your machine. Sync it with your own tools. Grep it when you’re debugging. Try doing that with a hosted namespace.

What the cloud is still for

Honesty section. Local-first loses in three places:

  1. Multi-device capture. Your phone can’t write into your laptop’s SQLite file from the train. Engram Pro handles this with an encrypted relay: the ciphertext travels, the plaintext only ever exists on your machines.
  2. Teams. A shared brain across five people wants a server. We simply don’t ship that in v1, and we say so instead of shipping a bad one.
  3. Zero-install contexts. If your agent runs in a hosted sandbox with no filesystem, local-first has nothing to attach to.

For a single builder with a laptop, none of these outweigh the bill.

The part people miss

The real argument is not the money. It is that memory is infrastructure, and infrastructure you rent behaves differently from infrastructure you own. When recall is free and instant, your agent can afford to check its memory before every task, the way you glance at your notes before a call. When every recall has a price tag, you start rationing introspection. That is a silly constraint to design an agent around.

Sources connected so far: Google Drive, Notion, YouTube, Obsidian, voice notes, and agent conversations. Connect once, Engram watches and re-indexes on change.

EngramMCP is in invite-only early access while we polish the installer: request yours at engram-mcp.com or by DM on X.