Skip to main content
Looking to install plugins? See Discover and install plugins. For creating plugins, see Plugins. For distributing plugins, see Plugin marketplaces.
A plugin is a self-contained directory of components that extends Claude Code with custom functionality. Plugin components include skills, agents, hooks, MCP servers, LSP servers, and monitors.

Plugin components reference

Skills

Plugins add skills to Claude Code, creating /name shortcuts that you or Claude can invoke. Location: skills/ or commands/ directory in plugin root, or a single SKILL.md file at the plugin root File format: Skills are directories with SKILL.md; commands are simple markdown files Skill structure:
Skills and commands are automatically discovered when the plugin is installed. If a plugin has no skills/ directory and no skills manifest field, a SKILL.md at the plugin root is loaded as a single skill. Set the frontmatter name field to control the skill’s invocation name. Without it, Claude Code falls back to the install directory name, which for marketplace-installed plugins is a version string that changes on every update. For plugins that ship more than one skill, use the skills/ directory layout shown above. In plugin skills and commands, Boolean frontmatter fields such as disable-model-invocation accept yes, no, on, off, 1, and 0 in any letter case, in addition to true and false. Before v2.1.218, Claude Code recognized only true and false. For complete details, see Skills.

Agents

Plugins can provide specialized subagents for specific tasks that Claude can invoke automatically when appropriate. Location: agents/ directory in plugin root File format: Markdown files describing agent capabilities Agent structure:
Plugin agents support name, description, model, effort, maxTurns, tools, disallowedTools, skills, memory, background, and isolation frontmatter fields. The only valid isolation value is "worktree". For security reasons, hooks, mcpServers, and permissionMode are not supported for plugin-shipped agents. Agents appear in the @-mention typeahead under their scoped name, such as my-plugin:code-reviewer, once the plugin is enabled. For complete details, see Subagents.

Hooks

Plugins can provide event handlers that respond to Claude Code events automatically. Location: hooks/hooks.json in plugin root, or inline in plugin.json Format: JSON configuration with event matchers and actions Hook configuration:
Plugin hooks respond to the same lifecycle events as user-defined hooks: