developing-claude-code-plugins

Build, test, and distribute Claude Code plugins with slash commands, agents, skills, hooks, MCP servers, and LSP servers. MUST be loaded when creating, reviewing, debugging, or distributing plugins. Use PROACTIVELY when user mentions plugins, extensions, marketplaces, or wants to add custom commands/agents to Claude Code.

16 stars

Best use case

developing-claude-code-plugins is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Build, test, and distribute Claude Code plugins with slash commands, agents, skills, hooks, MCP servers, and LSP servers. MUST be loaded when creating, reviewing, debugging, or distributing plugins. Use PROACTIVELY when user mentions plugins, extensions, marketplaces, or wants to add custom commands/agents to Claude Code.

Teams using developing-claude-code-plugins should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/developing-claude-code-plugins/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/tools/developing-claude-code-plugins/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/developing-claude-code-plugins/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How developing-claude-code-plugins Compares

Feature / Agentdeveloping-claude-code-pluginsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Build, test, and distribute Claude Code plugins with slash commands, agents, skills, hooks, MCP servers, and LSP servers. MUST be loaded when creating, reviewing, debugging, or distributing plugins. Use PROACTIVELY when user mentions plugins, extensions, marketplaces, or wants to add custom commands/agents to Claude Code.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

<essential_principles>
Plugins extend Claude Code with reusable functionality: custom slash commands, agents, skills, hooks, MCP servers, and LSP servers. Unlike standalone `.claude/` configurations, plugins are namespaced, versioned, and distributable through marketplaces.

**1. Plugin Structure Is Sacred**

```
my-plugin/
├── .claude-plugin/
│   └── plugin.json          # ONLY manifest here (required)
├── commands/                 # Slash commands (plugin root)
├── agents/                   # Subagent definitions (plugin root)
├── skills/                   # Agent Skills (plugin root)
├── hooks/
│   └── hooks.json           # Event handlers (plugin root)
├── .mcp.json                # MCP server configs (plugin root)
└── .lsp.json                # LSP server configs (plugin root)
```

**CRITICAL**: Never put commands/, agents/, skills/, or hooks/ inside `.claude-plugin/`. Only `plugin.json` goes there.

**2. Namespacing Prevents Conflicts**

Plugin commands use format `/plugin-name:command-name`. The `name` field in plugin.json becomes the namespace prefix. Choose names carefully - they're public-facing.

**3. Use `${CLAUDE_PLUGIN_ROOT}` for Paths**

All paths in hooks, MCP servers, and scripts must use `${CLAUDE_PLUGIN_ROOT}` to reference plugin files. Plugins are copied to a cache directory, so relative paths like `../` won't work.

**4. Test with `--plugin-dir` During Development**

```bash
claude --plugin-dir ./my-plugin
```

This loads your plugin without installation. Restart Claude Code after changes.

</essential_principles>

<intake>
**What would you like to do?**

1. Create a new plugin
2. Add a component (command, agent, skill, hook, MCP, LSP)
3. Test or debug a plugin
4. Create a marketplace for distribution
5. Something else

**Wait for response before proceeding.**
</intake>

<routing>
| Response | Workflow |
|----------|----------|
| 1, "new", "create", "build", "start", "plugin" | `workflows/create-plugin.md` |
| 2, "add", "component", "command", "agent", "skill", "hook", "mcp", "lsp" | `workflows/add-component.md` |
| 3, "test", "debug", "fix", "error", "not working", "broken" | `workflows/test-debug-plugin.md` |
| 4, "marketplace", "distribute", "share", "publish" | `workflows/create-marketplace.md` |
| 5, other | Clarify intent, then route to appropriate workflow |

**After reading the workflow, follow it exactly.**
</routing>

<verification_loop>
**After Every Change:**

1. Validate plugin structure:
```bash
claude plugin validate ./my-plugin
```

2. Test plugin loads:
```bash
claude --plugin-dir ./my-plugin
```

3. Verify components appear:
- Commands: `/help` shows plugin commands
- Agents: `/agents` lists plugin agents
- MCP: `/mcp` shows server status

Report to user:
- "Plugin validates: ✓"
- "Commands registered: X"
- "Ready for testing"
</verification_loop>

<reference_index>
All in `references/`:

**Structure:** plugin-structure.md
**Components:** commands.md, agents.md, skills.md, hooks.md, mcp-lsp.md
**Distribution:** marketplace.md
**Issues:** troubleshooting.md
</reference_index>

<workflows_index>
All in `workflows/`:

| Workflow | Purpose |
|----------|---------|
| create-plugin.md | Create new plugin from scratch |
| add-component.md | Add command, agent, skill, hook, MCP, or LSP |
| test-debug-plugin.md | Test locally and fix issues |
| create-marketplace.md | Create and host plugin marketplace |
</workflows_index>

<success_criteria>
A well-built plugin:
- Has valid plugin.json manifest in `.claude-plugin/`
- Components are in correct directories (commands/, agents/, skills/, hooks/)
- All paths use `${CLAUDE_PLUGIN_ROOT}` variable
- Passes `claude plugin validate`
- Loads correctly with `--plugin-dir`
- Commands appear in `/help` output
</success_criteria>

Related Skills

developing-skills

16
from diegosouzapw/awesome-omni-skill

MUST be loaded before working with any Skill. Covers creating, building, reviewing, assessing, checking, auditing, evaluating, updating, modifying, and improving skills. Invoke PROACTIVELY before writing or changing any SKILL.md file. Provides structure, workflows, and validation for skill development. Supports both personal skills and standalone distributable skills (GitHub repos). (user)

claude-skill-creator

16
from diegosouzapw/awesome-omni-skill

Guide for creating effective Claude Code skills with proper YAML frontmatter, directory structure, and best practices. Use when creating new skills, updating existing skills, or learning about skill development.

claude-settings-audit

16
from diegosouzapw/awesome-omni-skill

Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing existing settings, or determining which read-only bash commands to allow. Detects tech stack, build tools, and monorepo structure.

claude-plan

16
from diegosouzapw/awesome-omni-skill

Anthropic 風格的專業計畫管理 Skill - 自然語言驅動、預設並行、全自動 GitHub 整合

claude-md-editor

16
from diegosouzapw/awesome-omni-skill

Edit and maintain CLAUDE.md and project documentation files. Use when modifying documentation, asking about best practices, or performing documentation maintenance tasks.

claude-improve-config

16
from diegosouzapw/awesome-omni-skill

Self-reflect on the current session to identify mistakes and propose improvements to .claude configuration (CLAUDE.md, hooks, skills).

claude-hooks-reference-2026

16
from diegosouzapw/awesome-omni-skill

Complete reference for Claude Code hooks system (January 2026). Use when creating hooks, understanding hook events, matchers, exit codes, JSON output control, environment variables, plugin hooks, or implementing hook scripts.

claude-ecosystem

16
from diegosouzapw/awesome-omni-skill

Claude Code ecosystem expertise. Modules: CLI tool (setup, slash commands, MCP servers, hooks, plugins, CI/CD), extensibility (agents, skills, output styles creation), CLAUDE.md (project instructions, optimization). Actions: configure, troubleshoot, create, deploy, integrate, optimize Claude Code. Keywords: Claude Code, Anthropic, CLI tool, slash command, MCP server, Agent Skill, hook, plugin, CI/CD, enterprise, CLAUDE.md, agentic coding, agent, skill, output-style, SKILL.md, subagent, Task tool, project instructions, token optimization. Use when: learning Claude Code features, configuring settings, creating skills/agents/hooks, setting up MCP servers, troubleshooting issues, CI/CD integration, initializing or optimizing CLAUDE.md files.

claude-code

16
from diegosouzapw/awesome-omni-skill

Claude Code CLI and development environment. Use for Claude Code features, tools, workflows, MCP integration, configuration, and AI-assisted development.

claude-code-slash-commands

16
from diegosouzapw/awesome-omni-skill

This skill should be used when the user asks to "create a command", "write a slash command", "build a plugin command", or wants to add custom commands to Claude Code.

claude-code-meta

16
from diegosouzapw/awesome-omni-skill

Build Claude Code extensions - skills, agents, hooks, plugins, marketplaces, slash commands. Use when creating Claude Code components, building new skills, writing agents, creating hooks, making plugins, setting up marketplaces, writing slash commands, fixing extension configurations, or troubleshooting Claude Code extensions. Includes builder agents for autonomous creation. Not for looking up docs - use claude-code-docs-reference for that.

claude-code-analyzer

16
from diegosouzapw/awesome-omni-skill

Analyzes Claude Code usage patterns and provides comprehensive recommendations. Runs usage analysis, discovers GitHub community resources, suggests CLAUDE.md improvements, and fetches latest docs on-demand. Use when user wants to optimize their Claude Code workflow, create configurations (agents/skills/commands), or set up project documentation.