Adding memory to Devin CLI
one command for the MCP server, the skill and the hooks
Devin CLI keeps every session in one local database and opens the next one empty. What you worked out last week is still there, and so is the work you did in whichever other agent you had open at the time.
What Devin already has
Sessions live in ~/.local/share/devin/cli/sessions.db on macOS and Linux (XDG_DATA_HOME is honoured), with a summary per session at devin/summaries/<session_id>.md under the same data directory. devin --resume <id> reopens one. Complete, and unread by anything — including by Devin's next session.
Adding recall
deja install devin-auto
That needs the binary:
brew install deja-vu # or curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh
Without hooks, deja install devin writes only the MCP server and the skill, and the agent searches when it decides to.
What gets wired
deja install devin writes the MCP server to ~/.config/devin/mcp_config.json and the deja-history skill to ~/.agents/skills/deja-history/SKILL.md. deja install devin-auto also writes hooks into the "hooks" key of ~/.config/devin/config.json, next to whatever else is in it:
- The project digest on
SessionStartand again onPostCompaction, so a compacted thread gets its task back. - Recall on
UserPromptSubmit, silent when the history has no answer. - A line about the file on
PostToolUseafter an edit or write, and the repair for a failed command afterexec. SessionEnd, so the session you just quit is one the next session's recall can answer.
Plugin or CLI install
There is also a plugin: devin plugins install vshulcz/deja-vu#devin-plugin. Pick deja install devin-auto. Devin's cloud sessions are reported to skip SessionStart and SessionEnd for plugin hooks, so with the plugin the opening digest may be CLI-only. When both are present the plugin's hooks see the wiring in config.json and stand down, so running both is safe.
The part that is not about this harness
The index covers every agent's transcripts on the machine — forty-three 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). What memory costs has the measured comparison.
Getting started · How Devin's store is read · Resuming a session
Found this useful? Star deja-vu on GitHub.