How Do I Install and Publish Claude Code Plugins from the Marketplace?

Claude Code plugins are how the community ships reusable Skills, MCPs, hooks, and agents as installable packages. If you've been copy-pasting Skills between projects or manually cloning other people's MCP setups, you're doing it the hard way. Here's how to install plugins from the marketplace, write your own, and publish it so other people can use it too.
Why this matters
Early Claude Code users each built their own Skills and MCPs from scratch. Useful, but redundant — five people building the same "generate-a-changelog" Skill. Plugins turn that into a marketplace: I write a plugin once, you install it with one command, your Claude Code session now has my Skill, MCP, and hooks.
The shift in your workflow: instead of writing every SOP and integration by hand, you start by asking "does a plugin already do this?" Often yes, and the community-maintained versions are stronger than the weekend hack you'd ship on your own.
Before you start
You need:
- Claude Code 1.5+ (plugin support landed here). Check with
claude --version. - A GitHub account — the default marketplace is GitHub-based, and publishing requires it.
- Git installed and working.
- One pain point you want a plugin for. The guide is more concrete with a real goal. Mine is usually "I want a /changelog command that writes a release note from git diff."
Step 1: Find the marketplace list
Claude Code looks for plugins in registered marketplace sources. The official one:
claude plugin marketplace add anthropics/claude-code-pluginsThat registers the Anthropic-maintained catalog. Other community marketplaces exist — add them the same way when you trust the maintainer.
List what's in registered marketplaces:
claude plugin searchYou'll see entries like changelog-generator, commit-message-writer, postgres-mcp, etc. Each entry has a short description and an install command.
Step 2: Install a plugin
claude plugin install changelog-generatorClaude Code clones the plugin repo into ~/.claude/plugins/<name>/ and merges it into your active configuration:
- Skills show up with
/commands. - MCPs get registered in your
mcp-config.json. - Hooks activate in your current projects.
List installed plugins:
claude plugin listUninstall any time:
claude plugin remove changelog-generatorNo lock-in. Plugin files are just markdown and TypeScript you can inspect.
Step 3: Use the plugin
Open Claude Code in a project. Run the command the plugin exposes — e.g., /changelog. Claude invokes the plugin's Skill, which has its own SKILL.md describing what it does.
Treat the first run as a test. Plugins from unknown authors can write files, run scripts, and call MCPs you didn't install directly. Read the plugin's SKILL.md before you trust it with your codebase.
Step 4: Write your own plugin
Now flip it — you've got a Skill you use every day and you want to ship it as a plugin.
Create a new repo:
mkdir my-claude-plugin && cd my-claude-plugin
git initThe plugin structure:
my-claude-plugin/
├── plugin.json
├── README.md
├── skills/
│ └── my-skill/
│ └── SKILL.md
├── hooks/
│ └── pre-commit.sh # optional
└── mcp/
└── server.config.json # optionalplugin.json is the manifest:
{
"name": "my-skill-pack",
"version": "0.1.0",
"description": "One-line description of what this plugin does.",
"author": "your-github-username",
"skills": ["skills/my-skill"],
"hooks": [],
"mcp": []
}Drop your SKILL.md file from the Skills guide into skills/my-skill/. That's it — a minimum viable plugin.
Step 5: Test locally before publishing
You can install a local plugin by path, no need to push first:
claude plugin install /absolute/path/to/my-claude-pluginRun the Skill it exposes. Iterate on SKILL.md until it behaves correctly. Uninstall and reinstall as needed.
This is the single most-skipped step when people publish plugins. The Claude Code plugin-marketplace ecosystem has a lot of plugins that work on the author's machine and not on yours. Test in a fresh project, as a new user would.
Step 6: Publish to GitHub and add to a marketplace
Commit everything, push to GitHub, make the repo public:
git add -A
git commit -m "Initial plugin release"
git remote add origin [email protected]:yourname/my-claude-plugin.git
git push -u origin mainAnyone can now install it with:
claude plugin install yourname/my-claude-pluginTo get it into the Anthropic marketplace catalog, open a PR to anthropics/claude-code-plugins adding your plugin to the registry. The CONTRIBUTING guide in that repo covers the current submission format and quality bar.
For community marketplaces or private org registries, follow the maintainer's submission flow — usually a PR to a YAML index file.
Verify it worked
1. The plugin installs cleanly in a fresh machine. Ask a teammate to install your plugin. If it works there, it works.
2. Uninstall and reinstall leaves no cruft. claude plugin remove, then check ~/.claude/plugins/ — your plugin's folder should be gone.
3. Installed plugins are discoverable. claude plugin list shows your plugin with correct name and version.
Where this breaks
- Plugin name collisions. Two plugins can both ship a
/commitSkill; the later one wins silently. Check existing plugins before naming yours. - Hook plugins that fire on every commit. A plugin that adds a pre-commit hook can slow down every git operation in every project. Review hook plugins' scripts before installing, and scope hooks to specific project types.
- MCPs that require secrets. A plugin that bundles an MCP server often needs an API key. The plugin won't ship your key for you — read the README to see what env vars you need to set before the MCP works.
- Version pinning. Plugins evolve, breaking changes happen. Pin the version in your team's CLAUDE.md or plugin-lock file so everyone runs the same version:
claude plugin install [email protected]. - Plugins with network access you didn't expect. A plugin's MCP can phone home. Inspect the plugin's MCP server config before trusting it with your codebase. For sensitive work, prefer local-only Skills over plugins that include MCPs.
What to try next
- How Do I Build a Claude Code Skill Army That Replaces My Checklist of Prompts? — Skills are the core building block of most plugins.
- How Do I Set Up Claude Code Hooks for Auto-Quality? — hooks are the other major plugin component.
- How Do I Package a Team SOP as a Claude Skill Anyone Can Run? — great precursor; the SOP you codify there is the obvious first plugin to publish.
Let's talk about your AI + SEO stack
If you'd rather skip the how-to and have it shipped for you, that's what I do. Start a conversation and we'll figure out the fastest path to results.
Let's Talk