<!-- llms-explorer concept facts · https://llms-explorer.com/tree/claude-code-plugins/ · pack 2026-09-08 · ~1830 tokens -->

# Claude Code Plugins

> Reference for the Claude Code extension system: plugins, hooks, commands, and agents. Backed by references/claude-code-plugins-context.md.

Parent: [Claude Code Skills](https://llms-explorer.com/tree/claude-code-skills/) · 8 facets · 22 facts · page: https://llms-explorer.com/tree/claude-code-plugins/

## Claude Code Plugins, Hooks & Commands

- Reference for the Claude Code extension system: plugins, hooks, commands, and agents. Backed by references/claude-code-plugins-context.md. — [source](https://llms-explorer.com/sources/mdb-context-hub/claude-code-plugins/#claude-code-plugins-hooks-commands)

## When NOT to use

- Writing a standalone skill not packaged in a plugin → use claude-code-skills — [source](https://llms-explorer.com/sources/mdb-context-hub/claude-code-plugins/#when-not-to-use)
- General MCP server development → use mcp-server-dev:build-mcp-server — [source](https://llms-explorer.com/sources/mdb-context-hub/claude-code-plugins/#when-not-to-use)
- Hook configuration in project settings only (no plugin packaging) → use the hookify skill — [source](https://llms-explorer.com/sources/mdb-context-hub/claude-code-plugins/#when-not-to-use)

## Minimal plugin.json manifest

- Required fields: name, version. All others are recommended for marketplace submission. — [source](https://llms-explorer.com/sources/mdb-context-hub/claude-code-plugins/#minimal-pluginjson-manifest)

## Full reference

- For complete coverage of all 29 hook events, hook matchers, plugin.json schema, marketplace submission, and settings configuration, read references/claude-code-plugins-context.md in this directory. — [source](https://llms-explorer.com/sources/mdb-context-hub/claude-code-plugins/#full-reference)

## Where this helps

- Packaging a set of hooks, commands, and agents together for distribution as a single installable plugin rather than shipping loose configuration files. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Writing the minimal plugin.json manifest, where name and version are the only required fields, before deciding which optional fields matter for marketplace submission. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Deciding whether a piece of extension logic belongs in a plugin, a standalone skill, an MCP server, or a project-level hook, which is exactly the decision the pack's own “when NOT to use” boundary addresses. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Working with any of the Claude Code plugin hook events or hook matchers, where this summary-level reference is the entry point into the fuller reference doc. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Project ideas

- Write a minimal plugin.json with only the required name and version fields, confirm it loads, then incrementally add the recommended fields needed for marketplace submission. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Package an existing set of project-local hooks into a plugin so they can be installed and versioned independently of the project that originated them. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Bundle a command, a hook, and an agent definition into one plugin and verify all three are discoverable together after installation. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Build a small marketplace-submission checklist by comparing a draft plugin.json against every recommended, non-required, field the manifest schema defines. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Antipatterns

- Packaging a standalone skill inside a plugin when it isn't meant to bundle hooks, commands, or agents — that belongs to skill authoring, not plugin packaging. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Reaching for plugin packaging to configure a single project-local hook, when project settings alone is the simpler and correct scope. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Building general MCP server logic inside a plugin's structure instead of using the dedicated MCP server development path. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Shipping a plugin.json with only the two required fields, name and version, when targeting marketplace submission, where the recommended fields are effectively required for a usable listing. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Known issues

- This pack is explicitly a summary layer over a fuller reference document; it names the full hook-event count and manifest schema but doesn't itself enumerate them, so anything beyond the basics requires reading the underlying reference. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- The boundary between a plugin and a skill is a real design decision with consequences for distribution and versioning, and picking wrong means repackaging work later. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Marketplace submission has real requirements beyond the two mandatory manifest fields, but which fields matter can change as the plugin ecosystem and review process evolve. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Hook event coverage and hook matcher syntax are version-dependent parts of the Claude Code extension system, so guidance here can drift out of sync with the current release without an explicit recheck. — [source](https://llms-explorer.com/tree/claude-code-plugins/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Context files

- [Claude Code Plugins](https://llms-explorer.com/downloads/sources/mdb-context-hub/claude-code-plugins.md)
