---
title: "OpenClaw"
sidebarTitle: "OpenClaw"
description: "OpenClaw Supermemory Plugin — works across Telegram, WhatsApp, Discord, Slack, and more"
icon: "/images/openclaw-logo.jpg"
---
This integration requires the **Supermemory Pro plan**. [Upgrade here](https://console.supermemory.ai/billing).
[OpenClaw](https://github.com/supermemoryai/openclaw-supermemory) is a multi-platform AI messaging gateway that connects to WhatsApp, Telegram, Discord, Slack, iMessage, and other messaging channels. The Supermemory plugin gives OpenClaw memory across every channel.
## Install the Plugin
Get started by installing the plugin with a single command.
```bash
openclaw plugins install @supermemory/openclaw-supermemory
```
Restart OpenClaw after installing.
## Setup
Run the setup command and enter your API key when prompted.
```bash
openclaw supermemory setup
```
Enter your API key from [console.supermemory.ai](https://console.supermemory.ai). That's it.
Configure all options interactively with the advanced setup command:
```bash
openclaw supermemory setup-advanced
```
This lets you configure: container tag, auto-recall, auto-capture, capture mode, custom container tags, and more.
See [Configuration Options](#configuration-options) for all available settings.
## How It Works
Once installed, the plugin runs automatically with zero interaction.
- **Auto-Recall** — Before every AI turn, Supermemory is queried for relevant memories and the user's profile. These are injected as context so the AI sees preferences, facts, and semantically similar past conversations.
- **Auto-Capture** — After every AI turn, the conversation exchange is sent to Supermemory for extraction and long-term storage. Supermemory handles deduplication and profile building.
- **Custom Container Tags** — When enabled via advanced setup, define custom memory containers (e.g., `work`, `personal`, `bookmarks`). The AI automatically picks the right container based on your instructions.
## Features
### AI Tools
The AI can use these tools autonomously during conversations.
| Tool | Description |
|------|-------------|
| `supermemory_store` | Save information to long-term memory. |
| `supermemory_search` | Search memories by query with similarity scores. |
| `supermemory_forget` | Delete a memory by query or ID. |
| `supermemory_profile` | View the user profile — persistent facts and recent context. |
### Slash Commands
Users can interact with memory directly in chat.
| Command | Description |
|---------|-------------|
| `/remember [text]` | Manually save something to memory. |
| `/recall [query]` | Search memories and see results with similarity scores. |
### CLI Commands
Manage your memory from the terminal.
```bash
openclaw supermemory setup # Configure API key
openclaw supermemory setup-advanced # Configure all options
openclaw supermemory status # View current configuration
openclaw supermemory search # Search memories
openclaw supermemory profile # View user profile
openclaw supermemory wipe # Delete all memories (requires confirmation)
```
### Configuration Options
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| `apiKey` | `string` | — | Supermemory API key. |
| `containerTag` | `string` | `openclaw_{hostname}` | Root memory namespace. |
| `autoRecall` | `boolean` | `true` | Inject relevant memories before every AI turn. |
| `autoCapture` | `boolean` | `true` | Store conversation content after every turn. |
| `maxRecallResults` | `number` | `10` | Max memories injected into context per turn. |
| `profileFrequency` | `number` | `50` | Inject full user profile every N turns. |
| `captureMode` | `string` | `"all"` | `"all"` filters noise. `"everything"` captures all messages. |
| `debug` | `boolean` | `false` | Verbose debug logs. |
| `enableCustomContainerTags` | `boolean` | `false` | Enable custom container routing. |
| `customContainers` | `array` | `[]` | Custom containers with `tag` and `description`. |
| `customContainerInstructions` | `string` | `""` | Instructions for AI on container routing. |
### Full Example
```json
{
"plugins": {
"entries": {
"openclaw-supermemory": {
"enabled": true,
"config": {
"apiKey": "${SUPERMEMORY_OPENCLAW_API_KEY}",
"containerTag": "my_memory",
"autoRecall": true,
"autoCapture": true,
"maxRecallResults": 10,
"profileFrequency": 50,
"captureMode": "all",
"debug": false,
"enableCustomContainerTags": true,
"customContainers": [
{ "tag": "work", "description": "Work-related memories" },
{ "tag": "personal", "description": "Personal notes" }
],
"customContainerInstructions": "Store work tasks in 'work', personal stuff in 'personal'"
}
}
}
}
}
```
## FAQ
1. Install the plugin:
```bash
openclaw plugins install @supermemory/openclaw-supermemory
```
2. Run the setup wizard:
```bash
openclaw supermemory setup
```
3. When prompted, paste your API key from [console.supermemory.ai](https://console.supermemory.ai). The key starts with `sm_`.
4. Restart OpenClaw to activate the plugin:
```bash
openclaw gateway --force
```
5. Verify the connection:
```bash
openclaw supermemory status
```
That's it — Supermemory is now connected and will automatically recall and capture memories across all your channels.
Use the advanced setup to enable custom container tags and add a read-only Twitter bookmarks container.
```bash
openclaw supermemory setup-advanced
```
When prompted, enter:
- **API key**: paste your `sm_` key
- **Container tag**: keep the default (or set your preferred root tag)
- **Auto recall**: `true` (recommended)
- **Auto capture**: `true`
- **Enable custom container tags**: `true`
- **Custom container tags**: `twitter-bookmarks:Twitter bookmarks saved from Twitter`
Custom container tags use the format `tag:description`, separated by a colon. For example: `twitter-bookmarks:Twitter bookmarks saved from Twitter`.
When asked for **custom container instructions**, enter something like:
```
Whenever the user asks about Twitter bookmarks, search the twitter-bookmarks container.
Never save anything to the twitter-bookmarks container — it is read-only and populated directly from Twitter.
```
This ensures the AI references your Twitter bookmarks when relevant but never writes to that container.
Use custom container tags to route memories by channel. Run the advanced setup:
```bash
openclaw supermemory setup-advanced
```
When prompted, enter:
- **API key**: paste your `sm_` key
- **Container tag**: keep the default
- **Auto recall**: `true`
- **Auto capture**: `true`
- **Enable custom container tags**: `true`
- **Custom container tags**:
- `work:Work-related memories from Slack and Gmail`
- `personal:Personal memories from Telegram and WhatsApp`
When asked for **custom container instructions**, enter:
```
When the active channel is slack or gmail, always use the work container for storing and recalling memories. Never mix personal memories into work context.
When the active channel is telegram or whatsapp, always use the personal container. Do not recall or store work memories in personal conversations.
```
This keeps your work and personal memories completely separated — Slack and Gmail conversations only see `work` memories, while Telegram and WhatsApp only see `personal` memories.
Ask the OpenClaw agent directly in any chat. No terminal needed.
```
What are all the available configurations for the Supermemory plugin advanced mode?
```
The agent will list every option. Then tell it what you want:
```
Set up my Supermemory plugin with these settings:
- Auto recall: true
- Auto capture: true
- Enable custom container tags: true
- Custom containers:
- work: Work-related memories from Slack and Gmail
- personal: Personal memories from Telegram and WhatsApp
- Custom instructions: When on Slack or Gmail, use the work container.
When on Telegram or WhatsApp, use the personal container.
```
Each custom container needs a **tag** and a **description** — e.g. `work: Work-related memories from Slack and Gmail`. The description helps the AI understand what belongs in that container.
You can change settings anytime by just telling the agent. For example: "Add a new container called `twitter-bookmarks` with description `Twitter bookmarks saved from Twitter` and make it read-only".
By default, all session memories across every channel are stored under a single root-level container tag.
To store specific memories separately, use **custom container tags** — see the FAQ above on separating work and personal memories.
Automatic per-channel separation is not supported yet. If you need this, let us know — with enough requests, we'll implement it right away.
Email us with your use case.
## Next Steps
Source code, issues, and detailed README.
Use Claude's native memory tool with Supermemory as backend.