openclaw - ✅(Solved) Fix plugins install --force resets custom plugin config in openclaw.json [1 pull requests, 1 comments, 2 participants]

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…
GitHub stats
openclaw/openclaw#63570Fetched 2026-04-10 03:42:45
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Author
Participants
Timeline (top)
commented ×1cross-referenced ×1referenced ×1

Running openclaw plugins install --force <plugin> resets the plugins.entries.<plugin>.config object in openclaw.json, wiping any custom configuration the user has set.

Root Cause

Running openclaw plugins install --force <plugin> resets the plugins.entries.<plugin>.config object in openclaw.json, wiping any custom configuration the user has set.

Fix Action

Fix / Workaround

Current workaround

PR fix notes

PR #63694: fix(plugins): preserve plugins.entries config during marketplace --force reinstall

Description (problem / solution / changelog)

Summary

Fixes #63570 - plugins install --force resets custom plugin config in openclaw.json, wiping any custom configuration (summaryModel, etc.) the user has set.

Root Cause

When a marketplace plugin reinstalls with , the returned by the marketplace (e.g. the manifest id from ) may differ from the key the user has in (e.g. the npm package name).

would spread first, then create/update the entry under the marketplace pluginId — but if the marketplace pluginId key doesn't exist in the user's config, it creates a new entry, orphaning the user's existing config.

Fix

In (), before creating/updating the plugin entry, check if an entry already exists under the marketplace pluginId. If not, look up existing entries by npm from to find the right key and update that instead.

This preserves the user's custom config (, , etc.) during reinstalls.

Testing

  • TypeScript compilation passes with no errors
  • Existing plugin enable/disable tests unaffected (fix only activates when entry key mismatch exists)

Files Changed

  • src/plugins/enable.ts

Changed files

  • package.json (modified, +1/-0)
  • src/plugins/enable.ts (modified, +34/-2)

Code Example

"plugins": {
     "entries": {
       "lossless-claw": {
         "config": {
           "summaryModel": "fw-mm25/accounts/fireworks/models/glm-5",
           "summaryProvider": "fw-mm25",
           "ignoreSessionPatterns": ["agent:*:cron:**"],
           "contextThreshold": 0.75
         }
       }
     }
   }
RAW_BUFFERClick to expand / collapse

Description

Running openclaw plugins install --force <plugin> resets the plugins.entries.<plugin>.config object in openclaw.json, wiping any custom configuration the user has set.

Steps to reproduce

  1. Install a plugin: openclaw plugins install @martian-engineering/lossless-claw
  2. Add custom config to openclaw.json:
    "plugins": {
      "entries": {
        "lossless-claw": {
          "config": {
            "summaryModel": "fw-mm25/accounts/fireworks/models/glm-5",
            "summaryProvider": "fw-mm25",
            "ignoreSessionPatterns": ["agent:*:cron:**"],
            "contextThreshold": 0.75
          }
        }
      }
    }
  3. Update the plugin: openclaw plugins install --force @martian-engineering/lossless-claw
  4. Check openclaw.json — the custom config keys are gone

Expected behavior

plugins install --force should update the plugin code but merge the existing config, preserving user-set keys. New keys from the plugin's defaults can be added, but existing user overrides should not be wiped.

Actual behavior

The entire plugins.entries.<plugin> object is replaced, losing all custom config.

Impact

For lossless-claw, this silently disables compaction — the summaryModel field is required for LCM to summarize conversations. Without it, sessions grow unbounded. We've hit this 4 times in 2 weeks.

Current workaround

We save the plugin config before plugins install and restore it after. See: https://github.com/the-original-body/tob-agents/pull/257

Environment

  • OpenClaw 2026.4.8
  • lossless-claw 0.6.3
  • macOS (self-hosted runner)

extent analysis

TL;DR

The openclaw plugins install --force command should be modified to merge the existing plugin configuration with the new defaults, rather than overwriting it.

Guidance

  • Verify that the openclaw.json file is being correctly read and written by the openclaw plugins install command.
  • Check the documentation for the --force flag to see if it has any options for preserving existing configuration.
  • Consider modifying the openclaw plugins install command to accept an optional --preserve-config flag that merges the existing configuration with the new defaults.
  • Review the code for the openclaw plugins install command to see where the configuration is being overwritten and modify it to preserve existing keys.

Example

// proposed change to openclaw.json handling
"plugins": {
  "entries": {
    "lossless-claw": {
      "config": {
        // existing keys are preserved
        "summaryModel": "fw-mm25/accounts/fireworks/models/glm-5",
        "summaryProvider": "fw-mm25",
        "ignoreSessionPatterns": ["agent:*:cron:**"],
        "contextThreshold": 0.75,
        // new keys from plugin defaults are added
        "newKey": "newValue"
      }
    }
  }
}

Notes

The current workaround of saving and restoring the plugin configuration is a temporary solution, but a more permanent fix would involve modifying the openclaw plugins install command to preserve existing configuration.

Recommendation

Apply workaround: save the plugin config before plugins install and restore it after, as described in the current workaround, until a permanent fix is implemented.

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…

FAQ

Expected behavior

plugins install --force should update the plugin code but merge the existing config, preserving user-set keys. New keys from the plugin's defaults can be added, but existing user overrides should not be wiped.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix plugins install --force resets custom plugin config in openclaw.json [1 pull requests, 1 comments, 2 participants]