Adding memory to Cursor

its chats live in SQLite, and the terminal agent beside it is the same history

Cursor keeps your chats, and opens the next one empty. What you worked out last week is still on disk — along with the work you did in whichever terminal agent you had open beside it.

What Cursor already has

The editor stores chats in SQLite rather than JSONL: state.vscdb under ~/Library/Application Support/Cursor/User on macOS and ~/.config/Cursor/User on Linux, split between globalStorage/ and one database per workspace. Nothing reads it back. How Cursor's store is read has the schema and what it took to follow it across versions.

Adding recall

deja install cursor-auto

That writes the deja MCP server into ~/.cursor/mcp.json and the hooks that carry recall into a session. The server on its own is deja install cursor.

It needs the binary, which the MCP entry calls by name:

brew install deja-vu
# or
curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh

The editor and the terminal are the same history

Cursor is usually not the only agent on the machine — there is a terminal agent open in the same repository, and the two never see each other's work. Indexing both is the point: a question asked in Cursor gets answered from the session where it was actually solved, whichever tool that was. Switching agents is the longer version of that argument.

The part that is not about this harness

The index covers every agent's transcripts on the machine — twenty of them today, each in its own format — so a fix found in one tool answers a question asked in another, including sessions from before any of this was installed. That is the reason to index rather than to capture.

Nothing here writes memories, so there is nothing to hallucinate into your history; indexing and search are local, and credentials are stripped as the index is built (privacy). An injection is capped at 1,536 bytes per prompt and about 4 KB per tool call — what memory costs has the measured comparison.

Getting started · How Cursor's store is read · Parallel sessions