claude-code - 💡(How to fix) Fix [DOCS] Plugin manifest docs still show top-level `themes` and `monitors` instead of `experimental` [1 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
anthropics/claude-code#56491Fetched 2026-05-06 06:26:38
View on GitHub
Comments
0
Participants
1
Timeline
4
Reactions
0
Author
Participants
Timeline (top)
labeled ×3cross-referenced ×1

Root Cause

Because the reference page only shows the older top-level shape and does not mention experimental or the validator warning, plugin authors following the docs will get warnings from claude plugin validate even when they copied the documented schema.

Code Example

> {
>   "name": "plugin-name",
>   ...
>   "outputStyles": "./styles/",
>   "themes": "./themes/",
>   "lspServers": "./.lsp.json",
>   "monitors": "./monitors.json",
>   "dependencies": [
>
RAW_BUFFERClick to expand / collapse

Documentation Type

Incorrect/outdated documentation

Documentation Location

https://code.claude.com/docs/en/plugins-reference

Section/Topic

Plugin manifest schema (plugin.json), especially the complete schema example, component path fields table, and inline monitor configuration guidance

Current Documentation

The docs currently say:

{
  "name": "plugin-name",
  ...
  "outputStyles": "./styles/",
  "themes": "./themes/",
  "lspServers": "./.lsp.json",
  "monitors": "./monitors.json",
  "dependencies": [

And the same page documents these as top-level manifest fields:

| themes | string|array | Color theme files/directories (replaces default themes/). See Themes | "./themes/" | | monitors | string|array | Background Monitor configurations that start automatically when the plugin is active. See Monitors | "./monitors.json" |

It also says:

Location: monitors/monitors.json in the plugin root, or inline in plugin.json

To declare monitors inline, set the monitors key in plugin.json to the same array. To load from a non-default path, set monitors to a relative path string such as "./config/monitors.json".

What's Wrong or Missing?

This page still teaches plugin authors to declare themes and monitors at the top level of plugin.json.

For the v2.1.129 change, these declarations should now live under an experimental object instead. Top-level declarations still work for compatibility, but claude plugin validate warns about them.

Because the reference page only shows the older top-level shape and does not mention experimental or the validator warning, plugin authors following the docs will get warnings from claude plugin validate even when they copied the documented schema.

Suggested Improvement

Update plugins-reference so the manifest schema matches the current validator behavior:

  1. Change the complete plugin.json example to move themes and monitors under "experimental": { ... }.
  2. Update the component field documentation to explain that themes and monitors are now declared inside experimental.
  3. Update the inline monitors guidance so it points to experimental.monitors instead of a top-level monitors key.
  4. Add a short migration note that top-level themes and monitors are still accepted for backward compatibility, but claude plugin validate warns and new manifests should use experimental.

Impact

Medium - Makes feature difficult to understand

Additional Context

Affected Pages:

PageContext
https://code.claude.com/docs/en/plugins-referenceComplete schema example, top-level field table, and inline monitor configuration guidance still document themes/monitors at the top level

Total scope: 1 page affected

Changelog context: This issue cross-references the Claude Code v2.1.129 release entry that says plugin manifests should now declare themes and monitors under experimental, while top-level declarations remain backward-compatible but produce claude plugin validate warnings.

extent analysis

TL;DR

Update the plugins-reference documentation to reflect the new experimental object for themes and monitors declarations in plugin.json.

Guidance

  • Review the current documentation at https://code.claude.com/docs/en/plugins-reference and identify areas that need updates, specifically the complete schema example, component field documentation, and inline monitors guidance.
  • Update the documentation to move themes and monitors under the "experimental": { ... } object, as per the v2.1.129 change.
  • Add a migration note to explain that top-level themes and monitors are still accepted for backward compatibility but will produce warnings from claude plugin validate.
  • Verify the updates by checking the affected page, https://code.claude.com/docs/en/plugins-reference, to ensure the new documentation matches the current validator behavior.

Example

{
  "name": "plugin-name",
  ...
  "experimental": {
    "outputStyles": "./styles/",
    "themes": "./themes/",
    "lspServers": "./.lsp.json",
    "monitors": "./monitors.json"
  },
  "dependencies": [

Notes

The updates should be made to the plugins-reference page to reflect the changes introduced in v2.1.129. The goal is to ensure the documentation matches the current validator behavior and provides accurate guidance for plugin authors.

Recommendation

Apply the workaround by updating the documentation as suggested, to ensure plugin authors have accurate information and can avoid warnings from claude plugin validate.

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

claude-code - 💡(How to fix) Fix [DOCS] Plugin manifest docs still show top-level `themes` and `monitors` instead of `experimental` [1 participants]