[DOCS] Plugin docs omit `defaultEnabled: false` for opt-in plugins

Status Fixed / completed
Maintainer reply None cached
Activity 3 comments · opened May 28, 2026 · closed Jun 23, 2026

Documentation Type

Missing documentation (feature not documented)

Documentation Location

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

Section/Topic

Plugin manifest schema and marketplace plugin entry fields

Current Documentation

The plugins reference introduces the manifest schema as exhaustive:

The .claude-plugin/plugin.json file defines your plugin's metadata and configuration. This section documents all supported fields and options.

The complete schema example includes metadata, component path fields, user-facing configuration, channels, and dependencies, but no defaultEnabled field:

"dependencies": [ "helper-lib", { "name": "secrets-vault", "version": "~2.1.0" } ]

The plugin marketplaces guide documents how teams can force specific plugins on through settings:

You can also specify which plugins should be enabled by default:
"enabledPlugins": { "code-formatter@company-tools": true, "deployment-tools@company-tools": true }

No current plugin docs page documents a defaultEnabled field in plugin.json or in a marketplace plugin entry.

What's Wrong or Missing?

Claude Code v2.1.154 adds a way for plugin authors or marketplace maintainers to declare an installed plugin as opt-in by setting defaultEnabled: false in either .claude-plugin/plugin.json or the marketplace entry.

The docs currently explain how users and teams can enable plugins after installation, and how settings can pre-enable specific plugins, but they do not document this author-controlled default-enabled behavior.

That leaves three gaps:

A. Plugin authors cannot discover the manifest field

The manifest schema says it documents all supported fields, but it does not list defaultEnabled, its type, default value, or how it interacts with component loading.

B. Marketplace maintainers cannot discover the entry-level field

The marketplace guide documents plugin source fields and team-level enabledPlugins settings, but not that a marketplace entry can set defaultEnabled: false for plugins that should install without immediately becoming active.

C. Users cannot tell how to activate opt-in plugins

The release note says opt-in plugins can be enabled with /plugin or claude plugin enable, but the install and marketplace docs do not explain that workflow for plugins that install disabled by default.

Suggested Improvement

Add defaultEnabled to the plugin manifest schema and marketplace plugin entry documentation.

Suggested minimum addition for the plugins reference:

defaultEnabled | boolean | Whether the plugin should be enabled immediately after install. Defaults to true. Set to false for plugins that should install in a disabled state until the user enables them with /plugin or claude plugin enable. Dependencies of enabled plugins are still enabled automatically.

Add a short marketplace example showing both declaration locations:

{
"name": "heavy-analysis-plugin",
"source": "./plugins/heavy-analysis-plugin",
"defaultEnabled": false
}

Also add a short note in the install/manage plugins guide:

Some plugins may install disabled by default when their author or marketplace sets defaultEnabled: false. Enable them from the /plugin Installed tab or with claude plugin enable <plugin>.

Impact

Medium - Makes feature difficult to understand

Additional Context

Affected Pages:

| Page | Context |
|------|---------|
| https://code.claude.com/docs/en/plugins-reference | Primary manifest schema and CLI enable command reference |
| https://code.claude.com/docs/en/plugin-marketplaces | Marketplace plugin entry and team marketplace documentation |
| https://code.claude.com/docs/en/discover-plugins | User-facing install and enable workflow |
| https://code.claude.com/docs/en/plugin-dependencies | Related dependency enablement behavior already documented |

Total scope: 4 pages affected

Version context: Claude Code v2.1.154 changelog entry: "Plugins can now declare defaultEnabled: false in plugin.json or a marketplace entry; enable them with /plugin or claude plugin enable. Dependencies of enabled plugins are still enabled automatically."

View original on GitHub ↗

3 Comments

github-actions[bot] · 4 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/17117
  2. https://github.com/anthropics/claude-code/issues/27105
  3. https://github.com/anthropics/claude-code/issues/27026

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

coygeek · 3 months ago

Issue #63301 Verification

Title: [DOCS] Plugin docs omit defaultEnabled: false for opt-in plugins
Issue Date: 2026-05-28
Verification Date: 2026-06-23
Status: RESOLVED

---

Issue Summary

This issue reports that Claude Code v2.1.154 introduced a defaultEnabled field that can be set to false in either .claude-plugin/plugin.json or a marketplace entry, so a plugin installs in a disabled state until the user opts in. At the time of filing, the plugins reference schema, the marketplace guide, and the install/manage guide did not document this field, leaving plugin authors, marketplace maintainers, and users unable to discover or use the new opt-in behavior.

---

Verification Results

Claim A: Plugin manifest schema does not document defaultEnabled

Status: RESOLVED

Evidence:

> defaultEnabled | boolean | {/ min-version: 2.1.154 /}Whether the plugin starts in an enabled state when the user has not set one. Defaults to true. See [Default enablement](#default-enablement). Requires Claude Code v2.1.154 or later.

  • The same page now has a dedicated "Default enablement" subsection (lines 497-506) that explains:

> Set defaultEnabled: false in plugin.json to ship a plugin that installs disabled. The user turns it on with claude plugin enable <plugin> or the /plugin interface. Use this for plugins that add cost or scope a user should opt into, such as one that connects to an external service. This requires Claude Code v2.1.154 or later. Earlier versions ignore the field and enable the plugin on install.

  • The subsection also documents precedence rules: the user's enabledPlugins setting wins, and a dependency that is required by an active plugin gets an explicit true written for it.

Verdict: The manifest schema and the surrounding explanation have been added as the issue requested. Plugin authors can now discover the field, its type, default value, and the precedence rules that govern it.

---

Claim B: Marketplace entry-level defaultEnabled is undocumented

Status: RESOLVED

Evidence:

> defaultEnabled | boolean | {/ min-version: 2.1.154 /}Whether the plugin is enabled after install (default: true). Set to false to install the plugin disabled until the user opts in. Takes precedence over the same field in the plugin's plugin.json. See Default enablement. Requires Claude Code v2.1.154 or later.

  • The default-enablement subsection in plugins-reference.md (line 506) explicitly states that the marketplace entry takes precedence over the same field in plugin.json.

Verdict: Marketplace maintainers can now see the field, its default, the precedence order, and a cross-reference back to the canonical reference.

---

Claim C: Install/manage guide does not explain the opt-in workflow

Status: RESOLVED

Evidence:

> Run /plugin and go to the Installed tab to view, enable, disable, or uninstall your plugins. The list is grouped by scope and sorted so you see problems first: plugins with load errors or unresolved dependencies appear at the top, followed by your favorites, with disabled plugins folded behind a collapsed header at the bottom.

  • Lines 317-320 document the re-enable command:

> Re-enable a disabled plugin:
> ``shell
> /plugin enable plugin-name@marketplace-name
>
``

  • The detailed "Default enablement" section in plugins-reference.md (line 499) tells users how to opt in:

> The user turns it on with claude plugin enable <plugin> or the /plugin interface.

> This holds even when a dependency sets defaultEnabled: false in its manifest, because Claude Code writes an explicit true for it. The same applies at install: a dependency pulled in to satisfy an active plugin installs with true regardless of its own default.

Verdict: The enable workflow is now documented in the user-facing install/manage guide, and the canonical "Default enablement" subsection spells out the exact user actions (/plugin or claude plugin enable <plugin>) to opt in. The dependencies page is also cross-referenced, so dependency interactions are covered.

---

Current State

| Claim | Status |
|-------|--------|
| A: defaultEnabled documented in plugin manifest schema | RESOLVED |
| B: defaultEnabled documented in marketplace entry schema | RESOLVED |
| C: Install/manage guide explains the opt-in enable workflow | RESOLVED |

---

Suggested Fix

N/A - issue has been resolved.

The original suggested improvements (a defaultEnabled row in the manifest schema, a marketplace example with the field, and a brief install/manage note) are all present in the current docs, plus a precedence-rules section and a cross-reference from the dependencies page.

---

References

  • URL: https://code.claude.com/docs/en/plugins-reference
  • Line 495: defaultEnabled row in the metadata fields table.
  • Lines 497-506: "Default enablement" subsection covering the field's purpose, precedence over enabledPlugins and dependency requirements, and the cross-reference to the marketplace entry.

---

Conclusion & Recommendation

Primary Concern: The defaultEnabled: false opt-in feature shipped in v2.1.154 was not documented in the plugin manifest schema, marketplace entry schema, or the user-facing install/manage guide.

Resolution Status: RESOLVED

Recommendation: CLOSE

The field is now documented in both the manifest schema and the marketplace entry schema, with a dedicated "Default enablement" subsection that explains the type, default value, precedence rules, and the user-facing /plugin and claude plugin enable <plugin> workflow. The dependencies page and the settings page both cross-reference the new field, so plugin authors, marketplace maintainers, and end users can all discover the behavior from the canonical pages.

github-actions[bot] · 1 month ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.