Persistent memory for Claude Code with Weaviate Engram
By Steven Van ·
The Engram plugin gives Claude Code memory that carries across repos and sessions, built on Weaviate's Engram memory server.
Weaviate has released an Engram plugin for Claude Code that gives Claude a long-term memory not tied to any one repo or session. Weaviate says the plugin is meant to capture what a user actually did, such as the feature added last week, the approach settled on after trying two others, or a library evaluated and rejected. That is history rather than policy, so it does not belong in a CLAUDE.md rules file.
What it addresses
Claude Code keeps its own notes, but they stay with the project they were written in. Most real work spans more than one project, so switching repos means Claude starts from zero. With the plugin, work done in one place is remembered and recalled wherever it becomes relevant again. It is installed once.
Across sessions and codebases
Weaviate gives two examples of how this shows up. In the first, rate limiting was added to one service and a particular approach was chosen. When rate limiting is later added to another service, Claude recalls the earlier change and suggests the same approach, or notes the similarity and proposes a variation.
In the second, an endpoint is added to an API repo, and later in the week the user opens the frontend repo to wire it up. Without memory, that session starts cold and the endpoint's path, request shape and optional fields have to be described again. With the plugin, Claude already knows about the endpoint. Weaviate says nothing visibly changes on day one and the effect appears a few sessions later.
Built on Engram
Engram is a memory server for LLM agents and applications, with a REST API and Python SDK. It extracts, transforms and stores memories using vector embeddings and LLM-powered processing, and accepts raw text, pre-extracted facts or full conversations.
- Search can use vector similarity, BM25 keyword search or hybrid retrieval.
- Memories can be scoped by project, user and custom properties such as conversation_id, with topics for categorising within a group.
- Storage runs asynchronously through an extract, transform (deduplicate and merge with existing memories) and commit pipeline. The API returns a run_id that can be polled for status.
