1. TL;DR: Three-Track Model
Memory for Claude Code splits into three tracks. The native stack (CLAUDE.md, MEMORY.md, Auto Memory, Auto Dream) covers 80% of solo-dev needs with zero external tooling. Cross-session tools (claude-mem, agentmemory, ICM) handle compression, semantic recall, and multi-tool portability for individuals. Team sharing has no dominant solution. The gap is structural, not a maturity question, because every leading tool was built single-user-first.
┌──────────────────────────────────────────────────────────────────────────┐
│ CLAUDE CODE MEMORY — 3-TRACK MODEL │
├──────────────────┬───────────────────────┬───────────────────────────────┤
│ NATIVE STACK │ CROSS-SESSION TOOLS │ TEAM / MULTI-AGENT │
├──────────────────┼───────────────────────┼───────────────────────────────┤
│ CLAUDE.md │ claude-mem │ CLAUDE.md + .mcp.json (static)│
│ MEMORY.md │ agentmemory │ Notion MCP (zero infra) │
│ Auto Memory │ ICM │ Mem0 cloud (free tier) │
│ Auto Dream │ OpenMemory MCP │ mcp-memory-service + CF │
│ │ Kairn │ Zep / Graphiti (temporal) │
│ │ doobidoo (local) │ agentmemory (shared server) │
├──────────────────┼───────────────────────┼───────────────────────────────┤
│ Covers 80% of │ Cross-device recall, │ Shared context, multi-agent │
│ solo needs. │ multi-tool portable, │ coordination, temporal graph. │
│ Zero infra. │ semantic search, │ Gap: structurally unfilled. │
│ │ knowledge graph. │ │
├──────────────────┼───────────────────────┼───────────────────────────────┤
│ WRITE: Auto │ WRITE: hooks (best) │ WRITE: shared MCP server │
│ READ: linear │ READ: MCP search │ READ: semantic + tag + graph │
│ DECAY: 200 lines │ DECAY: importance wt │ DECAY: TTL / temporal edges │
│ TEAM: No │ TEAM: No │ TEAM: partial / evolving │
└──────────────────┴───────────────────────┴───────────────────────────────┘Three findings that change how you should think about memory:
Hook-driven writes beat MCP-driven writes as a default. Automatic extraction at zero token cost (hook mode) consistently outperforms 20-50 tokens per voluntary store call (MCP mode). agentmemory wires this correctly on install; ICM ships the hook but leaves it unwired in settings.json.
Shared memory is an unguarded write surface. Any team member, or their compromised dependency, can inject instructions that every future agent session in the fleet reads. No tool documented here has a mitigation for this. See Section 7.1.
Hybrid retrieval (BM25 + Vector + Graph via RRF fusion) delivers 9 percentage points more R@5 than pure vector search on reproducible benchmarks. Most tools in this ecosystem still default to pure vector.