OpenClaw Quickstart

Get a structured, long-term memory system running in your OpenClaw gateway in three steps.

Prerequisites

  • OpenClaw v2026.3.2 or later
  • A Memori API key from app.memorilabs.ai
  • An Entity ID to scope memory to a specific user, agent, or system
  • A Project ID to scope memory to a specific project or workspace

1. Install and Enable

# Install the plugin from npm
openclaw plugins install @memorilabs/openclaw-memori

# Enable it in your workspace
openclaw plugins enable openclaw-memori

2. Configure

You need three values: your Memori API key, an Entity ID, and a Project ID.

Option A: Via CLI (Recommended)

openclaw memori init \
  --api-key "YOUR_MEMORI_API_KEY" \
  --entity-id "your-app-user-id" \
  --project-id "my-project"

Option B: Via openclaw.json

Add the following to ~/.openclaw/openclaw.json:

{
  "plugins": {
    "entries": {
      "openclaw-memori": {
        "enabled": true,
        "config": {
          "apiKey": "your-memori-api-key",
          "entityId": "your-app-user-id",
          "projectId": "my-project"
        }
      }
    }
  }
}

Configuration Options

  • Name
    apiKey
    Type
    string
    Required
    Required
    Description

    Your Memori API key, available from app.memorilabs.ai.

  • Name
    entityId
    Type
    string
    Required
    Required
    Description

    A unique identifier for the entity (user, agent, or tenant) to attribute memories to.

  • Name
    projectId
    Type
    string
    Required
    Required
    Description

    A project or workspace ID used to scope all extracted facts and summaries.

3. Verify

After configuring, restart the gateway and verify your API connectivity:

openclaw gateway restart
openclaw memori status --check

You should see:

Memori Plugin Status
────────────────────────────────────
  API Key:    ****...A3xQ
  Entity ID:  your-app-user-id
  Project ID: my-project

Checking API connectivity... OK
Status: Ready

Test the Full Memory Loop

  1. Send a message with a durable preference:

    "I always use TypeScript and prefer functional patterns."

  2. Check the gateway logs to confirm advanced augmentation ran in the background:

    [Memori] Augmentation successful!
    
  3. Start a new session (so the agent is a blank slate) and ask:

    "Write a hello world script in my preferred language."

  4. Confirm the agent used memori_recall to fetch your preferences:

    [Memori] memori_recall params: {"projectId":"my-project","query":"preferred programming language"}
    
  5. Tell the agent to send feedback:

    "Send feedback to the developers that the recall was perfect." (This will trigger the memori_feedback tool).

What Happens Under the Hood

The Memori plugin operates on two parallel tracks:

TrackMechanismWhat it does
Agent-Controlled Intelligent RecallPlugin ToolsEquips the agent with memori_recall, memori_recall_summary, and memori_feedback. The agent retrieves memory explicitly when needed.
Advanced Augmentationagent_end HookAfter the agent responds, the exchange and execution trace are sanitized and sent to Memori in the background to structure memory from conversation, tool activity, decisions, and outcomes.

Together, these systems continuously structure memory from not just natural language, but also from agent trace and execution. Memori captures the agent's actions, tool results, decisions, and outcomes into durable memory the agent can recall on demand — so the next time it performs a task, it is more accurate and efficient.

Memori does not automatically inject memory into the prompt. Instead, agents retrieve only the context they need, improving accuracy and efficiency while avoiding unnecessary token usage.