claude-mem vs engrim
Cross-harness session memory: hooks capture what the agent does, an LLM compresses it into observations, and the next session gets the relevant ones back via progressive-disclosure MCP tools. — versus — Local SQLite episodic memory shared across Antigravity, Claude Code, Cursor, Windsurf and Codex: hooks/MCP capture decisions, FTS5+model2vec hybrid recall reloads ~1k tokens per session.
Both are hook-driven cross-harness session memory; claude-mem runs an LLM compression pass over what the agent did, engrim stores curated decisions/facts locally with no LLM in the loop.
| claude-mem | engrim | |
|---|---|---|
| Stars | 94k | 222 |
| Forks | 8.2k | 12 |
| Language | JavaScript | Python |
| License | Apache-2.0 | MIT |
| Last activity | yesterday | yesterday |
| Topics | memory, coding | memory, coding |
| Curated connections | 8 | 5 |
claude-mem — the curator's take
The most widely installed of the capture-and-reinject memory plugins, and the one with the most product around it: 5 lifecycle hooks, a Bun worker with an HTTP API and live web viewer, SQLite plus FTS5 plus Chroma for hybrid search, and a 3-layer MCP search pattern (index → timeline → full detail) that keeps recall at ~50-100 tokens per hit until you actually want the body. Installs into Claude Code, OpenCode, Antigravity, OpenClaw and more, with `<private>` tags to keep things out of the store and optional cloud sync. The tradeoffs: it spends model tokens summarizing every session, it drags in Bun and uv, and what you get back is a generated observation rather than the raw transcript — if you want auditable, greppable memory you can edit by hand, look at the Markdown-first options instead.
engrim — the curator's take
Use it when you actually switch harnesses mid-project — Gemini in Antigravity in the morning, Claude Code in the afternoon — and want one memory both write to and read from, with `origin_agent` provenance on every entry. `engrim setup` auto-wires hooks, MCP and status lines for whatever it finds under ~/. The retrieval is cheap and offline (FTS5 + static model2vec embeddings, no API), and the deliberate 4k-char 'memory pack' cap keeps it from becoming a second context window. Don't pick it for cross-project or team memory (it is per-project, per-machine), or if you want raw transcript capture rather than curated decisions/facts/feedback. Small project (~200 stars, one maintainer) — expect rough edges.