openclaw - 💡(How to fix) Fix Feature Request: Make Dreaming System Prompt User-Customizable

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fix / Workaround

Why This Matters

  • International users benefit from native-language dreaming output
  • Power users can customize tone/depth/format
  • Eliminates fragile source-file patching on updates
RAW_BUFFERClick to expand / collapse

Problem The Dreaming system in OpenClaw has its prompt hardcoded in backend JavaScript (dreaming-*.js). Users cannot customize the language, section headers, or format of dream entries.

Proposed Solution Add a dreaming.prompt config field in openclaw.json and expose it in Settings → Dreaming UI. Support variable placeholders like {{date}}, {{time}}, {{count}}.

Example Chinese output: ```

\u68a6\u5883\u53cd\u601d

\u4e3b\u9898\uff1a{{theme}} \u5728 {{count}} \u6761\u8bb0\u5fc6\u4e2d\u53cd\u590d\u51fa\u73b0\u3002 ```

Why This Matters

  • International users benefit from native-language dreaming output
  • Power users can customize tone/depth/format
  • Eliminates fragile source-file patching on updates

Priority: Medium

extent analysis

TL;DR

Add a configurable dreaming.prompt field in openclaw.json to allow users to customize the language, section headers, and format of dream entries.

Guidance

  • Introduce a new configuration field dreaming.prompt in openclaw.json to store the customizable prompt template.
  • Update the Dreaming system in dreaming-*.js to read the prompt template from the dreaming.prompt config field instead of using a hardcoded value.
  • Implement placeholder replacement for variables like {{date}}, {{time}}, and {{count}} in the prompt template.
  • Expose the dreaming.prompt config field in the Settings → Dreaming UI to allow users to customize the prompt template.

Example

// dreaming-*.js
const promptTemplate = config.dreaming.prompt;
const placeholders = {
  '{{date}}': currentDate,
  '{{time}}': currentTime,
  '{{count}}': entryCount,
};
const customizedPrompt = promptTemplate.replace(/{{(date|time|count)}}/g, (match, placeholder) => placeholders[`{{${placeholder}}}`]);

Notes

The proposed solution requires updates to both the backend JavaScript code and the UI settings. The example code snippet assumes that the config.dreaming.prompt field is already populated with the user-customized prompt template.

Recommendation

Apply workaround by introducing the dreaming.prompt config field and updating the Dreaming system to use it, as this allows for customization and flexibility without requiring a full system overhaul.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING