Persistent Memory for Claude: Local Stack with MCP, 39ms Retrieval, 82% Token Reduction

A Reddit user built a local persistent memory layer for Claude that solves the zero-context problem between sessions. The stack runs entirely locally (no cloud, no API keys) and integrates via MCP. Key architecture: four layers (L0 append-only event log in SQLite, L1 structured facts deferred, L2/L3 wiki prose, L4 crystallized session nodes with summary + decisions + open threads), Qdrant Docker for vector search, llama.cpp with Qwen3-Embedding-4B on GPU and Qwen3.5-2B-Q4_K_M on CPU for embedding and chat, and a FastMCP server exposing 7 tools (retrieve, crystallize_session, list_sessions, get_l4_node, index_status, reindex, shutdown_models).
Numbers
- Token reduction vs grep+Read baseline: 82.7% mean, 86.2% median.
- Retrieval F1: 0.50 vs 0.20 baseline.
- Embed cold start ~4s; hot-path p95 39ms (was 2241ms before bug fix).
- L4 session retrieval eval: 0.920 mean score (gate 0.6).
- 738 chunks indexed across 104 markdown files.
Key Learned: Connection Reuse on Windows
The hot-path retrieve was stuck at 2241ms p95 even with GPU-resident embedding on a 4070 Ti Super. The cause: every httpx.post() opened a fresh TCP connection, and Windows localhost handshakes took ~2 seconds. Switching to a persistent httpx.Client with keep-alive dropped p95 to 39ms — a 57× speedup.
Other Surprises
- Qwen3 thinking mode: If
enable_thinkingis not disabled viachat_template_kwargs: {enable_thinking: false}with--jinjaon llama-server, the model spends all token budget on thinking blocks and outputs empty content. - MCP registration: Claude Desktop's agentic mode (Cowork) reads a plugin config file, not
~/.claude.json. The LKS service must be packaged as a proper Cowork .plugin bundle.
Who It's For
Developers who use Claude heavily and want a cost-effective, private, local memory layer that maintains context across sessions without cloud dependencies.
📖 Read the full source: r/ClaudeAI
👀 See Also

Claude-Code v2.1.63 adds HTTP hooks, slash commands, and fixes memory leaks
Claude-Code v2.1.63 introduces HTTP hooks for JSON-based external calls, adds /simplify and /batch slash commands, and fixes multiple memory leaks in long-running sessions. The release also improves MCP server handling and VSCode integration.

Conduid: Trust Infrastructure Layer for MCP Servers Built with Claude
Conduid indexes over 25,000 MCP servers across GitHub, npm, PyPI, and major directories, scoring each 0-100 based on GitHub activity, security posture, documentation quality, and maintenance signals. The entire codebase was written with Claude by a solo founder.

Claude Code Routines: Schedule Agent Tasks Like Cron with Reasoning
Claude Code Routines let you run agent tasks on a schedule without keeping a session open. A Reddit user shares real examples: nightly commit review, weekly dependency check, daily error log analysis — with AI reasoning instead of raw script output.

Quiver: A GUI for Managing and Syncing Claude Code Skills
Quiver is a free, open-source GUI tool that provides a web interface for managing Claude Code skills, allowing users to browse local skills and marketplace plugins, edit SKILL.md files, sync via Git, and install skills without using the terminal.