claude-mem: so you stop explaining your project every morning
A plugin that remembers what you did in the last session and feeds the relevant part into the next one. How it is built, what it installs on your machine, and who it actually saves time for.

In this article5
claude-mem records what happened in a session, compresses it, and feeds the relevant part into the next one — so you stop recounting the project from scratch. One command to install, no attention required afterwards. The main trap: the familiar npm install -g only installs the library and switches nothing on — you need npx claude-mem install. 92 thousand stars, Apache-2.0, actively developed.
Anyone who has worked with AI for longer than a week knows the ritual. You open a new session and start again: "I have a Next.js project, here is the structure, here is what we did yesterday, here is why that file must not be touched." Ten minutes recounting what you already recounted yesterday. And the day before.
This is not the model being lazy. The session ends and the context is gone. The tool literally does not remember you.
What it does
claude-mem hooks into Claude Code and runs in the background. While you work it records observations: which files were opened, what got fixed, what you decided. At the end of a session it compresses those into short summaries. At the start of the next one it feeds back the ones that are relevant.
From the outside it looks as though the tool remembers you. You sit down in the morning and it already knows how yesterday ended.
How this differs from CLAUDE.md
CLAUDE.md is what you wrote by hand: rules, stack, agreements. It is static and you maintain it. claude-mem writes itself and stores something else — the history of what happened. Neither replaces the other: the file describes the rules, the memory describes the path. They work together.
How it is built inside
This is not one program but several parts, and it is worth knowing what exactly takes up residence on your machine.
- 1
Five lifecycle hooks
The points where the plugin attaches to Claude Code: session start, prompt submitted, after a tool call, stop, session end. That is how it knows what happened.
- 2
A local service
A small HTTP server on your machine with a web interface for browsing and searching the memory. Managed by the Bun runtime.
- 3
A SQLite database
An ordinary file on disk: sessions, observations, summaries. No cloud.
- 4
A Chroma vector database
Search by meaning rather than by matching words. It is what lets you find "that bit where we fixed authentication" without remembering the exact wording.
- 5
A search skill
A separate skill through which you question the memory in plain language.
The search deserves a note of its own — it is a rare case of the token cost being thought through in advance. Instead of dumping everything it finds into the context, it works in three layers: first a compact list of results (50–100 tokens each), then a timeline around whatever looks interesting, and only then the full detail on the entries you picked. The developers claim roughly a tenfold saving against the naive "load everything".
Running it in five minutes
One command, and it is also the single most important detail in this piece.
npx claude-mem install
Then restart Claude Code. Context from previous sessions starts appearing on its own.
If you use Claude Code plugins, you can install it from there:
/plugin marketplace add thedotmack/claude-mem/plugin install claude-mem
The trap that is easy to fall into
The command npm install -g claude-mem looks right and completes without errors — but it only installs the library. The hooks are never registered, the service never starts, the memory never works. The documentation says so plainly, but habit is stronger: install through npx claude-mem install or through the plugin.
What ends up on your machine: you need Node.js 20 or newer. The plugin installs Bun and uv (the Python package manager, needed for vector search) itself if they are missing. SQLite comes bundled. On Windows the usual stumble is not the plugin but Node not being on PATH — at which point the terminal simply does not recognise npm.
Who it is for, and who it is not
| Situation | Worth it? |
|---|---|
| One project you have been working on for months | Yes — this is where memory pays off fastest |
| Several projects in parallel | Yes — it keeps memory separated per project |
| One-off small tasks, something new each time | No — there is nothing to accumulate |
| You have only just started and have not installed Claude Code yet | Terminal first, memory later |
| Work involving sensitive data | Careful: observations are written to disk in the clear |
That last row is not nitpicking. The memory records what happened in a session into a local database. It is your computer and there is no cloud — but if you work with someone else's credentials or with personal data, it is worth knowing that some of it settles into a file on disk.
The straight verdict
This is the rare case where a project with a hundred thousand stars really does what it promises, and does it quietly. One command to install, no attention required afterwards — and it is the demand for attention that kills most add-ons of this kind.
What gives pause: that is a lot of dependencies for a tool that "just remembers". Bun, uv, a vector database — each installs automatically, and each can one day break, and fixing it will be your job. Three hundred-odd open issues suggest we are not the only ones it breaks for.
The licence is Apache-2.0, so it can go into anything, commercial products included. The README is translated into thirty-odd languages, Russian among them.
Next step
Claude Code: persistent memory for every project
The three layers of memory — CLAUDE.md, external databases, and plugins like this one — and when each layer is actually needed.
Comments