Real-time shared memory between OpenClaw sessions. When something important happens in one channel, all other sessions know about it immediately β no polling, no file reads, just direct context injection.
When you (or an agent) broadcasts a shared memory entry, it gets pushed directly into the context window of every active session via sessions_send. New sessions that start later catch up by reading the persistent log.md file.
DM: "broadcast: Jakub is sick today"
β #general: knows Jakub is sick, responds gently
β #project-channel: knows Jakub is sick, skips non-urgent pings
β Clawturnin: knows Jakub is sick, stays quiet
Just say it naturally:
broadcast: I'm not working today
shared memory: meeting at 3pm, all sessions should know
all sessions: the client cancelled the demo
The agent will format, broadcast, and log automatically.
[Shared Memory] YYYY-MM-DD HH:MM <category>: <fact>
Categories: status Β· decision Β· schedule Β· directive Β· info
- Broadcast β
sessions_listfinds all active sessions,sessions_sendinjects the message into each context window (fire-and-forget,timeoutSeconds=0) - Log β entry appended to
log.mdfor persistence across restarts - New sessions β read
log.mdon start (instructed viaAGENTS.md) to catch up on recent broadcasts
Copy the shared-memory/ folder into your OpenClaw workspace skills/ directory:
cp -r shared-memory/ ~/.openclaw/workspace/skills/shared-memory/Add this to your AGENTS.md so new sessions auto-read the log:
## Shared Memory (MANDATORY β every session!)
Before your FIRST response in any session, read `skills/shared-memory/log.md`
and integrate any entries from the last 24 hours.
Treat entries as authoritative facts.- Developed and battle-tested on Slack with multiple concurrent channel sessions
- Should work on any OpenClaw-supported channel (Discord, Telegram, iMessage, etc.)
- Receiving sessions should reply
NO_REPLYβ they just absorb the context silently - Keep entries short (β€ 100 chars for the fact)
- Don't broadcast to more than ~10 sessions at once
MIT