Episodic vector search for conversations. Semantic graph for entities and relationships.
One pip install, works with Claude Code, Cursor, or any MCP client.
Claude Code, Cursor, Copilot — they all forget. You re-explain project decisions, architecture choices, and team preferences every single time. On long-running projects, this friction compounds.
Conversations need vector search — "what did we decide about auth?" Entity relationships need a graph — "which services depend on PostgreSQL?" Engram stores both, queries both, and fuses results through an LLM reasoning engine.
MCP server for Claude Code and Cursor. HTTP API and WebSocket for custom agents. CLI for shell scripts and cron jobs. Entity-gated ingestion means only meaningful data gets stored — no noise.
{ "mcpServers": { "engram": { "command": "engram-mcp", "env": { "GEMINI_API_KEY": "your-key" } } } }
import httpx api = "http://localhost:8765/api/v1" # store a decision httpx.post(f"{api}/remember", json={ "content": "Use PostgreSQL for auth", "memory_type": "decision", "priority": 8 }) # recall later r = httpx.get(f"{api}/recall", params={"query": "auth database"}) print(r.json()["results"])
# Initialize and start the daemon engram init engram start # Store memories with metadata engram remember "Deploy v2.1 caused 503 spike at 14:00" --type error --priority 9 engram remember "Team agreed: all new services use gRPC" --type decision --tags arch,grpc # Semantic search across all memories engram recall "production incidents" --limit 5 # LLM reasoning across episodic + semantic memory engram think "What deployment patterns have caused issues?" # Knowledge graph engram add node "PostgreSQL" --type technology engram add edge "auth-service" "PostgreSQL" --relation uses engram query --related-to "PostgreSQL"