CLAUDE LABJP
RUNNER — claude self-hosted-runner turns your own machines or containers into a place web, mobile, and desktop sessions can run, on Team and Enterprise plansPLUGIN — Plugins can now be installed from a zip over HTTPS, with no git or npm required and optional SHA-256 pinningBEDROCK — ANTHROPIC_BEDROCK_REGION_PREFIX lets Bedrock prefer a specific cross-region inference profile instead of the one derived from AWS_REGIONSTATUS — Sessions waiting on a sandbox, MCP input, or managed-settings prompt now read as Needs input rather than WorkingDLP — Inference Hooks are in beta for Enterprise. Prompts route to your own security server for an allow or deny verdict, typically within five seconds, before the model sees themWORKBENCH — The legacy Workbench and experimental prompt tools API retire on August 17, and Sonnet 5 promotional pricing runs through August 31RUNNER — claude self-hosted-runner turns your own machines or containers into a place web, mobile, and desktop sessions can run, on Team and Enterprise plansPLUGIN — Plugins can now be installed from a zip over HTTPS, with no git or npm required and optional SHA-256 pinningBEDROCK — ANTHROPIC_BEDROCK_REGION_PREFIX lets Bedrock prefer a specific cross-region inference profile instead of the one derived from AWS_REGIONSTATUS — Sessions waiting on a sandbox, MCP input, or managed-settings prompt now read as Needs input rather than WorkingDLP — Inference Hooks are in beta for Enterprise. Prompts route to your own security server for an allow or deny verdict, typically within five seconds, before the model sees themWORKBENCH — The legacy Workbench and experimental prompt tools API retire on August 17, and Sonnet 5 promotional pricing runs through August 31
Articles/Claude Code
Claude Code/2026-06-14Intermediate

Finding and Installing Claude Code Plugins from a Marketplace — Read What's Inside Before You Trust It

A practical walkthrough for discovering and installing Claude Code plugins from a marketplace. Beyond the /plugin commands, it covers how to read the bundled contents before you install, and how to choose between User and Project scope.

Claude Code213PluginsMarketplaceSkills7MCP50

As an indie developer moving between several repositories all day, you start to notice that you keep rebuilding the same slash commands and the same MCP setup for each project. For me, the push to take plugins seriously came one morning when I opened a fresh working folder and sighed, "this configuration again." That was the moment I stopped copying snippets around by hand.

A Claude Code plugin bundles extensions — skills, slash commands, MCP servers, and hooks — into a single package you can add or remove with just the /plugin command. Because plugins are distributed through marketplaces, installing one feels like borrowing a setup someone else already polished. The flip side of that convenience is a real trap: it's easy to install something without knowing what's actually inside. So this is both a walkthrough of finding and installing plugins and a note on the check I always run before I press install.

Add a marketplace and browse the shelf

Plugins are distributed in units called marketplaces. Start by adding the official one.

# Run this inside a Claude Code session
/plugin marketplace add anthropics/claude-code

Passing a GitHub owner/repo like anthropics/claude-code pulls in the marketplace catalog from that repository. You can also point to a Git URL or to a private repo you host internally.

Once it's added, running /plugin with no arguments opens the browser. It has three tabs, so it's hard to get lost.

  • Installed: the plugins you currently have
  • Discover: plugins available from your connected marketplaces
  • Marketplaces: which marketplaces you're connected to

I'd recommend lingering on the Discover tab at first. Commit helpers, review automation, framework-specific skill sets — just reading the names gives you ideas about which parts of your manual routine you could hand off.

Read the bundle before you install

This is the part I most want to pass along. A plugin isn't just a snippet — it can carry skills, slash commands, MCP servers, and hooks all at once. So what looks like adding a single command can also pull in an MCP server that connects to an external service, or a hook that fires around your file operations.

When I find a promising plugin, I open its repository and look it over with my own eyes before pressing install. Concretely, I read it in this order.

  1. plugin.json (the manifest): which components it declares. If there's an mcpServers entry, that's a sign external connections are involved.
  2. Whether there's a hooks/ directory: hooks fire without you calling them explicitly. I always check which event triggers them and what they run.
  3. Each skill's SKILL.md: the fastest way to learn what an extension actually does is to read the body, not the summary line.

The official docs also encourage choosing plugins from authors you trust. Even when it looks like adding one command, the surface area of permissions genuinely grows. Making "read it, then install it" a small habit saves you from hunting later for "what was this thing again?"

Installing itself is a single command.

# Specify plugin-name@marketplace-name
/plugin install commit-commands@anthropics-claude-code

Selecting it from the Discover tab in the browser does the same thing.

Choose between User and Project scope

At install time, you pick the scope — how widely the plugin applies. Being deliberate here avoids the later mismatch where "it works in my environment but a teammate doesn't have it."

  • User scope installs to ~/.claude/ and applies across all your projects. It suits general-purpose tools you use everywhere, like commit-message formatting.
  • Project scope installs to the working repository's .claude/ and stays limited to that project. Commit the config to the repo, and the whole team shares the same extension.

In my own setup, anything that belongs to my personal habits goes to User, and anything that belongs to a project's conventions goes to Project. Rules like review criteria or quality gates — "in this repo, we do it this way" — go in Project scope and ship with the repository, so a new contributor's environment boots up with the same conventions already in place. This way of thinking is continuous with how you organize your own commands. Reading Claude Code Custom Slash Commands — Build Your Own Commands to Supercharge Team Workflows alongside this makes it easier to judge what to keep at User scope and what to keep at Project scope.

Keep one marketplace of your own

After a while, your interest naturally shifts from "borrowing public plugins" to "bundling and distributing my own setup." A marketplace isn't a special server — it's just a Git repository with a defined structure. Collect the slash commands and skills you kept rebuilding into one repository, make it addable via /plugin marketplace add, and spinning up a new environment becomes remarkably light.

Here too, the more you hand something to others, the more responsibility comes with what permissions it carries. If you include an MCP server, state where it connects; if you add a hook, document its trigger in the README. Becoming the distributor flips the earlier "read it, then install it" into "write it down, then ship it." If you're aiming at unattended execution, the permission-design thinking in Designing Claude Code Skills That Actually Run Unattended — Three Patterns to Avoid Permission-Dialog Stalls carries straight over to plugin distribution.

Start by adding one official marketplace, browse the Discover tab, and open the repository of any plugin that catches your eye. There's plenty of time to press install after you've read what's inside once. Thank you for reading.

Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

If you found this article helpful, a small tip ($1.50) would mean a lot to us. Your support helps keep this site ad-free and covers server and hosting costs.

Related Articles

Claude Code2026-07-29
The MCP Server Connects Fine and Still Hands Back Zero Tools — Catching Silent Capability Drift with a Tool Manifest Diff
A missing credential does not break the MCP handshake. initialize succeeds, tools/list succeeds, and the array comes back empty. Here is the measured behaviour, and a preflight that locks the expected tool surface and fails closed before the agent ever starts.
Claude Code2026-07-27
Whose Environment Expands That Variable? Fingerprinting Your Effective Managed MCP Policy
Variable references in the Managed MCP allowlist and denylist now resolve from the startup environment and the managed-settings env block. I rebuilt both resolution orders locally to see where verdicts diverge, then wrote a preflight check that reduces the effective policy to a comparable fingerprint.
Claude Code2026-07-18
The MCP Server I Declared Vanished from the List — Designing Config for a Namespace You Share with the Vendor
When a vendor reserves an MCP server name, your .mcp.json declaration goes quiet instead of failing. Here is the preflight check and prefix convention I use to turn that silent gap into a loud stop before an unattended run.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →