Engram by Gentleman Programming MCP
Engram (Gentleman Programming)
Persistent memory for AI coding agents in a single Go binary: an MCP server on SQLite with full-text search that remembers your project across sessions
- 7,553 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The Claude Code plugin installs session hooks that run scripts and call curl on your machine
- Memory entries may hold code fragments and project decisions, and with Engram Cloud on they replicate to a server
Install
- Works in
Manual install
brew install gentleman-programming/tap/engramInstalls the latest stable release. Windows, Linux and source build methods are in the installation docs.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The Claude Code plugin installs session hooks that run scripts and call curl on your machine
- Memory entries may hold code fragments and project decisions, and with Engram Cloud on they replicate to a server
This is third-party code. Review the repository files before installing.
What it does
Engram saves what an agent learned during a session and feeds it into later ones. The whole project is one Go binary: data sits in SQLite with an FTS5 index in ~/.engram/engram.db and is exposed through console commands, a local HTTP API, MCP over stdio and the engram tui terminal interface. The agent gets MCP tools for saving entries, search, timeline, session tracking, review and diagnosis. When entries conflict, Engram flags the conflict so the agent can compare them. Memory is bound to a project: an explicit project wins, then the ENGRAM_PROJECT variable, then the project is detected from the current directory. engram setup writes the right configuration for 14 agents, including Claude Code, Codex, Cursor, Gemini CLI, OpenCode and Windsurf. Claude Code also gets a marketplace plugin with session hooks and recovery after context compaction. Memory stays on your computer, and moving it between machines is done through Git Sync or the optional Engram Cloud.
Who it is for. For developers who re-explain the project to an agent every session and want to keep that memory on their own disk rather than in someone else's service.
Good fit when
- An agent in Claude Code forgets decisions every time, and you want it to save them through MCP tools and find them by search
- You work with several agents, such as Codex and Cursor, and want shared memory in one local SQLite file
- After context compaction the agent loses the thread, and the Claude Code plugin with compaction recovery brings it back
- You need memory per repository, and project detection by directory or ENGRAM_PROJECT provides it
- A team shares accumulated entries through Git Sync or reviews them in the engram tui terminal interface
Not a fit when
- You need a link graph and vector semantic search: Engram builds an FTS5 full-text index
- A CLAUDE.md or AGENTS.md file with a few project rules is enough and no separate store is needed
- Your agent has no MCP and is not on the support list, and manual setup does not suit you
- The Claude Code plugin needs jq and curl, which are missing and cannot be installed: only the MCP fallback without hooks is available
Example request
Save to Engram memory the decision that this project uses SQLite rather than Postgres, and remind me of it the next time we work on the databaseMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
ENGRAM_PROJECT- Name of the project the memory belongs to when the directory does not identify it
Limitations
- First install the engram binary, for example through Homebrew with brew install gentleman-programming/tap/engram. Windows, Linux and source builds are covered in the installation docs.
- The Claude Code marketplace plugin installs only hooks, scripts and the Memory Protocol skill. The MCP server is registered by engram setup claude-code.
- The plugin hooks need jq and curl on PATH. Older Claude Code versions may reject the plugin manifest, and claude update fixes that.
- Mutating Codex tools require a compatible running core, otherwise it must be upgraded.
- Engram Cloud is optional and project-scoped. The license is MIT, and local use needs no keys or paid accounts.
How to disable. Remove the MCP registration in the client, for example claude mcp remove engram, and uninstall the plugin with claude plugin uninstall engram. Entries stay in ~/.engram/engram.db, so delete that folder if you no longer need the memory.
FAQ
How do I install Engram in Claude Code?
Install the binary with brew install gentleman-programming/tap/engram and run engram setup claude-code. The command updates the marketplace plugin and registers the MCP server; then restart Claude Code. The plugin needs jq and curl.
Where does Engram keep memory entries?
Locally, in the SQLite file ~/.engram/engram.db with an FTS5 index. The local database is authoritative. Git Sync exports portable compressed chunks from it, and Engram Cloud is optional.
Which agents does Engram work with?
engram setup covers 14 agents: Claude Code, Pi, OpenCode, Gemini CLI, Codex, Antigravity CLI, Windsurf, Qwen Code, Kiro, Cursor, VS Code (Copilot), Kilo Code, Kimi Code and CommandCode. Any other MCP agent connects manually.
How is Engram different from Claude-Mem?
Engram is a standalone Go binary that serves fourteen agents through MCP and one shared SQLite database. Claude-Mem ships as a Claude Code plugin and saves observations from its sessions.
How do I check that Engram is installed correctly?
engram doctor runs read-only diagnostics. To browse memory use engram tui: j and k move through the list, / starts a search and Enter opens an entry.
Discussion
No questions or reviews yet.
Related
MCP serversLocal persistent memory for coding agents: hooks record every session, and Claude Code, Codex or Cursor recall past decisions through 54 MCP tools
Long-term memory for agents: a remote MCP server, plugins for Claude Code, Cursor and Codex, and an API for your own apps
Shared local memory for AI agents: Claude Code, Codex, Cursor and others find the agreements of past sessions in it and record new ones
Local memory for agents: stores conversations and project files verbatim and retrieves them with semantic search over MCP
Self-hosted long-term memory for agents: semantic search, a knowledge graph and autonomous consolidation over MCP and a REST API
Long-term memory for AI agents: Markdown files as the source of truth, a SQLite index as a cache, shared by Claude Code, Codex and others
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Engram by Gentleman Programming (this entry) | no | not required | 7,553 | |
| Claude-Mem | no | 102,374 | a Claude Code plugin with session observations, while Engram is a shared binary for fourteen agents | |
| Mem0 | no | 67,710 | a memory layer with plugins and an SDK, with storage and API configured separately | |
| Basic Memory | no | not required | 4,323 | keeps memory in Markdown files with a link graph, while Engram holds it in one SQLite file |
README in short
The page opens with a banner: a tagline about persistent memory, a list of 14 supported agents and a diagram running from the agent through MCP to SQLite. Blocks follow on binding memory to a project, local storage with Git Sync and the cloud, the terminal interface and extra components. The getting started section gives the Homebrew install and a table of setup commands by agent. The page ends with the storage compatibility check, engram compatibility, which only reads metadata.