Blog
What is claude-mem, and is it enough for a team?
Published: September 23, 2026
claude-mem is an open-source plugin that gives Claude Code memory across sessions. Hooks record what happens as you work, a local worker compresses it into observations stored in SQLite and a vector index, and the next session starts with the relevant ones. It is personal memory: one developer, one machine, one agent's history.
Checked against the claude-mem repository on 2026-09-23 (version 13.25.3, Apache 2.0, about 94,000 GitHub stars). It is one of the most installed Claude Code plugins, and it is worth understanding both what it does well and what it was not built to do.
What is claude-mem?
Claude Code forgets everything when a session ends. Its built-in fix is CLAUDE.md, which you write by hand, and auto memory, which Claude writes to your machine. claude-mem is a third answer: capture the session automatically, compress it with a model, and hand the useful parts back later. You do not decide what to remember. It watches.
How does claude-mem work?
| Part | What it does |
|---|---|
| Lifecycle hooks | SessionStart, UserPromptSubmit, PostToolUse, Stop and SessionEnd. They see prompts and tool use as they happen. |
| Worker service | A local HTTP service, run with Bun, that turns raw tool activity into compressed observations and summaries. It also serves a web viewer. |
| Storage | SQLite for sessions, observations and summaries, plus a Chroma vector database for semantic and keyword search. Settings live in ~/.claude-mem/. |
| Search over MCP | search returns a compact index, timeline gives the context around a hit, get_observations fetches full detail for chosen ids. |
| Privacy | Anything inside <private> tags is not stored. |
The search design is the interesting part: a cheap index first, full detail only for what survives filtering. It is the same progressive disclosure Anthropic recommends for skills, applied to memory.
How do you install claude-mem?
From the README, inside Claude Code:
/plugin marketplace add thedotmack/claude-mem /plugin install claude-mem
Or npx claude-mem install, which also has installers for OpenCode and a few other agents. An optional sign-in backs memories up to the project's cloud service; without it everything stays local.
claude-mem vs Claude Code auto memory vs CLAUDE.md
| CLAUDE.md | Claude auto memory | claude-mem | |
|---|---|---|---|
| Who writes it | You | Claude | Hooks and a compression model |
| What it holds | Rules and commands | Notes Claude chose to keep | Compressed observations of every session |
| Where | The repo | Your machine | Your machine, optional cloud backup |
| Shared with the team | If committed | No | No team feature documented |
| Reviewed before use | Through code review, if committed | No | No |
The comparison across tools, including Codex and Copilot memory, is in Claude Code memory vs Codex, Cursor and Copilot.
Is claude-mem good for a team?
It was not built for one, and the README does not claim otherwise. That matters in three concrete ways.
It remembers what one person saw. Your teammate's session last week, where the reviewer explained why webhook retries stop at five, is in their memory, not yours. Two engineers on the same repo build two different memories of it.
Nobody reviews what it stored. A compressed observation of a session is the model's summary of what happened, including the wrong turns. For one person that is a fair trade. For a team, an unreviewed memory that feeds every future session is the everyday version of memory poisoning: not an attack, just a mistake that keeps getting served.
It captures sessions, not decisions. Most of what a team has decided was never said to an agent. It was said in a pull request review or a thread in #eng-payments. A memory built from agent sessions cannot know it until someone repeats it to the agent.
When should you use claude-mem?
When you work alone, or when your own continuity is the problem: long projects, many sessions, context you are tired of re-explaining. It is a good tool for that, and it runs locally. Pair it with a short CLAUDE.md for the rules that must hold every session, and a hook for anything that must never happen. See the hooks guide.
Where Harbor fits
Harbor is the team half. It reads where decisions are made (Slack threads, pull request reviews, docs), a person approves what becomes a fact or a policy you set approves the routine ones, and every agent on the team, in Claude Code, Codex or Cursor, is served the approved facts that apply to its task. What a session learns goes back through the same review before anyone else's agent sees it. Contradictions are always held for a person.
The two can sit side by side: personal memory for your own sessions, approved team facts for what everyone's agents must know. Harbor also counts, per fact, how often it was served against how often an answer cited it, so the team can see which facts earn their place. A cite is evidence, not proof. See served vs cited.
Questions
What is claude-mem?
claude-mem is an open-source Claude Code plugin that records your sessions through hooks, compresses them into observations stored locally in SQLite and a vector index, and gives the relevant ones back to later sessions.
How do I install claude-mem?
In Claude Code, run /plugin marketplace add thedotmack/claude-mem and then /plugin install claude-mem. It can also be installed with npx claude-mem install.
Is claude-mem the same as Claude Code auto memory?
No. Auto memory is built into Claude Code and holds notes Claude chooses to keep. claude-mem is a separate plugin that captures every session automatically and adds search over MCP.
Can a team share claude-mem memory?
The claude-mem README does not document a team or shared memory feature. Each developer builds their own memory from their own sessions, and nothing is reviewed before it is reused.