[FEATURE] Bulk install all plugins from a marketplace or ability to specify multiple plugins in the `/plugin install` command

Resolved 💬 6 comments Opened Apr 5, 2026 by futuremotiondev Closed Jun 11, 2026

Preflight Checklist

  • [Note]: This feature has been requested before, but I've added a much more detailed set of possible solutions to this problem that I feel makes this issue more complete than existing issues. I'd like to request that this issue not be closed.

---

Related Feature Requests**

[#26561 - [FEATURE] Bulk installation feature for enabled plugins](https://github.com/anthropics/claude-code/issues/26561)
[#21370 - [FEATURE] Bulk install all plugins from a marketplace](https://github.com/anthropics/claude-code/issues/21370)
#14843 - Feature Request: Bulk enable/disable plugins

---

Problem

Currently, Claude Code's /plugin install command only supports installing one plugin at a time from a registered marketplace. For marketplaces containing dozens or even hundreds of plugins, this forces users to run repetitive individual install commands — a tedious and error-prone workflow.

Current behavior (one command per plugin):

/plugin install @claude-skills/api-authentication
/plugin install @claude-skills/api-contract-testing
/plugin install @claude-skills/api-error-handling
/plugin install @claude-skills/auto-animate
# ... repeated for every single plugin

Proposed Solution

Extend /plugin install with new flags that enable batch installation — either installing every plugin in a marketplace at once, or installing a user-defined subset by name.

Two syntax variants are proposed below. Both share the same core concepts but differ in how the marketplace is referenced.

---

Shared Concepts

Marketplace ID Formats

The <marketplace-id> argument identifies a registered marketplace and accepts two formats:

| Format | Example | Description |
|---|---|---|
| @marketplace-name | @claude-skills | Short alias assigned when the marketplace was added |
| github-user/repo | secondsky/claude-skills | Direct GitHub owner/repository reference |

Both formats are fully interchangeable in all commands below.

Scope

The optional --scope flag controls where plugins are installed:

| Value | Description |
|---|---|
| user | Available across all projects for the current user (default) |
| project | Available to all users within the current project |
| local | Available only in the current working directory |

If --scope is omitted, it defaults to user.

Batch Flags

| Flag | Behavior |
|---|---|
| --all | Installs every plugin in the specified marketplace |
| --everything | Synonym for --all — identical behavior, user preference |
| --plugins | Installs a specific subset of plugins, followed by a space-separated list of plugin names |

--all, --everything, and --plugins are mutually exclusive — exactly one must be specified per command.

---

Variant 1 — Positional Marketplace ID

Syntax

/plugin install <marketplace-id> <--all | --everything | --plugins <name ...>> [--scope <user | project | local>]

The <marketplace-id> is provided as a positional argument immediately after install.

Install All Plugins

# Prerequisite: register the marketplace
/plugin marketplace add https://github.com/secondsky/claude-skills

# Using @marketplace-name format
/plugin install @claude-skills --all --scope user
/plugin install @claude-skills --all --scope project
/plugin install @claude-skills --all --scope local
/plugin install @claude-skills --all                    # scope defaults to user

# Using github-user/repo format
/plugin install secondsky/claude-skills --all --scope user
/plugin install secondsky/claude-skills --all --scope project
/plugin install secondsky/claude-skills --all --scope local
/plugin install secondsky/claude-skills --all           # scope defaults to user

# Using --everything (synonym for --all)
/plugin install @claude-skills --everything --scope user
/plugin install secondsky/claude-skills --everything    # scope defaults to user

Install Specific Plugins

# Select specific plugins by name with @marketplace-name format
/plugin install @claude-skills --plugins api-authentication api-contract-testing api-error-handling auto-animate base-ui-react better-auth --scope user

# Same command with --scope omitted (defaults to user)
/plugin install @claude-skills --plugins api-authentication api-contract-testing api-error-handling auto-animate base-ui-react better-auth

# Using github-user/repo format
/plugin install secondsky/claude-skills --plugins api-authentication api-contract-testing api-error-handling auto-animate base-ui-react better-auth --scope project
Note: Every name in the --plugins list must correspond to a valid plugin in the specified marketplace. Invalid names should produce a clear error identifying which plugin(s) were not found.

---

Variant 2 — Explicit --marketplace Flag

Syntax

/plugin install --marketplace <marketplace-id> <--all | --everything | --plugins <name ...>> [--scope <user | project | local>]

This variant introduces a required --marketplace flag that explicitly precedes the <marketplace-id> value, rather than relying on positional parsing. All other behavior is identical to Variant 1.

Install All Plugins

# Prerequisite: register the marketplace
/plugin marketplace add https://github.com/secondsky/claude-skills

# Using @marketplace-name format
/plugin install --marketplace @claude-skills --all --scope user
/plugin install --marketplace @claude-skills --all --scope project
/plugin install --marketplace @claude-skills --all --scope local
/plugin install --marketplace @claude-skills --all      # scope defaults to user

# Using github-user/repo format
/plugin install --marketplace secondsky/claude-skills --all --scope user
/plugin install --marketplace secondsky/claude-skills --all --scope project
/plugin install --marketplace secondsky/claude-skills --all --scope local
/plugin install --marketplace secondsky/claude-skills --all  # scope defaults to user

# Using --everything (synonym for --all)
/plugin install --marketplace @claude-skills --everything --scope user
/plugin install --marketplace secondsky/claude-skills --everything  # scope defaults to user

Install Specific Plugins

# Select specific plugins by name
/plugin install --marketplace @claude-skills --plugins api-authentication api-contract-testing api-error-handling auto-animate base-ui-react better-auth --scope user

# Using github-user/repo format, scope defaults to user
/plugin install --marketplace secondsky/claude-skills --plugins api-authentication api-contract-testing api-error-handling auto-animate base-ui-react better-auth

---

Variant Comparison

| Aspect | Variant 1 (Positional) | Variant 2 (--marketplace flag) |
|---|---|---|
| Syntax style | install @name --all | install --marketplace @name --all |
| Pros | Shorter, feels natural for CLI users | Explicit, avoids ambiguity with existing positional args |
| Cons | Could conflict if install already uses positional args | Slightly more verbose |
| Best fit | CLIs that favor brevity | CLIs that favor explicit named parameters |

---

Summary

This proposal adds three new flags (--all, --everything, --plugins) to /plugin install that eliminate the need to run one command per plugin. The change is fully backward-compatible — existing single-plugin install commands remain unaffected. Two syntax variants are offered for consideration; either achieves the same goal of making batch installation straightforward.

Alternative Solutions

I will be rolling my own CLI tool using Powershell for this if it doesn't get implemented, but I really don't want to. I am really hoping the Anthropics Team is capable of implementing this functionality.

Another (non-ideal) solution would be to make plugin installs easy to automate by simply copying a plugin directory to a global path within ~/.claude. My current ~/.claude/plugins directory contains:

.install-manifests
cache
data
marketplaces
blocklist.json
install-counts-cache.json
installed_plugins.json
known_marketplaces.json

Could we add a directory that allows for dropping in plugin folders (obtained directly from cloning a marketplace's Git repository)?

This is the same way skills are handled. You can just drop symlinks of a skill folder into the ~/.claude/skills directory and everything works out of the box.

I don't know if the above is even possible but I'm grasping at straws here. This would of course not be ideal since it would make fetching updated versions of plugins a nightmare, but it's better than the options we have now.

Priority

High - Significant impact on productivity

Feature Category

CLI commands and flags

Use Case Example

Example Scenario:

  1. I am working on a design system and implementing that design system across the full development lifecycle of a modern React web app. This includes auth, database design, database optimization, design system design, design system tokens, etc.
  2. I've narrowed my search of plugins to a list of 3-4 marketplaces, audited them for security, and want to install all relevant plugins globally for future use
  3. Find out I need to install 20-40 plugins to fully leverage the plugin ecosystem surrounding this task
  4. Cry when I need to keep copy pasting /plugin install ... commands for each plugin in a marketplace

Additional Context

Please, either directly implement this feature, or make creating an automated solution to install multiple plugins easy to automate. It would really help a lot of developers.

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗