Last Verified: October 27, 2026 — stars, license, and install commands checked live against github.com/thedotmack/claude-mem
Close Claude Code tonight, open it tomorrow, and it remembers nothing. Not the bug you fixed at 11pm, not the file you renamed, not the decision you already made and explained once. Every session starts from zero, so you re-explain the same context, over and over.
claude-mem is a free, open-source Claude Code plugin (thedotmack/claude-mem, Apache-2.0, 103,538 GitHub stars as of today) that fixes this without you doing anything mid-session. A note-taker watches your tool calls in the background, compresses the day down to what matters, and hands it back the moment you open a new session. On our own machine it took a 434,573-token day of work and handed it back in 12,878 tokens — a 97% cut — and it even resurfaced a fix we’d forgotten we made.
Already fighting your context window a different way? See 4 measured ways to cut Claude Code token usage. Building your own plugin instead of installing one? See how to build a Claude Code Skill.
Quick Start
Type these two lines inside Claude Code, one after the other (these are slash commands, not shell commands):
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
Restart your Claude Code session once it finishes installing, then run /mcp or claude plugin list to confirm claude-mem shows up enabled. Total time: about 1 minute. Free, no API key required to install.
⚡ Copy This Prompt: Let Claude Code Install and Verify It For You
claude-mem also ships a non-interactive CLI path (claude plugin marketplace add / claude plugin install), so you can hand the whole job to the agent instead of typing the slash commands yourself:
You have shell access and the `claude` CLI on my machine. Install the claude-mem plugin and report back. Do not tell me it's done unless step 4 actually confirms it.
1. Run `claude plugin list`. If a `claude-mem` entry already exists and is enabled, show it and stop instead of reinstalling.
2. Run `claude plugin marketplace add thedotmack/claude-mem`.
3. Run `claude plugin install claude-mem`.
4. Run `claude plugin list` again and show me the claude-mem line, including its version and enabled status.
5. Tell me in one sentence that I need to start a new Claude Code session for it to take effect -- a plugin install needs a restart, same as an update.
Step 1 stops a second, duplicate install if you (or a teammate) already added it.
On this page (7 sections)
What You’ll Need
| Requirement | Why You Need It | Time |
|---|---|---|
| Claude Code installed | The plugin hooks into its SessionStart and tool-use events | 0 min |
| Nothing else to start | Install is free; no API key or sign-in required for this step | 0 min |
| An Anthropic plan, or your own OpenRouter/Gemini key | Pays for the model that actually summarizes your sessions, once the 30-day free observer trial ends | 1 min, optional, can wait |
Step-by-Step Setup
Prefer to do it by hand instead of delegating to the agent? Here’s the manual version.
Step 1 — Add the marketplace
~10 sec
claude-mem ships through its own Claude Code plugin marketplace, not the built-in Anthropic directory. Add it by GitHub shorthand (owner/repo):
/plugin marketplace add thedotmack/claude-mem
This only registers where to find the plugin — it doesn’t install anything yet.
Step 2 — Install the plugin
~20 sec
Now install it from the marketplace you just added:
/plugin install claude-mem
From a shell instead of inside a session, the equivalent is one line:
claude plugin marketplace add thedotmack/claude-mem && claude plugin install claude-mem
Both paths are real claude CLI commands, not aliases we made up — claude plugin --help lists install|i, marketplace, and list as first-class subcommands.
Step 3 — Restart and let it watch
0 min of extra work
Plugin installs need a fresh session to load, same as a plugin update. Start a new Claude Code session and work normally. There is nothing to turn on: a SessionStart hook begins observing your tool calls immediately, summarizing as you go. You will not see it doing anything — that is the point.
Step 4 — Decide who pays for the observer (can wait 30 days)
~1 min
Summarizing your sessions takes a model call. By default that runs on claude-mem’s own observer with a 30-day free trial, no card required. After that, it falls back to your own Anthropic plan unless you point it at your own key:
npx claude-mem install --provider openrouter # or gemini / anthropic
Sign-in to claude-mem’s own service is optional the whole time — the --provider flag skips it entirely if you’d rather use your own key from day one.

What It Actually Does
Measured by us · October 26–27, 2026
Numbers from our own installed claude-mem, not the vendor’s marketing copy.
| What we checked | Result |
|---|---|
Its own session_start_context() call, project “Juho Studio”, 10/26 7:42pm EDT | Stats: 50 obs (12,878t read) | 434,573t work | 97% savings — the exact line it injects at the start of our next session |
| GitHub repo right now (api.github.com/repos/thedotmack/claude-mem) | 103,538 stars, Apache-2.0 license, pushed today (10/27) |
claude plugin list on our machine | claude-mem@thedotmack v15.3.0, scope user, status enabled |
claude plugin marketplace list on our machine | thedotmack — Source: GitHub (thedotmack/claude-mem) |
The 97% figure is one day’s real work, not a guaranteed rate — it depends how much you did and how repetitive it was.
Per its own README, the mechanism is: “automatically capturing tool usage observations, generating semantic summaries, and making them available to future sessions.” In practice that means a background note-taker, not a chat feature — you never talk to it directly. It also ships its own search tools (search, timeline, get_observations), so instead of waiting for the automatic injection you can ask it directly: “did we already fix this?”
Verify It’s Actually Working
claude plugin list
✘ No claude-mem entry → marketplace add probably failed; run Step 1 again and watch for an error
! Entry shows “disabled” → run
claude plugin enable claude-mem, then restart the session… Installed but new session shows nothing → that is normal on session 1; the first real context shows up at the start of session 2
Then, in a brand-new session, check that it actually remembered something:
What did we work on last session?
If it names real files or decisions from your last session instead of saying it has no memory of it, it’s working.
Common Mistakes to Avoid
- Running
/plugin installbefore/plugin marketplace add. They’re two separate steps; install looks for the plugin in a marketplace you haven’t registered yet and fails. - Expecting it to work without restarting. Like any plugin install or update, it needs a fresh session to load — the session you installed it in won’t show it.
- Assuming the first session proves it’s broken. There’s nothing to inject on session 1 because nothing has been observed yet. The real test is session 2.
- Forgetting the free observer trial ends. After 30 days, summarization falls back to your own Anthropic plan unless you’ve pointed it at your own OpenRouter or Gemini key. Not a surprise if you planned for it; a surprise if you didn’t.
- Treating it as one memory across every project. Our own captured output is headed “[Juho Studio] recent context” — it’s scoped to the project you’re in, not a single blob shared across every repo on your machine.
Q&A
Is claude-mem actually free?
The plugin itself is free and open-source (Apache-2.0, 103,538 stars). The part that isn’t guaranteed free forever is the model call that summarizes your sessions: a 30-day trial on claude-mem’s own observer, then your own Anthropic plan or your own key.
Does it slow down every message?
It hooks SessionStart and tool-use events to observe and summarize in the background; it’s not a chat participant you wait on. We haven’t benchmarked per-turn latency ourselves, so we won’t put a number on it — treat that as unverified until you measure it on your own setup.
Can I see what it remembered without waiting for the next session?
Yes. It installs its own search tools (search, timeline, get_observations, smart_search among others) you can call directly instead of waiting for the automatic SessionStart injection.
Does it work with tools other than Claude Code?
Its own description lists Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, and OpenCode. This guide and our own measurements only cover the Claude Code install.
Official Resources
- thedotmack/claude-mem on GitHub — README, release notes, issue tracker
- Claude Code & MCP hub — every setup guide on this site in one place
- Claude Code plugin docs — marketplaces, install scopes,
claude pluginCLI reference
If this saved you from re-explaining yourself for the hundredth time, follow @bunjiai on X for the next free-tool breakdown.