Engram gives AI coding agents a memory that survives the end of a session. Agents save bug fixes, decisions, discoveries, conventions and session summaries as structured observations, then search and reload them in later sessions so the codebase does not have to be re-explained.
It ships as a single Go binary that stores memories in one SQLite database with FTS5 full-text search, and exposes the same store through an MCP server, an HTTP API, a CLI, and a terminal UI. It works with any MCP-compatible agent, with setup targets for Claude Code, Pi, OpenCode, Gemini CLI, Codex, Antigravity, Windsurf, Qwen Code, Kiro, Cursor, VS Code (Copilot), Kilo Code, Kimi Code, and CommandCode. OpenCode and Claude Code also get plugins, and Pi gets a dedicated package.
Memory is project-aware: reads default to the current project (an explicit project, then a configured one, then detection from the working directory), and a global read across all projects is opt-in. When initializing Git would change which project a directory maps to, Engram stops and asks for an explicit choice instead of silently splitting the history.
The local database is authoritative. Git Sync exports memories as compressed chunks that can be committed and imported on another machine, and Engram Cloud adds optional project-scoped replication and shared access with a browser view. Engram is also the memory layer of Gentle-AI, and a comparison with Claude-Mem is published alongside it.
Features
- MCP memory tools: tools to save, search, update, review, compare and diagnose memories, plus session start, end and summary handoffs
- Full-text search: SQLite with FTS5 in a single local database file, with no external processes
- Progressive retrieval: search returns previews, a timeline shows surrounding session context, and a full observation is fetched on demand
- Topic keys: a stable key per evolving topic so updates refine one memory instead of creating competing ones
- Conflict surfacing: flags related or conflicting memories so the agent can judge them
- Project scoping: memories resolve to the current project by default, with an opt-in global read
- Terminal UI: browse, search and copy memories with vim-style keys
- HTTP API: the same memory store over local HTTP endpoints
- Git Sync: exports compressed chunks for sharing memory across machines without merge conflicts
- Engram Cloud: optional project-scoped replication and shared access with a browser dashboard
- Doctor: read-only diagnostics and repair workflows for project and store state
- Obsidian export: writes memories out as an Obsidian knowledge graph (beta)

