Plugin Structure

Standardizes Claude Code plugin structure with manifest guidance and auto discovery rules.

6|Updated Dec 11, 2025
One-click install
npx skills add https://github.com/jawhnycooke/claude-plugins --skill plugin-structure-jawhnycooke
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Plugin Structure
Source: https://github.com/jawhnycooke/claude-plugins/tree/main/plugins/plugin-dev/skills/plugin-structure
Command: npx skills add https://github.com/jawhnycooke/claude-plugins --skill plugin-structure-jawhnycooke

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and examples (resource) components.

What problem does it solve?

This Skill guides developers in structuring Claude Code plugins, ensuring they are well-organized, maintainable, scalable, and integrate seamlessly with the Claude Code environment. It eliminates guesswork in plugin architecture.

Core Features & Use Cases

  • Standardized Directory Layout: Learn the conventional structure for commands, agents, skills, and hooks, enabling automatic component discovery.
  • Manifest Configuration (plugin.json): Master the definition of plugin metadata and custom component paths for flexible organization.
  • Portable Path References: Utilize the ${CLAUDE_PLUGIN_ROOT} environment variable for all intra-plugin path references, ensuring cross-platform compatibility.
  • Use Case: When starting a new Claude plugin, use this skill to correctly set up the plugin.json and organize your commands/, agents/, and skills/ directories for optimal auto-discovery and future scalability.

Quick Start

Use the Plugin Structure skill to understand how to organize a new Claude Code plugin with commands and agents.

Frequently Asked Questions about Plugin Structure

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I organize a Claude Code plugin with the standard directory structure?

Organize your plugin with a standardized directory layout using `commands/`, `agents/`, `skills/`, and `hooks/` folders. Store plugin metadata in `.claude-plugin/plugin.json` to enable automatic component discovery and ensure your plugin integrates seamlessly with Claude Code.

What should I include in the plugin.json manifest file?

Define plugin metadata and custom component paths in `plugin.json`. Use kebab-case naming conventions and portable path references like `${CLAUDE_PLUGIN_ROOT}` for intra-plugin paths. The manifest enables flexible component organization and cross-platform compatibility.

How do I set up auto-discovery for plugin components?

Place components in conventional directories (`commands/`, `agents/`, `skills/`, `hooks/`) and configure their paths in `plugin.json`. Claude Code automatically discovers components following these patterns, eliminating manual registration and supporting both default and custom paths.

Can I use custom component paths instead of the default directory layout?

Yes. Define custom paths in `plugin.json` to organize commands, agents, skills, and hooks however you prefer. Use `${CLAUDE_PLUGIN_ROOT}` for portable path references, and Claude Code will discover components according to your configuration.

What's the best way to maintain plugin scalability as it grows?

Follow the standardized plugin structure from the start: organize components by type in dedicated directories, use `plugin.json` for clear metadata, and employ portable path variables. This foundation supports minimal, standard, and advanced plugin patterns without requiring restructuring.

Do I need to configure component discovery for skill-specific loading?

For skill-specific loading, create a `SKILL.md` file alongside your skill definition. This enables Claude Code to load skills with custom documentation and configuration, complementing the auto-discovery rules defined in your plugin manifest.