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/ 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:
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: