Persistent memory for Cursor
Cursor's context rules get you partway: they're per-project, they're static, and they only apply inside Cursor. What they don't give you is a memory that follows the facts — and follows you across tools.
If you also use Claude Code (or anything else that speaks MCP), the memory split is real: Cursor knows your project conventions, Claude Code knows the server quirks, and you're the one syncing them by hand.
One vault, any MCP client
Engram is a local-first memory daemon with an MCP front end. Point Cursor at it and it gains the same six tools any MCP client gets — capture, search, get, context, health, decay. Because the vault is shared, a memory saved in Cursor shows up when Claude Code assembles context, and vice versa. The memory layer stops being per-tool and becomes yours.
Setup
npx -y @elai-intelligence/engram-mcp setup
Then add the server in Cursor → Settings → MCP (the setup helper prints the exact command). The daemon runs locally; the vault is a SQLite file, encrypted at rest. Nothing leaves your machine unless you turn on encrypted sync.
Working with it
Capture is explicit-only — the agent stores a memory when the task calls for it, or when you say "remember that." That's deliberate: an auto-capturing memory server fills your vault with noise, and then search quality dies. The capture path deduplicates and reports skips honestly, and memories decay over time unless reinforced, so the vault stays a working set rather than a dump.
Useful patterns that survive the session boundary:
remember: this repo pins Node 22 because the WebSocket client needs it- project decisions and the reasons behind them — "stayed on SQLite instead of Postgres because…"
- "the user prefers X" — preferences cost the most to re-learn
What it is not
Not a RAG over your whole codebase, not a chat history store. It's long-term memory: the small set of facts that should outlive the session. Context handles the current task; Engram handles everything you'd otherwise re-explain next week.
The same vault works in Claude Code — see how one install covers both.