Skip to main content
Weaviate Docs (migrated from docs.weaviate.io) Docs

Search documentation

Type to search this documentation.

On this pageOverview

Install & integrate

There are several ways to use Engram, from calling the API directly to dropping it into an agent framework as a memory provider.

  • Python SDK — the weaviate-engram client for Python applications.
  • REST API — call Engram over HTTP from any language.
  • Claude Code plugin — persistent, cross-session memory for Claude Code through the engram plugin.
  • Hermes Agent — long-term memory for the Hermes Agent through the hermes-weaviate-engram plugin.

Every method authenticates with an Engram API key.

Install the weaviate-engram client:

pip
pip install weaviate-engram
uv
uv add weaviate-engram

Connect with your API key, then store and search memories:

Python
import os
from engram import EngramClient

client = EngramClient(api_key=os.environ["ENGRAM_API_KEY"])

For an async client, use AsyncEngramClient instead. The Quickstart has a full walkthrough, and the guides cover storing, searching, and managing memories. The source is on GitHub.

Engram is a REST service at https://api.engram.weaviate.io. Authenticate every request with your API key as a bearer token:

Bash
curl -X POST "https://api.engram.weaviate.io/v1/memories" \
  -H "Authorization: Bearer $ENGRAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {"string": {"content": ["The user prefers dark mode."]}},
    "user_id": "alice"
  }'

See the REST API reference for the full list of endpoints, and the guides cover storing, searching, and managing memories.

The engram plugin gives Claude Code long-term memory backed by Engram. It recalls relevant memories before each answer and stores each completed turn — everything happens automatically via hooks, with no tools for the agent to call. Memory is best-effort and never blocks a session.

When creating your Engram project, you choose topics that control what memories get extracted. Select the Coding Assistant template for topics tailored to coding sessions — you can also define custom topics for a more tailored experience.

Once the project is created, set your API key in your shell profile (e.g. ~/.zshrc or ~/.bashrc), then install the plugin inside a Claude Code session:

Bash
export ENGRAM_API_KEY=...
Bash
/plugin marketplace add weaviate/engram-plugins
/plugin install engram@weaviate-engram

That's it — memory starts working on your next prompt. See the plugin README for more info and optional customization.

hermes-weaviate-engram is a memory provider plugin that gives the Hermes Agent long-term memory backed by Engram. It recalls relevant memories into the system prompt before each turn, and stores each completed turn through Engram's pipeline.

Install the plugin and run the setup wizard, which prompts for your API key:

Bash
pip install hermes-weaviate-engram
hermes memory setup        # choose weaviate_engram

The wizard saves ENGRAM_API_KEY to ~/.hermes/.env and sets memory.provider in your Hermes config.

The plugin exposes three tools to the agent:

Tool Description
engram_search Search memories by semantic similarity.
engram_store Store a memory. This is also how the agent "forgets" — it stores a correcting memory, and Engram's reconcile pipeline supersedes the old one.
engram_fetch Profile-shaped recall, such as "what do you know about me?"

Optional settings live in ~/.hermes/weaviate_engram.json (for example auto_recall, auto_capture, and max_recall_results). Set ENGRAM_BASE_URL to point at a staging or self-hosted endpoint. See the plugin README for the full configuration reference.

Have a question or feedback? Here's how to reach us.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu