Remember with structure.
Store facts alongside entities and relationships. Supply text for extraction, or retain structured facts directly.
Engram gives agents a place to keep facts, find relevant context, and build observations over time. A TypeScript library and an MCP server share one SQLite-backed memory engine.
Retain extracts and stores facts. Recall finds what is relevant. Reflect synthesizes observations from related memories.
Store facts alongside entities and relationships. Supply text for extraction, or retain structured facts directly.
Combine semantic similarity, keyword search, and time filters to find useful memories for the task at hand.
Synthesize observations from related facts. Inspect, separate, and remove memories as their usefulness changes.
Use Node.js 20 or later. Build the repository locally, then configure the model and embedding providers for your environment.
Read the documentationgit clone https://github.com/ReallyArtificial/engram.git
cd engram
npm install
npm run buildnpm run initThe setup wizard guides provider configuration and can register Engram with Claude Code. For another MCP client, follow the repository’s manual setup. You can also use the TypeScript library in your own application.
Facts, entities, and observations are stored in a local SQLite database. Model and embedding requests go to the providers you configure. Local storage alone does not mean every processing step happens on your device.
The repository documents an Ollama configuration for local embeddings and language-model calls. You will need to install the models and configure their endpoints. Cloud configurations use the credentials of your chosen providers.
Memory banks separate contexts, while expiry and explicit forgetting let you remove stored facts. Reflection is configurable, including controls that limit the number of model calls.
No. Engram is an independent project with its own provider configuration. Its place alongside Freeport and MCP-Jest describes a shared purpose, not a required integration.
Explore the code, follow the setup guide, and share what you find. Questions and reproducible bug reports are useful contributions.