Earlier this week we wrote that Dreaming wasn't available in 2026.4.x — the docs were ahead of the release. That changed today. Dreaming shipped as part of 2026.4.5, making the /dreaming workflow generally available for the first time.

It's experimental, opt-in, and disabled by default. But it's real and it works. Here's how to turn it on.

Before enabling: Make sure you're actually on 2026.4.5. Run openclaw --version. Note that 2026.4.5 also has a known CLI breakage bug on some installs — if your CLI is broken, fix that first, then enable Dreaming.

What Dreaming Actually Does

Dreaming is a background memory consolidation process. During and after conversations, your agent accumulates short-term context — facts, preferences, decisions, things you mentioned in passing. Dreaming runs a periodic background job that:

  1. Scans recent conversation history
  2. Identifies facts worth retaining long-term
  3. Writes them to a persistent recall store in memory/.dreams/
  4. Deduplicates and merges with existing memories

Think of it as your agent's equivalent of sleep — it processes the day's conversations and decides what to keep. The result: your agent gradually builds up a persistent knowledge base about you, your preferences, and your context without you having to manually maintain memory files.

Step 1 — Enable Dreaming in Config

Open ~/.openclaw/openclaw.json and add the Dreaming config to the plugins.entries.memory-core section:

"plugins": {
  "entries": {
    "memory-core": {
      "enabled": true,
      "config": {
        "dreaming": {
          "enabled": true,
          "mode": "passive"
        }
      }
    }
  }
}

Then restart the gateway:

openclaw gateway restart

Dreaming Modes

passive

Passive

Runs during natural idle periods. Lowest API cost. Best for most users. Doesn't interrupt conversations.

scheduled

Scheduled

Runs on a cron-like schedule you define. Predictable behavior, slightly higher cost. Good for heartbeat setups.

active

Active

Runs more aggressively after each session. Best memory retention, highest API cost. For power users.

Start with passive — it's the lowest risk and lowest cost way to try Dreaming. You can tune from there.

Step 2 — Configure Scheduled Mode (Optional)

If you want Dreaming to run on a schedule — for example, every night at 2 AM — use scheduled mode with a cron expression:

"dreaming": {
  "enabled": true,
  "mode": "scheduled",
  "schedule": "0 2 * * *"
}

This pairs well with heartbeat setups where the agent is already doing overnight work. Add Dreaming to the overnight cycle and your agent wakes up each morning with consolidated memory from the previous day.

Step 3 — Trigger a Dream Manually

You can trigger a dream cycle on demand without waiting for the scheduled or passive trigger:

# From CLI
openclaw memory promote

# Or from chat
/dreaming

The promote subcommand is the one that wasn't available before 2026.4.5. It now works.

Where Dreaming Stores State

All Dreaming state lives inside your workspace under memory/.dreams/:

memory/
  .dreams/
    recall-store.json    — the consolidated long-term memory
    phase-signals.json  — tracks what's been processed
    ingestion-checkpoints.json  — prevents re-processing old conversations
    locks/                — prevents concurrent dream cycles

These files are plain JSON — you can read, edit, or back them up like any other workspace file. If something goes wrong, delete the .dreams/ directory and Dreaming starts fresh.

Privacy note: The recall store contains facts your agent extracted from your conversations — preferences, names, decisions, anything it deemed worth remembering. Review memory/.dreams/recall-store.json periodically to see what's being retained and remove anything you don't want persisted.

API Cost Implications

Dreaming makes LLM calls to process and consolidate conversation history. Each dream cycle costs tokens. Rough estimates:

For setups already watching API costs closely, start with passive mode and monitor your usage for a week before switching to active.

Dreaming vs. Manual memory.md — Which Should You Use?

Both. They complement each other:

The best setup: use memory.md for the things you'd put in an onboarding document ("Josh runs 6 companies, prefers short replies, uses Discord") and let Dreaming handle the rest ("Josh mentioned he's closing on a property in Q3", "Josh prefers Qwen for sub-agent tasks").

Migration note: If you set up a manual memory system using the file-based workaround from our previous guide, you don't need to tear it down. Dreaming reads from and writes to memory/.dreams/ — it won't overwrite your existing memory.md or other memory files. They coexist cleanly.