Claude Code/ Plugins

Introduction to Claude Plugins

Install a plugin and Claude Code immediately gains new skills, live connections to external services, and custom behaviour β€” all bundled in a single folder you can version and share.

🧩 Skills+πŸ”— Connectors+⚑ Commands=Plugin

What is a Claude Plugin?

A plugin is a shareable folder that extends Claude Code with new capabilities. Think of it as an app you install for Claude β€” once installed, it immediately knows new skills, can talk to external services, and behaves differently from the default assistant.

Without a Plugin
  • Claude has only built-in capabilities
  • No access to your tools (GitHub, Slack…)
  • Generic responses, no team context
  • Config lives in one project only
With a Plugin
  • New skills instantly available on install
  • Live connections to external services
  • Behaves like a trained team assistant
  • Shareable and reusable across projects

The three building blocks

A plugin can contain one, two, or all three of the following. You only include what your workflow actually needs.

🧩
Skills
Saved instruction sets Claude invokes by name. Each skill is a Markdown file. Once installed, you call it as a namespaced slash command:
$ /code-review-plugin:review src/api/users.ts
πŸ”—
Connectors
MCP servers bundled inside the plugin that link Claude to external services β€” GitHub, Notion, Slack, databases β€” so Claude can read and act in real time without any extra setup.
$ # plugin reads from your Notion workspace automatically
⚑
Commands
Simple slash-command scripts (the original format). Faster to write than a full skill, good for short, single-purpose actions like running a linter or formatting a file.
$ /my-plugin:lint --fix

Plugin folder structure

The only required file is .claude-plugin/plugin.json. All other directories are optional β€” add only what your plugin uses.

code-review-plugin/β€” plugin root
β”œβ”€β”€ .claude-plugin/
β”‚ β”œβ”€β”€ plugin.jsonβ€” manifest (required)
β”œβ”€β”€ skills/
β”‚ β”œβ”€β”€ review/
β”‚ β”‚ └── SKILL.mdβ€” skill instructions
β”œβ”€β”€ agents/β€” optional
β”œβ”€β”€ hooks/β€” optional
β”œβ”€β”€ .mcp.jsonβ€” optional connectors
Important: Only plugin.json lives inside .claude-plugin/. The skills/, agents/, and hooks/ directories must be at the plugin root β€” not inside .claude-plugin/.

Build a minimal plugin β€” step by step

Let's create a plugin that adds a /code-review-plugin:review skill to Claude Code. Three files, five minutes.

1
Create the plugin manifest
πŸ“„ code-review-plugin/.claude-plugin/plugin.json
{
  "name": "code-review-plugin",
  "description": "Structured code reviews for TypeScript projects",
  "version": "1.0.0",
  "author": { "name": "Your Name" }
}
2
Write the skill instructions
πŸ“„ code-review-plugin/skills/review/SKILL.md
---
description: Reviews a file for best practices, security, and code quality.
---

Review the file at "$ARGUMENTS". Check for:
1. Input validation and security issues
2. Error handling completeness
3. Code readability and organisation
4. Obvious bugs or edge cases

Format your response as [OK], [WARN], and [ERROR] findings.
3
Load and run in Claude Code
Terminal
$ claude --plugin-dir ./code-review-plugin
Loading plugin: code-review-plugin v1.0.0
Skills registered: /code-review-plugin:review
βœ“ Plugin loaded
$ /code-review-plugin:review src/api/users.ts
[WARN] Line 42 β€” missing input validation on req.body.email
[WARN] Line 67 β€” stack trace exposed in error response
[OK]Β Β  Line 18 β€” pagination implemented correctly
[OK]Β Β  Line 55 β€” auth middleware applied
2 warnings Β· 2 passing

Plugin lifecycle

From first write to sharing with your team, here is the typical flow:

πŸ“
Create
Write plugin.json + skills/
β†’
πŸ“¦
Install
claude --plugin-dir ./my-plugin
β†’
πŸš€
Use
/plugin-name:skill-name args
β†’
πŸ”„
Iterate
/reload-plugins after changes
β†’
🀝
Share
Push to Git or publish to marketplace

Plugin vs standalone configuration

Claude Code also supports adding skills and commands directly in .claude/ without making a plugin. Use that for quick personal work β€” graduate to a plugin when you want to share.

FeatureStandalone .claude/Plugin
File location.claude/commands/plugin-name/.claude-plugin/ + skills/
Skill names/review (no prefix)/my-plugin:review (namespaced)
ScopeOne projectAny project after install
SharingCopy-paste files manually/plugin install or --plugin-dir
VersioningNot versionedplugin.json + Git
DistributionCannot distributeTeam repo or public marketplace
Best forQuick personal experimentsReusable team workflows
Tip: Start in .claude/commands/ for fast iteration. When ready to share, move the files into a plugin directory and add a plugin.json β€” that's the whole migration.
Key takeaways:
  • A plugin is a folder with a plugin.json manifest β€” that is the only required file.
  • It bundles Skills (instruction files), Connectors (MCP servers), and Commands (scripts) in any combination.
  • Install locally with --plugin-dir, share via Git, or publish to the marketplace.
  • Skills are namespaced β€” /plugin-name:skill-name β€” so they never clash with other plugins.

What's Next

Plugins covered. Up next: Claude Cowork β€” the mode where Claude runs multi-step tasks autonomously inside Claude Desktop.