OpenClaw Quickstart
Get a structured, long-term memory system running in your OpenClaw gateway in three steps.
Prerequisites
- OpenClaw
v2026.3.2or 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
-
Send a message with a durable preference:
"I always use TypeScript and prefer functional patterns."
-
Check the gateway logs to confirm advanced augmentation ran in the background:
[Memori] Augmentation successful! -
Start a new session (so the agent is a blank slate) and ask:
"Write a hello world script in my preferred language."
-
Confirm the agent used
memori_recallto fetch your preferences:[Memori] memori_recall params: {"projectId":"my-project","query":"preferred programming language"} -
Tell the agent to send feedback:
"Send feedback to the developers that the recall was perfect." (This will trigger the
memori_feedbacktool).
What Happens Under the Hood
The Memori plugin operates on two parallel tracks:
| Track | Mechanism | What it does |
|---|---|---|
| Agent-Controlled Intelligent Recall | Plugin Tools | Equips the agent with memori_recall, memori_recall_summary, and memori_feedback. The agent retrieves memory explicitly when needed. |
| Advanced Augmentation | agent_end Hook | After 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.