← Back to Skills Marketplace
moshik21

Engram Memory

by Moshik21 · GitHub ↗ · v0.3.1 · MIT-0
cross-platform ✓ Security Clean
166
Downloads
1
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install engram-brain
Description
Persistent long-term memory powered by knowledge graphs, ACT-R activation, and 15-phase consolidation. Remember conversations across sessions, recall relevan...
README (SKILL.md)

Engram Memory

You have access to Engram, a persistent memory system that builds a temporal knowledge graph from conversations. It uses ACT-R cognitive architecture for activation-aware retrieval and runs offline consolidation inspired by biological memory.

Works with both lite (SQLite) and full (HelixDB Docker) Engram installs. Zero LLM cost by default — all consolidation scoring, replay, and retrieval are deterministic. Optional Anthropic API key enables richer entity extraction.

Setup

The Engram server must be running locally. No API keys are required for basic operation.

Package install (recommended)

uv tool install engram
engramctl setup
engramctl start
engramctl install-openclaw

Docker install

docker pull ghcr.io/moshik21/engram:latest
docker run -d -p 8100:8100 --name engram ghcr.io/moshik21/engram:latest

Then add the OpenClaw skill:

engramctl install-openclaw

Source install

Clone the repo, review the code, then build locally:

git clone https://github.com/Moshik21/engram.git ~/engram
cd ~/engram/server
uv sync
uv run engram setup
uv run engram serve

Installer script (alternative)

An interactive installer is available. Review it before running:

# Review first:
curl -sSL https://raw.githubusercontent.com/Moshik21/engram/main/scripts/install.sh -o install.sh
less install.sh
# Then run:
bash install.sh

MCP Server

For Claude Desktop / Claude Code integration:

uv run engram mcp                                          # stdio (default)
uv run engram mcp --transport streamable-http --port 8200  # HTTP

Environment variables

All optional:

  • ANTHROPIC_API_KEY — enables richer entity extraction via Claude Haiku. Without it, Engram uses a deterministic narrow extractor (zero cost).
  • ENGRAM_GROUP_ID — namespace for multi-brain setups. Defaults to "default". Most users never need to set this.

The REST API is available at http://127.0.0.1:8100. Check status with engramctl status.

If you know the current project path, bootstrap it once at session start so artifact-backed routing has parity with memory:

POST http://localhost:8100/api/knowledge/bootstrap
Content-Type: application/json

{"project_path": "\x3Cabsolute project path>", "session_id": "\x3Coptional session id>"}

When to Observe vs Remember

Default to observe for most content. Use remember only for high-signal items.

Use observe when:

  • General conversation context or topics discussed
  • Information that might be useful later but is not critical
  • Bulk context from a long conversation
  • You are uncertain whether something is worth a full remember

Use remember when:

  • The user explicitly asks you to remember something
  • Personal identity facts (name, location, job title)
  • Explicit preferences or corrections to prior knowledge
  • Key decisions that will affect future interactions
  • Goals, plans, or deadlines with concrete details

How to Store Memories

To observe (fast, cheap, no extraction):

POST http://localhost:8100/api/knowledge/observe
Content-Type: application/json

{"content": "\x3Ctext to store>", "source": "openclaw"}

To remember (full extraction with entities and relationships):

POST http://localhost:8100/api/knowledge/remember
Content-Type: application/json

{"content": "\x3Cimportant text>", "source": "openclaw"}

To forget (soft delete outdated information):

POST http://localhost:8100/api/knowledge/forget
Content-Type: application/json

{"entity_name": "\x3Centity to forget>"}

How to Recall Memories

At the start of every conversation, get broad context:

GET http://localhost:8100/api/knowledge/context

When the user references something from the past or you need relevant context:

GET http://localhost:8100/api/knowledge/recall?q=\x3Cquery>&limit=5

For project-truth questions, route first:

POST http://localhost:8100/api/knowledge/route
Content-Type: application/json

{"question": "\x3Cuser question>", "project_path": "\x3Coptional project path>"}

Use the returned answerContract as response policy, not just source routing. If the route says inspect or reconcile, treat evidencePlan.requiredNextSources as mandatory. Carry the same project_path into artifact/runtime calls before answering:

GET http://localhost:8100/api/knowledge/artifacts/search?q=\x3Cquery>&project_path=\x3Coptional path>&limit=5
GET http://localhost:8100/api/knowledge/runtime?project_path=\x3Coptional path>

To search for specific entities:

GET http://localhost:8100/api/entities/search?q=\x3Cname>

To search for specific facts and relationships:

GET http://localhost:8100/api/knowledge/facts?q=\x3Cquery>

search_facts is user-facing by default. Internal decision/artifact graph edges stay hidden unless you explicitly opt into debug mode with include_epistemic=true.

Guidelines

  • Call the context endpoint once at the start of each new conversation
  • For personal continuity turns like "my son did great today" or "talked to Sarah about it", recall first.
  • For install/config/current-truth questions like "how do we install the OpenClaw skill?" or "is full mode rework by default?", call route, then satisfy requiredNextSources before answering.
  • For decision/history questions like "what did we decide about launching Engram publicly?", treat it as reconciliation: use memory plus artifacts/runtime before answering, and do not use search_facts as a substitute for artifact inspection.
  • If answerContract.operator is compare, contrast raw defaults, shipped install defaults, repo posture, and runtime state when relevant.
  • If answerContract.operator is reconcile or unresolved_state_report, preserve earlier discussion versus current documented or implemented truth.
  • If answerContract.operator is recommend or plan, state the evidence first and then give advice or next steps.
  • When recalling, integrate information naturally. Do not say "my memory system found..."
  • If recall returns no results, do not mention it. Just respond normally.
  • If uncertain whether something is worth remembering, observe it
  • Always prioritize the user's most recent statements over older memories if there is a conflict
  • When the user corrects previously stored information, forget the old info then remember the corrected version

Memory Features

  • Activation-aware retrieval: Memories accessed more frequently and recently rank higher
  • Knowledge graph: Entities and relationships are extracted and connected
  • 15-phase consolidation: Offline cycles merge duplicates, infer missing links, adjudicate evidence, prune noise, mature entities, form schemas, and discover cross-domain patterns
  • Memory maturation: Entities graduate from episodic (recent) to semantic (durable) over time
  • Prospective memory: Set intentions that fire when related topics come up
  • Dream associations: Cross-domain creative connections discovered during consolidation

Prospective Memory (Intentions)

To set a reminder that fires when a related topic comes up:

POST http://localhost:8100/api/knowledge/intentions
Content-Type: application/json

{"query": "\x3Ctopic to watch for>", "action": "\x3Cwhat to do when triggered>", "entity_names": ["\x3Crelated entity>"]}

To list active intentions:

GET http://localhost:8100/api/knowledge/intentions

When an intention fires during recall, act on it naturally without announcing it was triggered.

Consolidation

Engram runs 15 offline consolidation phases that improve memory quality over time: triage, merge, infer, evidence_adjudicate, edge_adjudicate, replay, prune, compact, mature, semanticize, schema, reindex, graph_embed, microglia, dream.

To trigger a consolidation cycle manually:

POST http://localhost:8100/api/consolidation/trigger
Content-Type: application/json

{"profile": "standard"}

To check consolidation status:

GET http://localhost:8100/api/consolidation/status
Usage Guidance
This skill expects you to run a local Engram server (Docker or uv-installed) that the agent will call on http://127.0.0.1:8100. Before installing or running anything: review the project's repository and any install scripts (the SKILL.md suggests 'less install.sh' before running), verify the Docker image source (ghcr.io/moshik21/engram), and only provide ANTHROPIC_API_KEY if you trust external API calls. Be aware that giving a project_path or enabling artifact/runtime routing allows the memory service to read project files — only provide paths you are comfortable sharing with the local service. If you need higher assurance, run the service in an isolated environment or inspect the source code fully before installation.
Capability Analysis
Type: OpenClaw Skill Name: engram-brain Version: 0.3.1 The engram-brain skill provides a persistent memory system for agents via a local REST API (localhost:8100). The SKILL.md instructions guide the agent in using endpoints for memory retrieval, entity extraction, and consolidation, which are well-aligned with its stated purpose of providing a cognitive architecture. While the documentation includes a high-risk curl-to-bash installer script (install.sh) and the API accepts absolute project paths for bootstrapping, these are standard patterns for local developer tools and do not show evidence of malicious intent, data exfiltration, or harmful prompt injection.
Capability Assessment
Purpose & Capability
Name and description describe a local memory/knowledge-graph system. Requiring either 'uv' (its package/tool runner) or Docker to run the server is proportionate to the stated purpose. Optional ANTHROPIC_API_KEY for richer entity extraction matches the description.
Instruction Scope
SKILL.md instructs the agent to call local HTTP endpoints (127.0.0.1:8100) for observe/remember/recall/route and to optionally bootstrap with an absolute project_path. Those calls are within the skill's scope, but supplying a project_path or allowing the skill to call artifact/runtime endpoints lets the service access project files — users should understand this may expose local project data to the memory service.
Install Mechanism
The registry entry is instruction-only (no automated install). SKILL.md directs standard installs: 'uv tool install engram', Docker image from ghcr.io, or cloning the GitHub repo. It also shows a curl of an install.sh from raw.githubusercontent.com; that is a well-known host but running downloaded scripts is higher-risk — the doc does advise reviewing the script before running.
Credentials
No required environment variables. Optional 'ANTHROPIC_API_KEY' and 'ENGRAM_GROUP_ID' are reasonable and justified by the stated functionality. No unrelated credentials or broad secret requests are present.
Persistence & Privilege
The skill is not set to always:true and does not request persistent platform-wide privileges or modify other skills. It is user-invocable and can be invoked autonomously (platform default), which aligns with its purpose.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install engram-brain
  3. After installation, invoke the skill by name or use /engram-brain
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.3.1
Fix ClawHub review findings: add Apache-2.0 license, clarify env vars (ENGRAM_GROUP_ID is optional, not a credential), replace curl|bash with package install as primary method
v0.3.0
15-phase consolidation, HelixDB backend, LLM-free replay with graph-vocabulary linking, zero LLM cost by default
Metadata
Slug engram-brain
Version 0.3.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Engram Memory?

Persistent long-term memory powered by knowledge graphs, ACT-R activation, and 15-phase consolidation. Remember conversations across sessions, recall relevan... It is an AI Agent Skill for Claude Code / OpenClaw, with 166 downloads so far.

How do I install Engram Memory?

Run "/install engram-brain" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Engram Memory free?

Yes, Engram Memory is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Engram Memory support?

Engram Memory is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Engram Memory?

It is built and maintained by Moshik21 (@moshik21); the current version is v0.3.1.

💬 Comments