Skip to content

OpenClaw Plugin

Persistent memory for OpenClaw. Automatically recalls relevant context before every AI turn and captures conversation turns as memories.

Terminal window
openclaw plugins install @momomemory/openclaw-momo

Restart OpenClaw after installation.

Terminal window
export MOMO_OPENCLAW_BASE_URL="http://localhost:3000"
export MOMO_OPENCLAW_API_KEY="your-api-key"

Important: OpenClaw does not fall back to generic MOMO_* environment variables. You must use the MOMO_OPENCLAW_* prefix.

Add to openclaw.json:

{
"plugins": {
"entries": {
"openclaw-momo": {
"enabled": true,
"config": {
"baseUrl": "http://localhost:3000",
"apiKey": "your-api-key"
}
}
}
}
}

You can also use ${ENV_VAR} placeholders:

{
"config": {
"baseUrl": "${MOMO_OPENCLAW_BASE_URL}",
"apiKey": "${MOMO_OPENCLAW_API_KEY}"
}
}
OptionTypeDefaultDescription
containerTagstringoclw_{hostname}Memory namespace. All channels share this tag.
autoRecallbooleantrueInject relevant memories before every AI turn
autoCapturebooleantrueAutomatically ingest conversation turns
maxRecallResultsnumber10Max memories injected into context per turn (1-20)
profileFrequencynumber50Inject full profile every N user turns
captureModestring"all""all" filters short text; "everything" captures all
debugbooleanfalseVerbose debug logging

Before each AI turn, the plugin:

  1. Fetches your computed profile (static facts + recent signals)
  2. Searches for memories relevant to the current prompt
  3. Injects context with similarity scores

Full profile is injected every profileFrequency turns; search results are injected every turn.

After each successful AI turn, the plugin:

  1. Collects the user/assistant message pair
  2. Strips previously injected context blocks
  3. Ingests the conversation as an episode memory
ToolDescription
momo_storeSave information to long-term memory
momo_searchSearch memories by query
momo_forgetDelete a memory by ID or query
momo_profileView the user profile
CommandDescription
/remember <text>Manually save something to memory
/recall <query>Search memories and return ranked matches
Terminal window
# Search memories
openclaw momo search "database schema"
# View profile
openclaw momo profile
# Delete all memories in container (destructive)
openclaw momo wipe

All memory operations are scoped by a container tag (default: oclw_{hostname}). This namespace isolates your OpenClaw memories from other agents or projects.

To customize:

Terminal window
export MOMO_OPENCLAW_CONTAINER_TAG="my-team-shared"

Or in openclaw.json:

{
"config": {
"containerTag": "my-project"
}
}

Plugin not loading:

  1. Verify openclaw.json has the plugin enabled
  2. Check OpenClaw logs for configuration errors
  3. Ensure you’re using MOMO_OPENCLAW_* env vars (not generic MOMO_*)

Memories not recalling:

  1. Check that autoRecall is not disabled in config
  2. Verify the Momo server is accessible
  3. Enable debug: true to see API calls in logs

No profile data:

  1. Add some memories first using /remember or momo_store
  2. Wait for profile computation (happens automatically)
  3. Run openclaw momo profile to verify