Skip to main content
Plugins extend Claude Code with additional tools, skills, MCP servers, and other capabilities. The claude plugin command group (aliased as claude plugins) provides non-interactive management of plugins from the command line.
claude plugin <subcommand> [options]
Inside an interactive session, use the /plugin slash command (aliased as /plugins and /marketplace) to open the plugin management UI.

Subcommands

plugin list

List all installed plugins.
claude plugin list [options]
--json
boolean
Output as JSON instead of formatted text.
--available
boolean
Include plugins available from configured marketplaces in the output. Requires --json.

plugin install

Install a plugin from a configured marketplace.
claude plugin install [options] <plugin>
claude plugin i [options] <plugin>
plugin
string
required
Plugin identifier. Use plugin-name to install from any marketplace, or plugin-name@marketplace-name to target a specific marketplace.
-s, --scope <scope>
string
Installation scope: user (default), project, or local.
claude plugin install my-formatter

plugin uninstall

Uninstall an installed plugin.
claude plugin uninstall [options] <plugin>
claude plugin remove [options] <plugin>
claude plugin rm [options] <plugin>
plugin
string
required
Plugin name or plugin@marketplace identifier.
-s, --scope <scope>
string
Uninstall from scope: user (default), project, or local.
--keep-data
boolean
Preserve the plugin’s persistent data directory (~/.claude/plugins/data/{id}/). By default, data is removed along with the plugin.

plugin enable

Re-enable a plugin that has been disabled.
claude plugin enable [options] <plugin>
plugin
string
required
Plugin name or plugin@marketplace identifier.
-s, --scope <scope>
string
Scope to enable the plugin in (user, project, or local). If not specified, the most specific scope for the current project is used automatically.

plugin disable

Disable a plugin without uninstalling it.
claude plugin disable [options] [plugin]
plugin
string
Plugin name or plugin@marketplace identifier. Omit when using --all.
-a, --all
boolean
Disable all currently enabled plugins.
-s, --scope <scope>
string
Scope to disable the plugin in. If not specified, the most specific scope for the current project is used automatically.

plugin update

Update a plugin to the latest version. A restart is required for the update to take effect.
claude plugin update [options] <plugin>
plugin
string
required
Plugin name or plugin@marketplace identifier.
-s, --scope <scope>
string
Scope to update: user (default), project, or local.

plugin validate

Validate a plugin or marketplace manifest file for correctness.
claude plugin validate <path>
path
string
required
Path to the plugin.json or marketplace.json manifest to validate.

Marketplace subcommands

Marketplaces are registries from which plugins can be discovered and installed.

plugin marketplace add

Add a marketplace from a URL, file path, or GitHub repository.
claude plugin marketplace add [options] <source>
source
string
required
URL, local path, or GitHub repo (e.g. org/repo) of the marketplace.
--scope <scope>
string
Where to declare the marketplace: user (default), project, or local.
--sparse <paths...>
string[]
Limit the git checkout to specific directories using sparse-checkout (useful for monorepos). Example: --sparse .claude-plugin plugins.

plugin marketplace list

List all configured marketplaces.
claude plugin marketplace list [--json]

plugin marketplace remove

Remove a configured marketplace.
claude plugin marketplace remove <name>
claude plugin marketplace rm <name>

plugin marketplace update

Update marketplace listings from their source. Updates all marketplaces if no name is specified.
claude plugin marketplace update [name]

Plugin scopes

ScopeWhere storedVisible to
user~/.claude/settings.jsonYou, across all projects
project.claude/settings.jsonEveryone on the project
local.claude/settings.local.jsonYou, in this project only
Plugins installed at user scope are available in every project. Use project scope for plugins that all collaborators should have, and local scope for personal overrides that you do not want to commit to git.

The /plugin slash command

Inside an interactive session, /plugin opens the plugin management UI where you can browse, install, enable, disable, and uninstall plugins interactively:
/plugin
/plugin install my-formatter
/plugin uninstall my-formatter
/plugin enable my-formatter
/plugin disable my-formatter
/plugins
/marketplace
Use --plugin-dir <path> at startup to load a local plugin directory for the current session only, without installing it permanently:
claude --plugin-dir ./my-local-plugin

Build docs developers (and LLMs) love