OpenClaw Plugin
Persistent memory for OpenClaw. Automatically recalls relevant context before every AI turn and captures conversation turns as memories.
Installation
Section titled “Installation”openclaw plugins install @momomemory/openclaw-momoRestart OpenClaw after installation.
Configuration
Section titled “Configuration”Environment Variables (Recommended)
Section titled “Environment Variables (Recommended)”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.
Config File
Section titled “Config File”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}" }}Advanced Options
Section titled “Advanced Options”| Option | Type | Default | Description |
|---|---|---|---|
containerTag | string | oclw_{hostname} | Memory namespace. All channels share this tag. |
autoRecall | boolean | true | Inject relevant memories before every AI turn |
autoCapture | boolean | true | Automatically ingest conversation turns |
maxRecallResults | number | 10 | Max memories injected into context per turn (1-20) |
profileFrequency | number | 50 | Inject full profile every N user turns |
captureMode | string | "all" | "all" filters short text; "everything" captures all |
debug | boolean | false | Verbose debug logging |
Features
Section titled “Features”Auto-Recall
Section titled “Auto-Recall”Before each AI turn, the plugin:
- Fetches your computed profile (static facts + recent signals)
- Searches for memories relevant to the current prompt
- Injects context with similarity scores
Full profile is injected every profileFrequency turns; search results are injected every turn.
Auto-Capture
Section titled “Auto-Capture”After each successful AI turn, the plugin:
- Collects the user/assistant message pair
- Strips previously injected context blocks
- Ingests the conversation as an episode memory
AI Tools
Section titled “AI Tools”| Tool | Description |
|---|---|
momo_store | Save information to long-term memory |
momo_search | Search memories by query |
momo_forget | Delete a memory by ID or query |
momo_profile | View the user profile |
Slash Commands
Section titled “Slash Commands”| Command | Description |
|---|---|
/remember <text> | Manually save something to memory |
/recall <query> | Search memories and return ranked matches |
CLI Commands
Section titled “CLI Commands”# Search memoriesopenclaw momo search "database schema"
# View profileopenclaw momo profile
# Delete all memories in container (destructive)openclaw momo wipeContainer Tags
Section titled “Container Tags”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:
export MOMO_OPENCLAW_CONTAINER_TAG="my-team-shared"Or in openclaw.json:
{ "config": { "containerTag": "my-project" }}Troubleshooting
Section titled “Troubleshooting”Plugin not loading:
- Verify
openclaw.jsonhas the plugin enabled - Check OpenClaw logs for configuration errors
- Ensure you’re using
MOMO_OPENCLAW_*env vars (not genericMOMO_*)
Memories not recalling:
- Check that
autoRecallis not disabled in config - Verify the Momo server is accessible
- Enable
debug: trueto see API calls in logs
No profile data:
- Add some memories first using
/rememberormomo_store - Wait for profile computation (happens automatically)
- Run
openclaw momo profileto verify