openclaw-memorysync
v1.0.1
Published
MemorySync memory backend for OpenClaw — automatic recall and capture on every interaction, six memory tools, skills, and a status doctor. Session-safe by contract.
Maintainers
Readme
openclaw-memorysync
MemorySync memory backend for OpenClaw — automatic recall and capture on every interaction, backed by MemorySync. Takes OpenClaw's exclusive memory slot, so your assistant remembers you across every channel it lives on: WhatsApp, Telegram, Discord, Signal, and the rest.
Install
openclaw plugins install npm:openclaw-memorysyncThen wire it up in ~/.openclaw/openclaw.json (get a key at
app.memorysync.io):
{
plugins: {
slots: { memory: "openclaw-memorysync" },
entries: {
"openclaw-memorysync": {
enabled: true,
hooks: {
allowPromptInjection: true, // recall injection
allowConversationAccess: true // capture
},
config: { apiKey: "${MEMORYSYNC_API_KEY}" }
}
}
}
}openclaw gateway restartAsk /memorysync-status in any chat — it diagnoses the key, the slot,
both permission gates, the allowlist, and live connectivity, and prints
the exact config to paste for anything missing.
What runs when
| Moment | What happens | | --- | --- | | Before each reply | Memories relevant to your message are recalled and injected — inside a hard time budget, so a slow network can never delay a chat. | | After each reply | The exchange persists verbatim with content-hash idempotency seeds (retries converge on one stored row; the plugin's own injected context is stripped first). | | Session start | Tenant cache warm-up, fire-and-forget. | | Session end | Cache trim only — never network (OpenClaw's 2-second drain budget is respected by design). | | Any failure — no key, network down, monthly quota exhausted | Silent skip. A raw error never reaches your chat; the worst case is a memoryless reply. |
Tools
memory_search, memory_add, memory_get, memory_list,
memory_update, memory_delete (single-id only — there is deliberately
no delete-all), and memory_status (the doctor). Failures answer with
friendly text, never stack traces. Credential-looking text is refused
client-side before it can be stored.
Skills / commands
/remember <fact>— save a durable fact (dispatches straight tomemory_add)/recall <query>— search memory (straight tomemory_search)/memorysync-status— the setup doctor- A model-facing skill teaches the agent when to search, what to save, and to treat recalled text as background data — never instructions.
Configuration
| Key / env | Default | Meaning |
| --- | --- | --- |
| config.apiKey / MEMORYSYNC_API_KEY | — | Required for memory. Without it everything is a silent no-op. |
| config.userId / MEMORYSYNC_USER_ID | OS username | Memory identity. |
| config.baseUrl / MEMORYSYNC_BASE_URL | https://api.memorysync.io | Self-hosted / regional override. |
| config.autoRecall | true | Inject memories before each turn. |
| config.autoCapture | true | Persist each exchange. |
| config.topK | 8 | Memories per recall. |
| config.recallTimeoutMs | 6000 | Recall gives up after this and the turn proceeds memoryless. |
| MEMORYSYNC_DISABLE=1 | — | Switch everything off without uninstalling. |
Multi-agent setups get isolated transcripts automatically
(openclaw::<agentId> scopes) while sharing the same user memories.
MCP alternative
Prefer plain MCP tools without the memory slot? MemorySync's hosted MCP server works in OpenClaw directly:
openclaw mcp add memorysync --url https://mcp.memorysync.io/mcp --transport streamable-httpDocs
Full guide: docs.memorysync.io/guides/openclaw
