rememori

Your agent forgets. Give it memory.

rememori is an embedded memory engine in pure TypeScript. Zero dependencies, zero servers, zero native bindings. One file on disk — or IndexedDB in the browser.

npm install rememori

v0.7.0  ·  0 dependencies  ·  ~8 kB gz core  ·  MIT

rememori — Esperanto for “to remember”. A language built to run anywhere. Same idea.

Every session ends the same way.

The context window empties. The user's preferences, the decisions made, the names mentioned — gone. Fixing it usually means a vector database, an embedding pipeline and a retrieval service. All that, for a bot that needs to remember fifty things.

Memory should be a primitive, not a platform.

memori. rememori. forgesi.

Remember, recall, forget — three verbs. That’s the API.

remember stores text with its embedding, tags and extracted entities. recall ranks by similarity, shared entities, use-feedback, importance and time decay. forget deletes.

Since v0.7 the loop closes: reinforce hardens a memory only on verifiable evidence it was used — self-report would entrench mistakes — and demote gives used-and-wrong memories a path down.

Bring any embedder: Ollama for local privacy, any OpenAI-compatible endpoint, or your own function. The verbs are Esperanto, like the name.

import { Memory } from 'rememori';
import { ollama } from 'rememori/embedders';
 
const mem = await Memory.open('./agent.mem', {
  embedder: ollama('nomic-embed-text'),
});
 
await mem.remember('User prefers dark mode', {
  tags: ['prefs'], importance: 0.8,
});
 
const hits = await mem.recall('UI settings?', {
  limit: 5, halfLifeDays: 90,
});
 
await mem.reinforceFromOutput(hits, answer);
await mem.forget(hits[0].id);

Don’t take our word for it.

This section runs rememori in your browser. The embedding model downloads once (~30 MB, cached), then everything — embeddings, storage, semantic recall — happens on your machine. Open DevTools → Network and watch it stay silent.

Downloads the MiniLM embedding model (~30 MB) from Hugging Face, once. Your memories never leave this page.

Want this in your own agent? Full local chat agent with Ollama — ~50 lines, runnable.

Give your agent a memory. Now.

rememori ships as an MCP server. One command gives Claude Code — or Cursor, Windsurf, any MCP client — persistent memory across sessions. Embeddings run locally via Ollama; memories live in one file on your disk.

claude mcp add rememori -- npx -y rememori-mcp
deploy notes api keys doc giorgio’s fix AWS Giorgio “any updates from Giorgio?”
A query that shares an entity lights up memories plain similarity would miss.

Recall is more than similarity.

Every memory links to the entities it mentions — a bipartite knowledge graph, built automatically at write time. At recall, memories sharing entities with the query get a bonus:

(cosine + graph + feedback) × importance × decay

So when the words don't match but the who does, the right memory still surfaces. Entity extraction is pluggable; the built-in heuristic costs zero dependencies and zero API calls.

If it runs JavaScript,
it remembers.

Native-binding memory engines compile per platform and stop at the browser's edge. Pure TypeScript ships everywhere the language does — this very page is the existence proof.

What would you build?

A support bot that remembers the customer

Last ticket, preferred tone, the promise a colleague made two weeks ago. remember() every message, recall() before replying. Telegram, Discord, Slack — three lines each.

A coding agent with cross-session memory

Decisions, conventions, “we already tried that”. One .mem file next to the repo, versionable and greppable.

A local-first app with semantic search

Electron or Tauri note-taking, mail, research tools: recall by meaning without shipping your users' data to a server.

Assistants under compliance

Legal, health, finance. Memory that provably never leaves the device: IndexedDB storage plus local embeddings, auditable in the Network tab.

A home-automation brain on a Raspberry Pi

“Boiler serviced in March, technician was Rossi.” Nobody wants to run Postgres on a Pi.

NPCs that hold a grudge

Game characters that remember the player across saves — in-process, inside the game loop, zero infrastructure.

What rememori is not.

Not a multi-user server. Not a cloud. Not a document-ingestion platform. If you need those, Cognee and Mem0 are good at them. rememori is for when you want memory inside your process, in five minutes, with nothing to operate.