What are plugins?
A plugin is a package that extends Claude Code. Plugins can provide:- Skills — new slash commands (e.g.
/my-plugin:review) - Hooks — scripts that run before or after tool calls
- MCP servers — additional tools and context sources
- LSP servers — language intelligence for specific file types
- Agents — specialized sub-agent workflows
- Output styles — custom response formatting
The /plugin command
Run/plugin to open the plugin management UI. You can also pass subcommands directly:
Installing a plugin
1
Find a plugin
Browse available plugins with
/plugin and navigate to the marketplace browser, or install directly if you know the plugin name.2
Install it
plugin.json manifest.3
Enable it
Newly installed plugins are enabled by default. If you disabled one previously, re-enable it:
Plugin enabled/disabled state is saved to your user settings and persists across sessions.
Built-in plugins
Claude Code ships with built-in plugins that appear in the/plugin UI under a Built-in section. Built-in plugins use the @builtin identifier (e.g. my-plugin@builtin).
You can enable or disable built-in plugins the same way as marketplace plugins. Disabled built-in plugins contribute no skills, hooks, or MCP servers until re-enabled.
Built-in plugins differ from bundled skills. Bundled skills (like
/verify and /debug) are always available and cannot be disabled. Built-in plugins appear in the plugin UI and respect your enable/disable preference.Plugin configuration
Some plugins declare user-configurable options in theirplugin.json. When you enable such a plugin, Claude Code prompts you to fill in the required values (for example, an API key or a directory path).
Non-sensitive values are saved to settings.json. Sensitive values (marked sensitive: true in the manifest) are stored in secure storage (macOS Keychain or .credentials.json on other platforms).
You can update a plugin’s configuration at any time from the plugin manage screen (/plugin manage).
Adding a marketplace
A marketplace is a repository that contains amarketplace.json listing available plugins. Add one with:
settings.json:
Creating a plugin
A plugin is a directory containing aplugin.json manifest.
Minimal plugin structure
plugin.json manifest
Plugin components
Skills
Place skill directories under
skills/ or point to them with the skills field in plugin.json. Skills follow the same SKILL.md format as user skills.Hooks
Define a
hooks/hooks.json file, or point to it with the hooks field. The hooks format matches the hooks key in settings.json.MCP Servers
Configure MCP servers in
.mcp.json or inline under mcpServers in plugin.json. They are registered when the plugin is enabled.Commands
Place Markdown files under
commands/ to add slash commands. Commands differ from skills in that they always show up for users to invoke directly.Validate before publishing
Run/plugin validate <path> to check your plugin manifest for errors before distributing it: