Cognition has introduced Memory and Dreaming for Devin, giving the coding agent a way to retain and reorganize information over time.
Memory is designed to help Devin carry user preferences, corrections, and project experience across sessions. Dreaming, by contrast, runs daily in the background to revisit and tidy up those records. Users can directly inspect what Devin has remembered and can also see what Dreaming changed most recently.
Memory Drive uses a persistent Git repository
The records are stored in a personal Memory Drive, which is essentially a persistent Git repository. Most of the content is organized as Markdown files. A short MEMORY.md file acts as the entry point and index, and it is placed into context at the start of each new session.
Devin then searches the relevant memory files based on the task at hand, in a way similar to searching a codebase. That means the full memory store does not need to be loaded into the prompt.
Multiple sessions can work on the same memory set
Multiple Devin sessions can read and write the same pool of memory at the same time. Each session has its own Git checkout. After a session updates memory, the changes are committed and merged back into Memory Drive. If concurrent edits happen, Git exposes the conflict so one session does not overwrite another.
Dreaming revisits, removes, and adds records every day
Dreaming itself runs as a background session each day. It reviews past conversations and existing memory, merges duplicate entries, removes temporary information or material that has not been used again for a long time, and adds experience that was not recorded earlier.
Cognition released the setup as Agent Memory Repo
Cognition has also separated the system into an open-source project called Agent Memory Repo. Other agents, including Claude Code and Cursor, can use a similar approach by storing long-term memory as files and managing them through Git.
The open-source release provides the memory structure and workflow. A daily auto-running Dreaming process like the one used by Devin still needs additional configuration.

