{"slug": "persistent-memory-for-coding-agents", "title": "Persistent Memory for Coding Agents", "summary": "AgentMemory launched a persistent memory runtime for coding agents that captures every session, tool call, and prompt through 12 auto-hooks, enabling millisecond recall via triple-stream retrieval combining BM25, vector, and knowledge graph searches. The system runs as a single Node process with no external databases, consolidates raw observations into semantic memories hourly, and ships with a real-time viewer and MCP surface for memory operations.", "body_md": "# AGENTMEMORY\n\nTHE MEMORY LAYER YOUR CODING AGENT SHOULD HAVE HAD FROM DAY ONE. CAPTURE EVERY SESSION. RECALL IN MILLISECONDS. RUN ANYWHERE.\n\n## THREE LAYERS.\n\nNO FRAMEWORK TAX.\n\nBUILT ON THE iii ENGINE — EVERY MEMORY OPERATION IS A WORKER, A FUNCTION, OR A TRIGGER. NO REDIS. NO KAFKA. NO POSTGRES. THE ENTIRE RUNTIME IS ONE PROCESS.\n\n### HOOKS\n\n12 AUTO-CAPTURE HOOKS PIPED INTO EVERY CODING AGENT. EVERY TOOL CALL, EVERY PROMPT, EVERY STOP BECOMES A COMPRESSED OBSERVATION.\n\n### RECALL\n\nTRIPLE-STREAM RETRIEVAL — BM25 + VECTOR + KNOWLEDGE GRAPH. RERANKED ON DEVICE. P50 UNDER 20MS ON A LAPTOP.\n\n### CONSOLIDATE\n\nHOURLY SWEEPS COMPRESS RAW OBSERVATIONS INTO SEMANTIC MEMORIES. DUPLICATES MERGED. STALE ROWS DECAYED. AUDIT ROW EMITTED EVERY DELETE.\n\n## TWELVE THINGS YOU DID NOT WANT TO BUILD.\n\nAGENTMEMORY IS NOT A LIBRARY OR A VECTOR STORE. IT'S A COMPLETE MEMORY RUNTIME — CAPTURE, RECALL, CONSOLIDATE, OBSERVE, FEDERATE.\n\n- 12AUTO-HOOKS\n### CAPTURE EVERYTHING\n\nEvery PreToolUse, PostToolUse, SessionStart, Stop, and the rest fire into the memory pipeline without a line of glue code. Install the plugin, done.\n\n- 53MCP TOOLS\n### NATIVE MCP SURFACE\n\nmemory_save, memory_recall, memory_smart_search, memory_sessions, governance, audit, export — full surface behind a single MCP server.\n\n- 126REST ENDPOINTS\n### HTTP FIRST\n\nEvery MCP tool has a REST twin under /agentmemory/*. Curl it. Fetch it from the browser. Proxy it from your own agent.\n\n- BM25+ VECTOR + GRAPH\n### TRIPLE-STREAM RECALL\n\nHybrid retrieval pipes lexical, semantic, and relational scores through an on-device reranker. 95.2% R@5 on LongMemEval-S.\n\n- AUTOCONSOLIDATION\n### RAW → SEMANTIC\n\nHourly sweep compresses observations into semantic memories, merges duplicates, decays stale rows with retention scoring, and emits a batched audit row.\n\n- ∞REPLAY\n### JSONL SESSION IMPORT\n\nPoint agentmemory at a Claude Code JSONL transcript and it rehydrates the full session — observations, tool uses, timeline — into the store.\n\n- GRAPHEXTRACTION\n### KNOWLEDGE GRAPH\n\nEntities and relations extracted on compress. Query with /agentmemory/graph. Visualize in the viewer. Temporal edges supported.\n\n- MESHFEDERATION\n### PEER-TO-PEER SYNC\n\nRegister another agentmemory node, push / pull memories over authenticated HTTPS. Bearer-token required; no silent syncs.\n\n- MDOBSIDIAN EXPORT\n### YOUR NOTES, HYDRATED\n\nMirror memories to a sandboxed vault directory. Frontmatter-tagged markdown, ready for Obsidian's graph view.\n\n- 5LLM PROVIDERS\n### BYO MODEL\n\nClaude subscription (default, zero config), Anthropic API, Gemini, MiniMax, OpenRouter. Detected from env.\n\n- OTELOBSERVABILITY\n### TRACES + LOGS\n\niii-observability worker on by default. Exporter: memory for local, OTLP for Jaeger / Honeycomb / Tempo. Every operation produces a span.\n\n- 0EXTERNAL DBs\n### ONE PROCESS\n\nRuns as a single Node process. No Redis, Kafka, Postgres, Qdrant, Neo4j. State lives on disk as JSON. That's the whole stack.\n\n## TWO UIs.\n\nONE MEMORY RUNTIME.\n\nAGENTMEMORY SHIPS A REAL-TIME VIEWER FOR YOUR MEMORIES AND AN ENGINE-LEVEL CONSOLE FOR EVERY FUNCTION, TRIGGER, AND OTEL SPAN. BOTH ARE FIRST-CLASS — INSTALLED INLINE BY THE CLI ON FIRST RUN.\n\n### SHIP-WITH VIEWER · PORT 3113\n\nThe agentmemory server auto-starts a real-time viewer on port 3113. No install, no config. Everything the server sees, the viewer shows.\n\n- LIVE OBSERVATION STREAM · EVERY HOOK AS IT FIRES\n- SESSION EXPLORER · REPLAY ANY PAST SESSION\n- MEMORY BROWSER · FILTER BY PROJECT / TYPE / CONFIDENCE\n- KNOWLEDGE GRAPH VISUALIZATION · FORCE-DIRECTED\n- HEALTH DASHBOARD · HEAP / RSS / EVENT LOOP LAG\n\n``` bash\n$ open http://localhost:3113\n```\n\n## MEMORY THAT TYPES BACK.\n\n## VS. THE FIELD.\n\nNUMBERS STRAIGHT FROM THE LONGMEMEVAL-S BENCHMARK AND EACH PROJECT'S OWN DOCS. SHIP WHAT YOU WANT — WE JUST PICKED THE ONE WITH RECEIPTS.\n\n## IN THE WILD.\n\nVerbatim from the Product Hunt launch thread. Each card links back to the source comment.\n\n[Backfilled a month of Cursor transcripts](https://www.producthunt.com/p/agent-memory-dev/how-do-you-found-agentmemory-so-far-happy-to-help?comment=5379518)\n\nI backfilled agent memory on my past month's Cursor agent transcripts. It was surprisingly accurate. Picked up on things that I moved away from.\n\n[Two weeks of production use](https://www.producthunt.com/p/agent-memory-dev/how-do-you-found-agentmemory-so-far-happy-to-help)\n\nBeen using it for 2 weeks, and I definitely see improvements.\n\nTackles one of the biggest pain points with coding agents: losing useful project context across sessions without bloating the context window.\n\nThe focus on making memory actually useful for agents instead of just storing context endlessly.\n\nMemory often becomes just more noise over time. Agentmemory feels more intentional compared to a lot of tools in this space.\n\nTried it briefly — feels clean and easy to get started with.\n\n## SEVEN NATIVE PLUGINS.\n\nREST MCP-NATIVE.\n\nNATIVE PLUGINS FOR CLAUDE CODE, COPILOT CLI, CODEX CLI, OPENCLAW, HERMES, PI, AND OPENHUMAN. EVERY OTHER MCP CLIENT GETS IT FOR FREE. `agentmemory connect <agent>` AUTO-WIRES THEM ALL.\n\n[FIRST-CLASS PLUGINClaude CodeFROM Anthropic](https://claude.com/product/claude-code)\n\n12 hooks + MCP + skills\n\n[NATIVE PLUGINCopilot CLIFROM GitHub](https://docs.github.com/copilot/github-copilot-in-the-cli)\n\n11 hooks + MCP · framed stdio\n\n[NATIVE PLUGINCodex CLIFROM OpenAI](https://github.com/openai/codex)\n\n6 hooks + MCP · native plugin\n\n[GATEWAY PLUGINOpenClawFROM openclaw](https://github.com/openclaw/openclaw)\n\nonSessionStart · onPreLlmCall · onPostToolUse · onSessionEnd\n\n[FIRST-PARTY INTEGRATIONHermesFROM Nous Research](https://github.com/NousResearch)\n\nPython plugin · yaml config\n\n[NATIVE PLUGINpiFROM pi](https://github.com/rohitg00/agentmemory/tree/main/integrations/pi)\n\nNative plugin + MCP\n\n[NATIVE BACKENDOpenHumanFROM tinyhumansai](https://github.com/tinyhumansai/openhuman)\n\nNative Memory trait backend (Rust)\n\n[Claude DesktopFROM Anthropic](https://claude.ai/download)\n\n[CursorFROM Anysphere](https://cursor.com)\n\n[WarpFROM Warp](https://www.warp.dev)\n\n[ContinueFROM Continue.dev](https://continue.dev)\n\n[ClineFROM cline](https://github.com/cline/cline)\n\n[ZedFROM Zed Industries](https://zed.dev)\n\n[DroidFROM Factory.ai](https://docs.factory.ai/cli)\n\n[Gemini CLIFROM Google](https://github.com/google-gemini/gemini-cli)\n\n[AntigravityFROM Google](https://antigravity.google)\n\n[Qwen CodeFROM Alibaba](https://github.com/QwenLM/qwen-code)\n\n[KiroFROM AWS](https://kiro.dev)\n\n[OpenCodeFROM opencode-ai](https://github.com/opencode-ai/opencode)\n\n[Roo CodeFROM RooCode](https://github.com/RooCodeInc/Roo-Code)\n\n[Kilo CodeFROM Kilo-Org](https://github.com/Kilo-Org/kilocode)\n\n[GooseFROM Block](https://github.com/block/goose)\n\n[AiderFROM Aider-AI](https://github.com/Aider-AI/aider)\n\n[WindsurfFROM Cognition](https://windsurf.com)\n\n[Claude DesktopFROM Anthropic](https://claude.ai/download)\n\n[CursorFROM Anysphere](https://cursor.com)\n\n[WarpFROM Warp](https://www.warp.dev)\n\n[ContinueFROM Continue.dev](https://continue.dev)\n\n[ClineFROM cline](https://github.com/cline/cline)\n\n[ZedFROM Zed Industries](https://zed.dev)\n\n[DroidFROM Factory.ai](https://docs.factory.ai/cli)\n\n[Gemini CLIFROM Google](https://github.com/google-gemini/gemini-cli)\n\n[AntigravityFROM Google](https://antigravity.google)\n\n[Qwen CodeFROM Alibaba](https://github.com/QwenLM/qwen-code)\n\n[KiroFROM AWS](https://kiro.dev)\n\n[OpenCodeFROM opencode-ai](https://github.com/opencode-ai/opencode)\n\n[Roo CodeFROM RooCode](https://github.com/RooCodeInc/Roo-Code)\n\n[Kilo CodeFROM Kilo-Org](https://github.com/Kilo-Org/kilocode)\n\n[GooseFROM Block](https://github.com/block/goose)\n\n[AiderFROM Aider-AI](https://github.com/Aider-AI/aider)\n\n[WindsurfFROM Cognition](https://windsurf.com)\n\n## ONE INSTALL.\n\nANY AGENT.\n\nRUNS ON YOUR MACHINE. DATA STAYS LOCAL. BRING YOUR CLAUDE SUBSCRIPTION — OR POINT IT AT ANTHROPIC, GEMINI, MINIMAX, OR OPENROUTER.\n\nONE MCP JSON FITS ALMOST EVERYTHING. PICK YOUR AGENT ON THE LEFT, OR PASTE THE UNIVERSAL CONFIG ON THE RIGHT.\n\nCURSOR / VS CODE ARE ONE-CLICK VIA DEEPLINK. OTHERS COPY THE RIGHT SNIPPET DIRECTLY TO YOUR CLIPBOARD.\n\n```\n{\n  \"mcpServers\": {\n    \"agentmemory\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@agentmemory/mcp\"],\n      \"env\": {\n        \"AGENTMEMORY_URL\": \"http://localhost:3111\"\n      }\n    }\n  }\n}\n```\n\n", "url": "https://wpnews.pro/news/persistent-memory-for-coding-agents", "canonical_source": "https://www.agent-memory.dev/", "published_at": "2026-06-04 06:34:43+00:00", "updated_at": "2026-06-04 06:47:02.902998+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-infrastructure", "ai-products", "large-language-models"], "entities": ["AgentMemory", "iii engine", "MCP", "BM25", "REST"], "alternates": {"html": "https://wpnews.pro/news/persistent-memory-for-coding-agents", "markdown": "https://wpnews.pro/news/persistent-memory-for-coding-agents.md", "text": "https://wpnews.pro/news/persistent-memory-for-coding-agents.txt", "jsonld": "https://wpnews.pro/news/persistent-memory-for-coding-agents.jsonld"}}