OpenClaw Dreaming Setup
Configure and manage OpenClaw's Dreaming system — the background memory consolidation that promotes short-term notes into long-term MEMORY.md.
When to Use
- User wants to enable/configure Dreaming for automatic memory consolidation
- Checking dreaming status, phase health, or promotion history
- Troubleshooting blocked dreaming or heartbeat issues
- Managing dream diary (DREAMS.md)
- Manual memory promotion or backfill
What is Dreaming?
Dreaming automatically:
- Light phase — stages recent daily notes and session transcripts
- REM phase — extracts patterns and recurring themes
- Deep phase — promotes strong signals into
MEMORY.md
It runs as a background cron job tied to heartbeat.
Quick Setup
Enable Dreaming
Add to openclaw.json:
{
plugins: {
entries: {
"memory-core": {
config: {
dreaming: {
enabled: true,
// Optional: custom schedule (default: 03:00 daily)
frequency: "0 3 * * *",
timezone: "Asia/Jerusalem",
},
},
},
},
},
}
Then restart gateway: openclaw gateway restart
With Skill Workshop (recommended combo)
{
plugins: {
entries: {
"memory-core": {
config: {
dreaming: {
enabled: true,
},
},
},
"skill-workshop": {
enabled: true,
config: {
autoCapture: true,
approvalPolicy: "pending",
reviewMode: "hybrid",
},
},
},
},
}
With Active Memory
{
plugins: {
entries: {
"active-memory": {
enabled: true,
config: {
enabled: true,
agents: ["main"],
allowedChatTypes: ["direct"],
modelFallback: "zai/glm-5-turbo",
queryMode: "recent",
promptStyle: "balanced",
timeoutMs: 15000,
},
},
"memory-core": {
config: {
dreaming: { enabled: true },
},
},
},
},
}
Commands Reference
Check Status
# Via slash command (in chat)
/dreaming status
# Via CLI
openclaw memory status --deep
Manual Promotion
# Preview what would be promoted
openclaw memory promote
# Apply promotion
openclaw memory promote --apply
# Limit candidates
openclaw memory promote --limit 5
# Explain why a specific topic would/wouldn't promote
openclaw memory promote-explain "claw-earn wallet"
Dream Diary
# View dream diary
cat ~/openclaw-data/workspace/DREAMS.md
# View specific phase reports
ls ~/openclaw-data/workspace/memory/dreaming/
cat ~/openclaw-data/workspace/memory/dreaming/deep/2026-04-24.md
REM Harness (preview without writing)
# Preview REM reflections
openclaw memory rem-harness
# Preview as JSON
openclaw memory rem-harness --json
Historical Backfill
# Preview grounded diary from past notes
openclaw memory rem-harness --path memory/2026-04-23.md --grounded
# Apply backfill
openclaw memory rem-backfill --path memory/2026-04-23.md
# Stage for deep promotion
openclaw memory rem-backfill --path memory/2026-04-23.md --stage-short-term
# Rollback if needed
openclaw memory rem-backfill --rollback
Dreaming Phase Model
| Phase | Purpose | Writes to MEMORY.md? |
|---|---|---|
| Light | Sort and stage recent notes | No |
| REM | Extract patterns and themes | No |
| Deep | Promote strong candidates | Yes |
Deep ranking signals:
- Frequency (0.24) — how often the topic appears
- Relevance (0.30) — retrieval quality
- Query diversity (0.15) — different contexts
- Recency (0.15) — time-decayed freshness
- Consolidation (0.10) — multi-day recurrence
- Conceptual richness (0.06) — tag density
Troubleshooting
| Problem | Check |
|---|---|
| Dreaming never runs | heartbeat.every must be > 0 (e.g., 30m) |
| Status shows "blocked" | Default agent needs heartbeat enabled |
| No promotions | Need more daily notes and variety |
| MEMORY.md growing too fast | Adjust minScore threshold |
Heartbeat dependency
Dreaming rides the default agent's heartbeat. If heartbeat is broken:
- Check
agents.defaults.heartbeat.every— must be positive (e.g.,"30m") - Don't override heartbeat on a specific agent without including the default
/dreaming statuswill say "blocked" if heartbeat is missing
Important Notes
- Dreaming is opt-in and disabled by default
- Default schedule: 03:00 daily (configurable via
frequency) - Only grounded memory snippets are promoted, not diary entries
DREAMS.mdis for human reading;MEMORY.mdis for the agent- Promotion is reversible via
--rollback