Skip to main content

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.

At a Glance​

QuestionAnswer
Can you use it?✅ Yes. Install with claude plugin install or the /plugin panel.
Can you change it?✅ Yes. Write your own plugin folder and an optional marketplace file.
Can you turn it on or off?claude plugin enable and disable, or enabledPlugins in settings. Managed settings can lock the rules.
Where does it live?~/.claude/plugins/ for installs. .claude-plugin/plugin.json in the plugin folder.
StatusDocumented Undocumented

What a Plugin Holds​

A plugin can bundle these parts. Each part has a default folder or file name.

PartStatusDefault PlacePage
SkillsDocumentedskills/Manifest
CommandsDocumentedcommands/Manifest
AgentsDocumentedagents/Manifest
HooksDocumentedhooks/hooks.jsonManifest
MCP serversDocumented.mcp.jsonManifest
LSP serversDocumented.lsp.jsonManifest
MonitorsDocumentedmonitors/monitors.jsonManifest
Output stylesDocumentedoutput-styles/Manifest
Workflows and themesDocumentedworkflows/, themes/Manifest
ExecutablesDocumentedbin/Manifest
ModsDocumentedtypes key, TypeScript filesMod 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, and managed. The enable state of each plugin lives in enabledPlugins.
  • A plugin skill gets the name /<plugin>:<skill>, so two plugins cannot clash.
  • Four marketplace names are special and you cannot reuse them.
MarketplaceStatusMeaning
inlineDocumentedPlugins loaded for one session with --plugin-dir or --plugin-url. Their ids end in @inline.
builtinDocumentedPlugins that ship inside Claude Code.
skills-dirDocumentedPlugins made by claude plugin init in ~/.claude/skills/. They load on the next session.
syncedDocumentedPlugins synced from your claude.ai account. Turn off with syncClaudeAiPlugins: false.

Example​

This flow creates a plugin, tests it for one session, and installs it from a marketplace.

Build, test, and install
# 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, fetches the source of the plugin you pick, and copies it 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​

PageWhat It Covers
Plugin ManifestEvery plugin.json key, userConfig, and the folder layout
MarketplacesEvery marketplace.json key, plugin sources, marketplace sources
Plugin CommandsEvery claude plugin subcommand, /plugin, and session flags
Plugin LoadingPaths, cache, variables, env vars, and enabling
Plugin Settings KeysSettings keys for plugins and marketplaces
Plugin Env VarsEnv vars for plugins and MCP

Sources​