OpenClaw Plugin — Persistent Memory for OpenClaw Agents
Claude-mem now has an official OpenClaw plugin, bringing persistent memory to agents running on the OpenClaw gateway. This is a major milestone — claude-mem's memory system is no longer limited to Claude Code sessions.
What It Does
The plugin bridges claude-mem's observation pipeline with OpenClaw's embedded runner (pi-embedded), which calls the Anthropic API directly without spawning a claude process. Three core capabilities:
- Observation Recording — Captures every tool call from OpenClaw agents and sends it to the claude-mem worker for AI-powered compression and storage
- MEMORY.md Live Sync — Writes a continuously-updated memory timeline to each agent's workspace, so agents start every session with full context from previous work
- Observation Feed — Streams new observations to messaging channels (Telegram, Discord, Slack, Signal, WhatsApp, LINE) in real-time via SSE
Quick Start
Add claude-mem to your OpenClaw gateway config:
{
"plugins": {
"claude-mem": {
"enabled": true,
"config": {
"project": "my-project",
"syncMemoryFile": true,
"observationFeed": {
"enabled": true,
"channel": "telegram",
"to": "your-chat-id"
}
}
}
}
}The claude-mem worker service must be running on the same machine (localhost:37777).
Commands
/claude-mem-status— Worker health check, active sessions, feed connection state/claude-mem-feed— Show/toggle observation feed status/claude-mem-feed on|off— Enable/disable feed
How the Event Lifecycle Works
OpenClaw Gateway
├── session_start ──────────→ Init claude-mem session
├── before_agent_start ─────→ Sync MEMORY.md + track workspace
├── tool_result_persist ────→ Record observation + re-sync MEMORY.md
├── agent_end ──────────────→ Summarize + complete session
├── session_end ────────────→ Clean up session tracking
└── gateway_start ──────────→ Reset all tracking
All observation recording and MEMORY.md syncs are fire-and-forget — they never block the agent.
📖 Full documentation: OpenClaw Integration Guide
Windows Platform Improvements
- ProcessManager: Migrated daemon spawning from deprecated WMIC to PowerShell
Start-Processwith-WindowStyle Hidden - ChromaSync: Re-enabled vector search on Windows (was previously disabled entirely)
- Worker Service: Added unified DB-ready gate middleware — all DB-dependent endpoints now wait for initialization instead of returning "Database not initialized" errors
- EnvManager: Switched from fragile allowlist to simple blocklist for subprocess env vars (only strips
ANTHROPIC_API_KEYper Issue #733)
Session Management Fixes
- Fixed unbounded session tracking map growth — maps are now cleaned up on
session_end - Session init moved to
session_startandafter_compactionhooks for correct lifecycle handling
SSE Fixes
- Fixed stream URL consistency across the codebase
- Fixed multi-line SSE data frame parsing (concatenates
data:lines per SSE spec)
Issue Triage
Closed 37+ duplicate/stale/invalid issues across multiple triage phases, significantly cleaning up the issue tracker.