Mascot Logo
ai-agents-tutorial

Part 2 · Lesson 10 of 16

How Claude Code Plugins Bundle Your Commands, Skills, and Hooks

Install a plugin. See how it bundles commands + skills + hooks.

10 min

Step 1 of 5 · What are plugins?

As your agentic development needs grow, managing individual custom commands, skills, and hooks in separate folders can become disorganized.

A plugin solves this by bundling your skills, hooks, and configuration together into a single, cohesive, and easily shareable package. Think of a plugin as a complete application or extension that you can drop into any workspace to instantly upgrade Claude Code.

Step 2 of 5 · The plugin directory structure

A typical Claude Code plugin directory structure looks like this:

my-awesome-plugin/
├── .claude-plugin/      <-- Metadata directory
│   └── plugin.json      <-- The manifest lives here
├── skills/              <-- Custom skills folders
│   └── code-auditor/
│       └── SKILL.md
└── hooks/               <-- Automation scripts
    └── hooks.json

The heart of the plugin is .claude-plugin/plugin.json. It carries the plugin's metadata, while the agent auto-discovers the skills, hooks, and other components from their directories at the plugin root.

Step 3 of 5 · The plugin.json file

Let's examine how plugin.json works. The manifest holds metadata — the name, version, and description. The name is the only required field, and it becomes the namespace prefix for every component the plugin ships:

{
  "name": "developer-toolkit",
  "version": "1.0.0",
  "description": "Premium coding utilities for Claude Code."
}

You don't list each skill in the manifest. Claude Code auto-discovers components from their default directories: a skill folder at skills/code-auditor/SKILL.md is found automatically and exposed as the namespaced skill /developer-toolkit:code-auditor. The folder name becomes the skill name, and the manifest's name becomes the prefix.

Step 4 of 5 · Installing and sharing plugins

To test a local plugin during development, launch Claude Code with the --plugin-dir flag pointing at the plugin directory. To share plugins for everyday use, you distribute them through a marketplace and install with the /plugin command (or claude plugin install), which registers the plugin in your settings.

This makes it extremely easy to:

  • Share custom agent behaviors across your engineering team.
  • Standardize code quality checks across different microservice repos.
  • Build tailored assistants for proprietary internal frameworks.

Step 5 of 5 · Checkpoint & Recap

Recap

  • Plugins: Cohesive packages that bundle commands, skills, and hooks.
  • plugin.json: The core manifest file that registers and coordinates all tools within the plugin.
  • Portability: Plugins make it easy to copy, distribute, and standardize AI agent workflows across projects and teams.