memory kernel · local-first · AGPL-3.0

reMem

A real-time ledger of everything your agent observes, and a belief layer derived from it. When something changes, the new value supersedes the old one instead of overwriting it, so the agent can tell you what it currently believes, what it used to believe, and which observation changed its mind.

$npm i remem-kernel Install Source npm

01 · the difference

You changed jobs. Did your agent notice?

The same two messages, the same question, eight months later. One of these answers goes out to a stranger with your name on it.

what you told it

“I'm a software engineer at Stripe.”

“I left Stripe. I'm at Anthropic now.”

Today you ask: “Write a one-line intro about me.”

Existing memory stores

“A software engineer at Stripe.”

employer = Stripe employer = Anthropic

Eight months out of date. Both facts sit in the store with equal standing, so the agent returns whichever one the search happens to surface first, and it has no way to know the other one exists.

reMem

“A software engineer at Anthropic.”

employer = Stripe superseded employer = Anthropic

Current, and it can show its work. Stripe was marked superseded the moment you said you left, and kept. Ask why and reMem points at the exact message that changed its mind.

02 · results

Three times better than mem0 on facts that change

Head to head against mem0 on a benchmark built from facts that get corrected partway through.

improvement over mem0

45.0% against 15.0%. Three times as many questions answered correctly when the answer turns on a fact that was later corrected.

Accuracy when supplied with 6k tokens

reMem 45.0
mem0 15.0

Accuracy when supplied with 32k tokens

reMem 57.0
mem0 23.0

it holds at scale

2.5×

Give both systems five times as much to remember and the lead barely moves: 57.0% against 23.0%. It does not fall apart as memory grows.

cost per memory

0

Zero cost to save or recall a memory. Neither one ever calls a model, so there is no per-message bill, no added latency and no rate limit. Only consolidation uses a model, once at the end of a session.

every answer has a receipt

100% traceability

Every single thing reMem believes is linked to the actual message you said it in. Ask why, and it shows you. Nothing is invented, because nothing without a source is ever stored.

03 · why it wins

Agents keep telling you what used to be true

Memory layers tend to do one of two things with a contradiction, and both lose something you need.

Overwrite, and the history is gone

The store now holds the new value and nothing else. Nothing can explain why the answer changed, and if the update was wrong there is no earlier state to fall back to. You cannot audit what you cannot see.

Accumulate, and nothing is current

Both values sit in the store with equal standing, so retrieval returns whichever one happens to embed closest to the query. The agent confidently reports a fact that stopped being true months ago.

reMem does neither. The old value stays on the record, marked, with the observation that replaced it still attached.

04 · how it works

An immutable ledger, and beliefs derived from it

Almost every failure mode of a memory system comes from collapsing those two into one mutable store. Observations are never updated or deleted. Beliefs are derived, confidence-scored, scoped, and always point back to the observations that justify them.

01

Observe

Appends to the ledger. Synchronous, no model call, nothing to get wrong.

02

Consolidate

A model proposes typed belief operations. A deterministic reducer disposes. No unbounded model mutation of state.

03

Beliefs

Mutable, scoped, decaying, provenance-linked. A contradiction marks the prior belief superseded rather than deleting it.

04

Recall

A scoped, ranked, compact context pack. It abstains rather than guessing.

Everything in one file

One SQLite file and a local embedder by default. No vector database, no graph database, no services to run. Back it up by copying it, and the model of your user can live entirely on your own machine.

Watch it think

A bundled viewer shows every belief the kernel holds, the value it replaced, and the messages both came from, updating live in your browser as your agent works.

05 · use it

Four ways in

As a library

npm i remem-kernel

Eight methods: observe, consolidate, decay, recall, why, beliefs, forget, export.

As an MCP server

claude mcp add remem -- \
  npx -p remem-kernel remem-mcp

One command, nothing to edit by hand. Your agent gets seven tools: recall, remember, beliefs and why for what memory holds; search, observation and history for what happened. Any other MCP client can run the same npx command as a stdio server.

As a Claude Code plugin

npm i -g remem-kernel
claude plugin marketplace add \
  "$(npm root -g)/remem-kernel"
claude plugin install remem@remem

Restart Claude Code and it starts remembering on its own: your messages and the files you touch go to the ledger as you work, beliefs are consolidated when the session ends, and the next session opens already knowing them. Already using claude-mem? remem-import brings it across in one command.

Watch it live in your browser

npx -p remem-kernel remem-viewer

Prints a link like http://localhost:37800. It opens on the ledger: everything you have said, newest first, with what memory believes above it. Click anything to see it in full and what it led memory to conclude. Leave it open in a tab while you work.