#suppressing warning messages in json mode

1 messages · Page 1 of 1 (latest)

ashen torrent
#

When running openclaw plugins list --enabled --json, config warnings are emitted to stderr even in JSON mode. Example:
Config warnings:\n- plugins.entries.active-memory: plugin disabled (disabled in config) but config is present
Is there a flag to suppress these config warnings when using --json output, so that stderr is clean for programmatic use? Or is the expectation that callers should always filter stderr and only parse stdout? i am running version 2026.4.20

azure sealBOT
uneven sapphireBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

azure sealBOT
ashen torrent
#

@loud kayak

loud kayakBOT
#

I don’t see a dedicated flag for that on plugins list in 2026.4.20, and the current CLI behavior is basically:

  • --json keeps the JSON payload on stdout
  • config/logging diagnostics can still go to stderr

So yes, for programmatic use, the safe expectation today is: parse stdout, treat stderr as diagnostics, or redirect/filter stderr if you need it silent.

In your specific example, the warning is also actionable: you have config for plugins.entries.active-memory while that plugin is disabled. If you remove that stale config (or enable the plugin), that warning should stop.

Docs:

If you want totally clean stderr in JSON mode, that sounds like a reasonable feature request, but that would be a GitHub issue: https://github.com/openclaw/openclaw/issues

If you want, paste your plugins config block and I can point to the exact line to clean up.

ashen torrent
#

ok.. got it. When using openclaw plugins list, do --enabled and --json work correctly as combined flags (--enabled --json)? Specifically — does --enabled filter to active plugins only when --json is also passed, or does --json override or ignore the --enabled filter?

#

@loud kayak

loud kayakBOT
#

Yep, they work together correctly.

--json only changes the output format. It does not override --enabled.

So:

openclaw plugins list --enabled --json

will return JSON where the plugins array is already filtered to only plugins with status: "loaded".

A few specifics:

  • --enabled --json works
  • --json --enabled should behave the same
  • the filter is effectively “only loaded plugins”, not “show everything but in JSON”