Skip to content

OpenClaw

OpenClaw is a personal AI assistant that runs locally and supports 11+ messaging platforms (WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Teams, Matrix, Zalo, etc.). AutoMem integrates with OpenClaw through three setup modes, in recommended order:

  1. plugin — native OpenClaw plugin with typed AutoMem tools and auto-recall
  2. mcp — mcporter-based setup with the same typed tools
  3. skill — legacy curl fallback

AspectPlugin (recommended)MCPSkill (legacy)
ProtocolNative plugin HTTP clientMCP over stdio (mcporter)Direct HTTP via curl
Tool interfaceTyped tools (automem_store_memory, etc.)Same typed tools via mcporterRaw curl commands
Auto-recallBuilt-in hook, DM-only by defaultVia skill rulesVia skill rules
DependenciesOpenClaw plugin systemNode.js + mcporterbash + curl
Config locationplugins.entries.automemskills.entries.automem + mcporter.jsonskills.entries.automem

graph LR
    subgraph "Messaging Platforms"
        WA["WhatsApp"]
        TG["Telegram"]
        SL["Slack"]
        DC["Discord"]
        OT["Signal, iMessage, Teams, etc."]
    end

    subgraph "OpenClaw"
        OC["OpenClaw Gateway"]
        PL["AutoMem Plugin"]
    end

    AM["AutoMem API<br/>FalkorDB + Qdrant"]

    WA --> OC
    TG --> OC
    SL --> OC
    DC --> OC
    OT --> OC

    OC --> PL
    PL -->|"HTTP client"| AM
OpenClaw skill → mcporter → mcp-automem stdio server → AutoMem HTTP API
OpenClaw skill → curl → AutoMem HTTP API

Terminal window
npx @verygoodplugins/mcp-automem openclaw --mode plugin
Terminal window
npx @verygoodplugins/mcp-automem openclaw --mode mcp --workspace ~/clawd
Terminal window
npx @verygoodplugins/mcp-automem openclaw --mode skill --workspace ~/clawd
Terminal window
npx @verygoodplugins/mcp-automem openclaw --dry-run # Preview without writing
OptionDescriptionDefault
--mode <plugin|mcp|skill>Integration modeplugin
--scope <workspace|shared>Install scope for mcp/skill modesworkspace
--workspace <path>OpenClaw workspace directoryAuto-detected
--endpoint <url>AutoMem service endpointhttp://127.0.0.1:8001
--api-key <key>AutoMem API keyNone (optional)
--plugin-source <spec>npm spec or local path for plugin installs@verygoodplugins/mcp-automem
--name <name>Project name for memory tagsAuto-detected
--dry-runPreview changes without modifying filesOff
--quietSuppress non-error outputOff

Plugin mode:

  1. Installs the package as an OpenClaw plugin
  2. Configures plugins.entries.automem in openclaw.json
  3. Archives old skill overrides that would shadow the plugin-shipped skill
  4. Cleans up legacy AGENTS.md blocks from previous installs

MCP mode:

  1. Installs the automem skill to <workspace>/skills/automem/SKILL.md
  2. Creates <workspace>/config/mcporter.json with the automem server entry
  3. Stores endpoint/API key in skills.entries.automem (secrets stay out of mcporter.json)

Skill mode (legacy):

  1. Installs the curl-based automem skill to <workspace>/skills/automem/SKILL.md
  2. Configures skills.entries.automem.env with endpoint and API key

The installer searches for the workspace in this order:

  1. --workspace flag (explicit)
  2. OPENCLAW_WORKSPACE or CLAWDBOT_WORKSPACE environment variable
  3. ~/.openclaw/openclaw.json config file (reads agents.defaults.workspace)
  4. Default paths: ~/.openclaw/workspace, ~/clawd, ~/.clawdbot/workspace

In plugin mode, the installer writes to ~/.openclaw/openclaw.json under plugins.entries.automem:

{
"plugins": {
"entries": {
"automem": {
"enabled": true,
"config": {
"endpoint": "http://127.0.0.1:8001",
"apiKey": "your-token-here",
"autoRecall": true,
"autoRecallLimit": 3,
"exposure": "dm-only",
"defaultTags": ["platform/openclaw", "project/my-project"]
}
}
}
}
}
FieldTypeDefaultDescription
endpointstringBase URL for the AutoMem service (required)
apiKeystringBearer token for authenticated deployments (optional)
autoRecallbooleantrueRecall relevant memories before each agent turn
autoRecallLimitinteger3Max memories to auto-recall (1–10)
exposurestring"dm-only"Auto-recall scope: dm-only, all, or off
defaultTagsstring[][]Tags applied when the request doesn’t supply tags

In MCP and skill modes, the installer writes to skills.entries.automem instead:

{
"skills": {
"entries": {
"automem": {
"enabled": true,
"env": {
"AUTOMEM_ENDPOINT": "http://127.0.0.1:8001",
"AUTOMEM_API_KEY": "your-token-here"
}
}
}
}
}

In plugin and MCP modes, the skill maps natural language to typed AutoMem tools:

User saysTool called
”remember …” or “store this”automem_store_memory
”what do you know about …” or “recall …”automem_recall_memory
”update memory …”automem_update_memory
”delete memory …”automem_delete_memory (recalls first if ambiguous)
“link these memories …”automem_associate_memories
”is memory healthy?”automem_check_health

Slash commands also work: /automem remember ..., /automem recall ..., /automem update ..., /automem delete ....


In legacy skill mode, the bot constructs curl commands directly:

Store a memory:

Terminal window
curl -s -X POST "$AUTOMEM_ENDPOINT/memory" \
-H "Content-Type: application/json" \
${AUTOMEM_API_KEY:+-H "Authorization: Bearer $AUTOMEM_API_KEY"} \
-d '{
"content": "Brief title. Context and details. Impact/outcome.",
"tags": ["openclaw"],
"importance": 0.7
}'

Recall memories:

Terminal window
curl -s \
${AUTOMEM_API_KEY:+-H "Authorization: Bearer $AUTOMEM_API_KEY"} \
"$AUTOMEM_ENDPOINT/recall?query=your+search+query&limit=5"

Update a memory:

Terminal window
curl -s -X PATCH "$AUTOMEM_ENDPOINT/memory/MEMORY_ID" \
-H "Content-Type: application/json" \
${AUTOMEM_API_KEY:+-H "Authorization: Bearer $AUTOMEM_API_KEY"} \
-d '{"content":"Updated context."}'

Delete a memory:

Terminal window
curl -s -X DELETE "$AUTOMEM_ENDPOINT/memory/MEMORY_ID" \
${AUTOMEM_API_KEY:+-H "Authorization: Bearer $AUTOMEM_API_KEY"}

The skill (or plugin auto-recall hook) recalls at session start for:

  • Questions about past decisions, preferences, or history
  • Debugging or troubleshooting (search for similar past issues)
  • Project planning or architecture discussions

Skip recall for:

  • Simple greetings or small talk
  • Questions answerable from general knowledge
  • Direct file operations or commands
CategoryImportanceExamples
Decisions0.9”Chose Railway over Fly.io for deployment. Reason: persistent volumes.”
User corrections0.8”Human prefers dark mode themes. Corrected my light mode suggestion.”
Bug fixes0.8”WhatsApp webhook failing. Root cause: expired token. Solution: auto-refresh.”
Preferences0.7”Human likes terse responses, no fluff.”
Patterns0.7”Use early returns for validation in all API routes.”
Context0.5”Set up new Telegram channel for family group.”

Tags use namespace-style formatting:

  • platform/openclaw — automatically added
  • project/<name> — derived from project name (auto-detected or --name flag)

OpenClaw uses four complementary memory layers:

LayerStoragePurposeScope
Daily files (memory/YYYY-MM-DD.md)Local filesystemRaw session logsSingle workspace
MEMORY.md / workspace notesLocal filesystemCurated local notesSingle workspace
memory-coreOpenClaw file memory toolsFast file-backed retrievalSingle workspace
AutoMemFalkorDB + QdrantSemantic graph memoryCross-session, cross-platform

memory-core is complementary — AutoMem does not replace it. Use memory-core for local file-backed notes and AutoMem for the semantic cross-session layer.


  • If AutoMem is unavailable: Continue normally — memory enhances but never blocks
  • Do not announce failures to the human
  • Fall back to file-based memory (memory/ directory and MEMORY.md)
  • Only check /health endpoint to diagnose persistent failures

  1. Run openclaw plugins list — verify automem appears
  2. Restart the OpenClaw gateway after installation
  3. Check ~/.openclaw/openclaw.json for plugins.entries.automem
  1. Run mcporter list — verify automem server appears
  2. Check <workspace>/config/mcporter.json contains the automem server
  3. Confirm skills.entries.automem.env.AUTOMEM_ENDPOINT is set in ~/.openclaw/openclaw.json
  1. Verify endpoint: curl "$AUTOMEM_ENDPOINT/health"
  2. Check API key if using an authenticated instance
  3. Check firewall/VPN for Railway endpoints
  4. Consider switching to plugin or mcp mode for a better experience

This refers to OpenClaw’s built-in memory-lancedb plugin, not AutoMem. The AutoMem skill explicitly instructs the bot to ignore this message — AutoMem handles embeddings server-side with no client API keys required.

ModeCommand
Pluginopenclaw plugins list
MCPmcporter list
Skillopenclaw skills info automem

FeaturePluginMCPSkill (legacy)MCP Platforms
ProtocolNative plugin HTTPMCP over stdioREST via curlMCP over stdio
SetupSingle CLI commandCLI + mcporterCLI onlyCLI + config
Runtime depsOpenClaw plugin systemNode.js + mcporterbash + curlNode.js
Auto-recallBuilt-in hookSkill rulesSkill rulesPlatform-dependent
Error recoveryPlugin error handlingMCP error protocolcurl exit codesMCP error protocol
AuthPlugin configEnvironment variablesHTTP Bearer tokenEnvironment variables