Plugins
A plugin is a folder that adds skills, agents, hooks, or MCP servers to Claude Code.
A marketplace is a list of plugins that you can install.
For example, claude plugin install my-plugin@my-marketplace installs a plugin from a marketplace.
This page gives the big picture. The other pages list every key, command, and path.
What a Plugin Holds
A plugin can bundle these parts. Each part has a default folder or file name.
| Part | Status | Default Place | Page |
|---|---|---|---|
| Skills | Documented: An official docs page names this item. | skills/ | Manifest |
| Commands | Documented: An official docs page names this item. | commands/ | Manifest |
| Agents | Documented: An official docs page names this item. | agents/ | Manifest |
| Hooks | Documented: An official docs page names this item. | hooks/ | Manifest |
| MCP servers | Documented: An official docs page names this item. | . | Manifest |
| LSP servers | Documented: An official docs page names this item. | . | Manifest |
| Monitors | Documented: An official docs page names this item. | monitors/ | Manifest |
| Output styles | Documented: An official docs page names this item. | output- | Manifest |
| Workflows and themes | Documented: An official docs page names this item. | workflows/, themes/ | Manifest |
| Executables | Documented: An official docs page names this item. | bin/ | Manifest |
| Mods | Documented: An official docs page names this item. | types key, TypeScript files | Mod API |
Ids, Scopes, and Special Marketplaces
- A plugin id is
name@marketplace. The text before@is the entry name in the marketplace file. - The scopes are
user,project,local, andmanaged. The enable state of each plugin lives inenabledPlugins. - A plugin skill gets the name
/<plugin>:<skill>. Two plugins cannot clash. - Four marketplace names are special. You cannot reuse them.
| Marketplace | Status | Meaning |
|---|---|---|
inline | Documented: An official docs page names this item. | Plugins loaded for one session with -- or --. Their ids end in @inline. |
builtin | Documented: An official docs page names this item. | Plugins that ship inside Claude Code. |
skills- | Documented: An official docs page names this item. | Plugins that claude plugin init makes in ~/.. They load on the next session. |
synced | Documented: An official docs page names this item. | Plugins synced from your claude.ai account. Turn off with sync. |
Example
This flow creates a plugin. It tests the plugin for one session. It then installs the plugin from a marketplace.
# Create a plugin folder at ~/.claude/skills/my-plugin/
claude plugin init my-plugin --with skills hooks
# Check the files
claude plugin validate ~/.claude/skills/my-plugin
# Try a folder for one session only
claude --plugin-dir ./my-plugin
# Add a marketplace, then install from it
claude plugin marketplace add owner/repo
claude plugin install my-plugin@my-marketplace --scope project
How It Works
Claude Code reads the marketplace. It gets the source of the plugin that you pick. It copies the source into a cache folder. It writes an install record. At session start it loads every enabled plugin. Paths and variables are in Plugin Loading.
Pages in This Section
| Page | What It Covers |
|---|---|
| Plugin Manifest | Every plugin. key, user, and the folder layout |
| Marketplaces | Every marketplace. key, plugin sources, marketplace sources |
| Plugin Commands | Every claude plugin subcommand, /, and session flags |
| Plugin Loading | Paths, cache, variables, env vars, and enabling |
| Plugin Settings Keys | Settings keys for plugins and marketplaces |
| Plugin Env Vars | Env vars for plugins and MCP |
Sources
- Create Plugins is the official guide for authors.
- Plugin Manifest Reference describes
plugin.json. - Program-only facts come from the program (the bundled manifest schema and the plugin loader).