OpenClaw + MemVerse Memory Plugin

March 17, 2026 · View on GitHub

Use MemVerse as the long-term memory backend for OpenClaw.

Quick Start

# 1. Clone this repository
git clone https://github.com/KnowledgeXLab/MemVerse.git
cd MemVerse

# 2. Checkout the main branch
git checkout -b main
git pull origin main

# 3. Install and configure
mkdir -p ~/.openclaw/extensions/memverse
cp -r skill/* ~/.openclaw/extensions/memverse/
cd ~/.openclaw/extensions/memverse && npm install

# 4. Configure OpenClaw
openclaw config set plugins.enabled true
openclaw config set plugins.slots.memory memverse
openclaw config set plugins.entries.memverse.config.mode "local"
openclaw config set plugins.entries.memverse.config.containerName "memverse"
openclaw config set plugins.entries.memverse.config.autoRecall true --json
openclaw config set plugins.entries.memverse.config.autoCapture true --json

# 5. Start MemVerse container (if not running)
docker run -d --name memverse -p 8000:8000 memverse:latest

# 6. Run OpenClaw
openclaw gateway

How It Works

MemVerse provides three memory layers:

LayerDescription
Core MemoryUser profile, preferences, key facts
Semantic MemoryKnowledge, concepts, meanings
Episodic MemoryEvents, experiences, conversations

The plugin reads from local MD files exported from MemVerse Docker container.

Manual Setup

Prerequisites

  • Docker with MemVerse container running on port 8000
  • OpenClaw installed (npm install -g openclaw)

Install Plugin

# Clone and checkout
git clone https://github.com/KnowledgeXLab/MemVerse.git
cd MemVerse
git checkout main

# Copy files
mkdir -p ~/.openclaw/extensions/memverse
cp -r skill/* ~/.openclaw/extensions/memverse/
cd ~/.openclaw/extensions/memverse
npm install

Configure

# Enable plugin
openclaw config set plugins.enabled true
openclaw config set plugins.slots.memory memverse

# Plugin settings
openclaw config set plugins.entries.memverse.config.mode "local"
openclaw config set plugins.entries.memverse.config.containerName "memverse"
openclaw config set plugins.entries.memverse.config.autoRecall true --json
openclaw config set plugins.entries.memverse.config.autoCapture true --json

Update Memory Files

To sync memories from Docker container to local MD files:

cd ~/.openclaw/extensions/memverse
python3 convert_json_to_md.py

This copies and converts:

  • core_memory.jsonmemory/core_memory.md
  • semantic_memory.jsonmemory/semantic_memory.md
  • episodic_memory.jsonmemory/episodic_memory.md

Start

# Ensure MemVerse is running
docker start memverse

# Start OpenClaw
openclaw gateway

Configuration Options

OptionTypeDefaultDescription
modestring"local"Local or remote
containerNamestring"memverse"Docker container name
baseUrlstring"http://localhost:8000"MemVerse API (remote mode)
apiKeystring""API key (optional)
autoRecallbooleanfalseAuto-recall on startup
autoCapturebooleanfalseAuto-capture conversations

Troubleshooting

SymptomFix
Memory shows disabledopenclaw config set plugins.slots.memory memverse
No memories foundRun python3 convert_json_to_md.py to sync
Container not runningdocker start memverse
Port 8000 in usedocker stop $(docker ps -q --filter name=memverse)
Empty memory filesCheck Docker container has data: docker exec memverse ls /app/MemoryKB/

File Structure

MemVerse/
├── skill/
│   ├── SKILL.md              # OpenClaw skill definition
│   ├── convert_json_to_md.py # JSON to MD converter
│   └── README.md
├── memory/
│   ├── core_memory.md        # Core memory (exported)
│   ├── semantic_memory.md    # Semantic memory (exported)
│   └── episodic_memory.md    # Episodic memory (exported)
└── README.md                 # This file

Docker Setup (if needed)

# Build MemVerse image
cd MemVerse
docker build -t memverse:latest .

# Run container
docker run -d --name memverse -p 8000:8000 memverse:latest

# Test
curl -s -X POST "http://localhost:8000/insert" -F "query=Hello MemVerse"