#031

Claude Code Plugins: Nothing New — Just Packaging What You Already Know

A Claude Code plugin isn't anything new. It's packaging skills, subagents, hooks, and MCP into a shareable format with a single command.

TL;DR A Claude Code plugin isn't a new technology. It's a directory that bundles skills, subagents, hooks, MCP servers, and settings — everything you already know — into an installable, shareable format with a single command.

If you see "plugins" and think "another thing to learn," relax. There's no new API, no new syntax, no new concept. A plugin is literally your .claude/ directory packaged up: the same skills, the same agents, the same hooks. The difference is you can now share it with your team or the community via /plugin install.

Think of it as a package.json for Claude Code configuration: a manifest declaring what's inside and a directory structure that Claude Code knows how to read.

Result — a plugin's structure:

my-plugin/
├── .claude-plugin/
│   └── plugin.json          # Manifest: name, version, description
├── skills/
│   └── code-review/
│       └── SKILL.md          # Skill with its prompt
├── agents/
│   └── reviewer.md           # Custom subagent
├── hooks/
│   └── hooks.json            # Lifecycle hooks
├── .mcp.json                 # MCP servers
└── settings.json             # Default settings

How to use it

1. Install an existing plugin

/plugin install code-review@claude-plugins-official

Anthropic's official marketplace is claude-plugins-official. Teams can create their own.

2. Create a plugin from scratch

mkdir -p my-plugin/.claude-plugin
// my-plugin/.claude-plugin/plugin.json
{
  "name": "my-plugin",
  "description": "My team workflows packaged up",
  "version": "1.0.0"
}

Add skills in skills/, agents in agents/, hooks in hooks/hooks.json. Same syntax you already use in .claude/.

3. Test locally

claude --plugin-dir ./my-plugin

Skills appear namespaced: /my-plugin:skill-name.

4. Convert existing configuration to a plugin

If you already have skills and hooks in .claude/, it's copy and paste:

cp -r .claude/commands my-plugin/
cp -r .claude/agents my-plugin/
cp -r .claude/skills my-plugin/

Reference

Component Plugin location Standalone equivalent
Skills skills/ .claude/skills/
Subagents agents/ .claude/agents/
Hooks hooks/hooks.json settings.jsonhooks
MCP servers .mcp.json Project .mcp.json
Settings settings.json .claude/settings.json
Manifest .claude-plugin/plugin.json Doesn't exist — this is the new part
Aspect Detail
Install /plugin install name@marketplace
Test locally claude --plugin-dir ./path
Reload /reload-plugins (no restart needed)
Namespace /plugin-name:skill
Versioning Semver in plugin.json

Official docs: Create plugins

Get only what matters

If I have nothing worth saying, you won't hear from me. When I do, you'll be the first to know. 7,000+ professionals already trust this.

Are you a professional Web developer?
No

Unsubscribe at any time.