Most memory servers are opaque — you find out what is in them by querying and hoping. The graph view and the tiered decay badges make the contents inspectable, which matters when you are trying to work out why an assistant keeps surfacing something stale. The other practical piece is the export: rather than locking memories in, it writes them out as `CLAUDE.md` or `.cursorrules` that tools read natively.
A visual memory manager with an MCP server on both ends: a local stdio server your desktop tools spawn, and a Streamable HTTP endpoint for hosted clients that want the same memories across machines. There is a web UI on top — dashboard, force-directed graph of semantic relations, and an export page. It runs fully local with memories in browser storage or `~/.agentmemory/`, or optionally syncs through your own Supabase project.
- The MCP tool set: `add_memory`, `search_memories`, `list_memories`, `find_similar`, `delete_memory`, `list_projects`, `switch_project`, `get_project_context`, `import_jsonl` and `backfill_embeddings`, plus three resources addressed as `agentmemory://rules`, `agentmemory://graph` and `agentmemory://projects`
- Hybrid search that fuses three sources through Reciprocal Rank Fusion — vector cosine similarity, BM25 keyword matching, and a one-hop expansion through the relations graph — so a memory can surface by meaning, by wording, or by what it is linked to
- Memory decay and access tracking: strength follows an exponential curve and is boosted every time a memory is read, sorting entries into hot, warm, cold and dead tiers shown as a badge on each card
- Automatic forgetting on boot, which removes memories whose TTL expired, or that are both very weak and rarely accessed, or that are low-importance and older than 180 days
- Import from a Claude Code session file — `import_jsonl` parses one JSON object per line, drops tool-use blocks, filters user messages by length, auto-categorises them as decision, constraint, preference, architecture or context, extracts tags from hashtags and file extensions, and caps at 200 memories per file
- Export in the formats your tools already read: `CLAUDE.md`, `.cursorrules`, MemGPT JSON, or a shareable read-only URL, with live preview and category filters
- Setup instructions for twenty clients, from Claude Desktop and Cursor through Codex CLI, Gemini CLI, Zed, Goose, Warp and OpenClaw
Nothing for local use — no account, no key, no license key. Clone it, `npm install`, and point your client at `npx tsx /absolute/path/to/agentmemory/mcp/index.ts` with `AGENTMEMORY_HOME` set to your storage path; there is no build step. Use an absolute path, since `~` is not expanded inside the JSON config. Cloud sync is optional and self-hosted: create your own Supabase project, run the bundled schema, set `VITE_SUPABASE_URL` and `VITE_SUPABASE_ANON_KEY`, and deploy to Vercel, after which clients connect to `/mcp` with the user's Supabase JWT in an `Authorization: Bearer` header. Semantic search on the cloud server needs a free HuggingFace read token in `HUGGINGFACE_API_KEY`; without it the server still works and the fusion drops to keyword plus graph. `RATE_LIMIT_PER_HOUR` caps embedding calls per user. MIT licensed.
One command — npx -y mcp-remote https://your-app.vercel.app/mcp
