Engram
@tstockham96
Universal memory layer for AI agents. Semantic recall, automatic consolidation, and bi-temporal knowledge — in SQLite. 80% on LOCOMO benchmark using 96% fewer tokens.
Overview
What is Engram?
Engram is an intelligence layer for AI agents that stores, learns, and surfaces memories—going beyond simple storage by consolidating patterns, detecting contradictions, and providing context you didn’t ask for. It integrates as an MCP server (for Claude Code, Cursor, or any MCP client), a REST API, and a TypeScript SDK.
How to use Engram?
Install globally with npm install -g engram-sdk, then run engram init to set up a local SQLite vault. For MCP clients, use the same command; for a REST API, run npx engram-serve after setting your GEMINI_API_KEY. Use the CLI, SDK, or HTTP endpoints to store and recall memories.
Key features of Engram
- Three memory tiers: explicit, implicit, and synthesized.
- Entity-aware recall and bi-temporal fact tracking.
- LLM-powered consolidation and contradiction detection.
- Works with Gemini, OpenAI, Ollama, and any OpenAI-compatible provider.
- Zero‑infrastructure: SQLite, no Docker, no external services.
- CLI, REST API, TypeScript SDK, and MCP server with 10 tools.
Use cases of Engram
- Persist user preferences and conversation context across sessions.
- Detect behavioral patterns from how users work (implicit memory).
- Surface relevant context automatically via spreading activation.
- Run enterprise‑grade memory benchmarks (LOCOMO, Letta, codebase navigation).
- Build agents that learn and adapt without manual memory management.
FAQ from Engram
How does Engram compare to Mem0, Zep, or LangMem?
Engram invests intelligence at read time (when the query is known), not write time. Benchmarks on LOCOMO show 80.0% accuracy (19.6% relative improvement over Mem0) using 96.6% fewer tokens than full‑context retrieval.
What runtime/dependencies does Engram require?
Node.js (>=18) and npm. Zero infrastructure: only SQLite for storage. For consolidation/embeddings you need a Gemini API key (or custom LLM via ENGRAM_LLM_BASE_URL).
Where does Engram store memory data?
By default in ~/.engram/default.db (SQLite). The path can be changed with ENGRAM_DB_PATH.
Are there any limits or licensing restrictions?
Engram is proprietary (BSL‑1.1). Self‑hosting is free. The hosted free tier allows 1,000 memories and 1 agent; paid plans scale to unlimited memories.
What transports and authentication does Engram support?
MCP (stdio and SSE), REST API (HTTP on port 3800), and CLI. API authentication is optional via ENGRAM_AUTH_TOKEN (Bearer token).