Skip to content

Plugins Overview

Reference for the Claude Code plugin system — plugin.json manifest schema, directory layout, lifecycle, marketplace, and bundled-plugin catalog. Plugins package commands, skills, agents, hooks, MCP configs, and output styles into installable units.

  1. How plugins work
  2. Plugin directory layout
  3. Manifest field reference
  4. Plugin lifecycle
  5. Plugin directory structure conventions
  6. Marketplace concept
  7. Plugin policy
  8. Bundled plugins
  9. Plugin-related CLI subcommands
  10. Plugin-related slash commands
  11. Plugin-related settings keys
  12. Plugin-related environment variables
  13. Related subsystems
  14. Discrepancies & notes
  15. Additional resources

15 sections, 40 entries across manifest fields, bundled plugins, and lifecycle phases.

#SectionDescriptionEntries
1How plugins workManifest-driven packaging of commands/skills/agents/hooks/MCP configs, marketplace discovery, install/load/enable lifecycle.narrative
2Plugin directory layoutConventional directory tree for a plugin (plugin.json + commands/, skills/, agents/, hooks/, mcp-servers.json, output-styles/).narrative
3Manifest field referencePer-field reference for every plugin.json key — Identity, Content paths, Compatibility, Marketplace metadata, Gating, Permissions.28 entries
4Plugin lifecycleDiscovery → install → validate → load → enable → reload → autoupdate → uninstall flow.8 entries
5Plugin directory structure conventionsFile naming and placement rules the loader enforces.narrative
6Marketplace conceptOfficial marketplace, custom marketplaces, marketplace.json index format, blocklisting, managed restrictions.3 entries
7Plugin policyManaged-only policy gates from pluginPolicy.ts.narrative
8Bundled pluginsCatalog of plugins Anthropic ships in the CLI binary (from builtinPlugins.ts).1 entries
9Plugin-related CLI subcommandsclaude plugin install/uninstall/list/enable/disable/update/validate/search/info — cross-linked to CLI reference.narrative
10Plugin-related slash commands/plugin and /reload-plugins — cross-linked to Commands reference.narrative
11Plugin-related settings keysenabledPlugins, extraKnownMarketplaces, pluginTrustMessage, strictPluginOnlyCustomization, blockedMarketplaces, strictKnownMarketplaces.narrative
12Plugin-related environment variablesPlugin cache/seed dirs, git timeout, autoupdate, sync-install, cowork, official-marketplace autoinstall.narrative
13Related subsystemsHedged pointers to internal files not inspected — reconciler, autoupdate, zip cache, dependency resolver, etc.narrative
14Discrepancies & notesType/schema mismatches, deprecated dual-type, LSP binary requirement, managed-plugin read-only UI, symlink security.narrative
15Additional resourcesCross-references to sibling docs (Skills, Commands, Hooks, Settings, ENV, CLI) and official docs.narrative
FieldTypeRequired?DescriptionApplies to
namestringYesUnique identifier, kebab-case. Used as plugin namespace and marketplace key.All plugins
versionstringNoSemantic version (e.g., 1.2.0). Can be set in marketplace.json instead.Distributed plugins
descriptionstringNoBrief explanation of plugin purpose. Shown in /plugin UI.All plugins
authorobjectNoAuthor info: name, email, url.Distributed plugins
homepagestringNoDocumentation URL.Distributed plugins
repositorystringNoSource code repository URL.Distributed plugins
licensestringNoSPDX license identifier (e.g., MIT, Apache-2.0).Distributed plugins
keywordsarrayNoTags for discovery and categorization.Marketplace plugins
commandsstring or arrayNoPath(s) to command files or directories. Replaces default commands/.Plugins with flat commands
skillsstring or arrayNoPath(s) to skill directories containing SKILL.md. Replaces default skills/.Plugins with custom skill layout
agentsstring or arrayNoPath(s) to agent markdown files. Replaces default agents/.Plugins with custom agent layout
hooksstring, array, or objectNoHook configuration: file path(s) or inline config.Plugins with hooks
mcpServersstring, array, or objectNoMCP server configuration: file path(s) or inline config.Plugins with MCP servers
outputStylesstring or arrayNoPath(s) to output style files or directories. Replaces default output-styles/.Plugins with output styles
lspServersstring, array, or objectNoLSP server configuration: file path(s) or inline config.Plugins with LSP servers
monitorsstring or arrayNoPath(s) to monitor configuration files. Replaces default monitors/monitors.json.Plugins with background monitors
dependenciesarrayNoOther plugins this plugin requires, optionally with semver constraints.Plugins with cross-plugin deps
userConfigobjectNoUser-configurable values prompted at enable time. Supports sensitive (keychain) and public values.Plugins needing configuration
channelsarrayNoMessage channel declarations that bind to MCP servers (Telegram, Slack, Discord style).Plugins with chat integrations
minClaudeCodeVersionstringNoMinimum Claude Code version required (semver).Compatibility gating
maxClaudeCodeVersionstringNoMaximum Claude Code version supported (semver).Compatibility gating
requiresarrayNoRequired system capabilities (reserved for future use).Compatibility gating
gatedBystring or arrayNoFeature flag(s) that must be enabled for the plugin to load.Feature-flag gating
deprecatedboolean or stringNoIf true or a string message, marks plugin as deprecated.Deprecated plugins
autoUpdatebooleanNoEnable automatic updates for this plugin. Defaults to FORCE_AUTOUPDATE_PLUGINS env var.Update control