add_memoryLABSCO SUMMARY
A memory store you can actually look at.
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.
What it is
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.
What you get
- The MCP tool set:
add_memory,search_memories,list_memories,find_similar,delete_memory,list_projects,switch_project,get_project_context,import_jsonlandbackfill_embeddings, plus three resources addressed asagentmemory://rules,agentmemory://graphandagentmemory://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_jsonlparses 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
Requirements
Nothing for local use — no account, no key, no license key. Clone it, npm install, and point your client at npx tsx <YOUR_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.
Setup effort
Build from source — git clone https://github.com/Obidel/Agentmemory.git
USE CASES
Sharing one set of rules across every editor
Store a preference once and point Claude Desktop, Cursor and Cline at the same server, or export it as the config file each tool already reads.
Mining a past Claude Code session for what you decided
Import the session file; tool calls are dropped, user messages are filtered and categorised, and tags come from hashtags and file extensions.
Understanding why a memory keeps coming up
Open the graph view to see the semantic neighbours and the strength tier, then delete or let decay handle what has gone stale.
Keeping projects from bleeding into each other
Switch the active project and pull only that project's context, rather than searching one undifferentiated pile.
Turning on semantic search after the fact
Once an embedder is configured, run the backfill repeatedly until no rows remain unembedded.
10 tools
Listed in project docs. Your client may show a different list.
search_memorieslist_memoriesfind_similardelete_memorylist_projectsswitch_projectget_project_contextimport_jsonlbackfill_embeddingsBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
npx on PATH
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/Obidel/Agentmemory.git
cd Agentmemory
npm installMCP Clients
Claude Desktop, Cursor, Cline, Roo Code
{
"mcpServers": {
"agentmemory": {
"command": "npx",
"args": [
"tsx",
"<YOUR_PATH_TO_AGENTMEMORY>/mcp/index.ts"
],
"env": {
"AGENTMEMORY_HOME": "<YOUR_AGENTMEMORY_HOME>"
}
}
}
}Continue
mcpServers:
- name: agentmemory
command: npx
args:
- tsx
- <YOUR_PATH_TO_AGENTMEMORY>/mcp/index.ts
env:
AGENTMEMORY_HOME: <YOUR_AGENTMEMORY_HOME>Zed
{
"context_servers": {
"agentmemory": {
"command": {
"path": "npx",
"args": [
"tsx",
"<YOUR_PATH_TO_AGENTMEMORY>/mcp/index.ts"
],
"env": {
"AGENTMEMORY_HOME": "<YOUR_AGENTMEMORY_HOME>"
}
}
}
}
}Goose
extensions:
agentmemory:
type: stdio
cmd: npx
args: ["tsx", "<YOUR_PATH_TO_AGENTMEMORY>/mcp/index.ts"]
envs:
AGENTMEMORY_HOME: <YOUR_AGENTMEMORY_HOME>
enabled: trueWarp
Warp Drive → Settings → AI → Manage MCP Servers → + Add, then enter:
Name: agentmemory
Command: npx tsx /absolute/path/to/agentmemory/mcp/index.ts
Env: AGENTMEMORY_HOME=/absolute/path/to/storage
Codex
[mcp_servers.agentmemory]
command = "npx"
args = ["tsx", "<YOUR_PATH_TO_AGENTMEMORY>/mcp/index.ts"]
env = { AGENTMEMORY_HOME = "<YOUR_AGENTMEMORY_HOME>" }GitHub Copilot
{
"mcpServers": {
"agentmemory": {
"type": "stdio",
"command": "npx",
"args": [
"tsx",
"<YOUR_PATH_TO_AGENTMEMORY>/mcp/index.ts"
],
"env": {
"AGENTMEMORY_HOME": "<YOUR_AGENTMEMORY_HOME>"
}
}
}
}OpenCode
{
"mcp": {
"agentmemory": {
"type": "local",
"command": [
"npx",
"tsx",
"<YOUR_PATH_TO_AGENTMEMORY>/mcp/index.ts"
],
"environment": {
"AGENTMEMORY_HOME": "<YOUR_AGENTMEMORY_HOME>"
},
"enabled": true
}
}
}