Desoul Review Tiếng Việt

← Guides

Memory across Claude Code sessions, and what it costs

The job is starting a fresh session without losing what the last one learned. claude-mem is one plugin built for it: it records what Claude does, writes short notes, and hands the next session a list of them. On 5 November 2026 I tested it (plugin version 15.9.0) on a small test project, one headless run at a time.

How I ran it

Nothing went into my real Claude Code setup. The plugin was loaded per run with --plugin-dir, its data went to a scratch folder, and its background worker was stopped after each run. I removed two of its startup hooks first, because they put a claude-mem program in ~/.local/bin and edit shell startup files. Every background claude call it made went through a logging wrapper so I could count its tokens.

# session 1: do some work that prints a value
claude -p "read README.md, run compute.py, grep src/ for TODO, tell me the BUILD_TAG" --model haiku --plugin-dir plug ...
rm compute.py
# session 2: can it remember?
claude -p "What BUILD_TAG did compute.py print last session?" --model haiku --plugin-dir plug ...

# overhead probe, with and without the plugin
claude -p "Reply with the single word OK." --model haiku --max-turns 1 [--plugin-dir plug]

Did it remember?

Yes, but only when asked to look. The list it gives a new session holds titles, not facts. The note for this test read "tidewater project BUILD_TAG identifier". With tools blocked, Claude answered UNKNOWN. Allowed to use claude-mem's search tools, it found the right value, walrus-6304, at the cost of two extra turns, each re-reading the whole context.

What it cost

Tokens saved in this test: none. The whole test cost about $2 at API prices against a $1 budget, mostly from two "My Work" refreshes I didn't expect.

What surprised me

What I'd take instead

The one idea worth keeping is the shape: a short index scoped to the current project at session start, with the details fetched only when needed. A plain memory index file loaded at session start already does most of that for me, without a model running on every tool call.

Tools in this test