Create a Plugin with Waymaker
Learn the Waymaker plugin architecture. Build slash commands, skills, event hooks, and custom agents. Publish your plugin to the ecosystem.
Course curriculum
Plugin Architecture
Understand what plugins are, their structure, how to set up a dev environment, and scaffold your first plugin.
What Are Waymaker Plugins & Why Build One?
Plugin ecosystem, what plugins can do, examples, the developer opportunity
What Are Waymaker Plugins & Why Build One?
The Plugin Ecosystem
Waymaker plugins are modular extensions that add new capabilities to the platform. They let you customize Waymaker for specific industries, workflows, or use cases without modifying the core codebase.
What Plugins Can Do
| Capability | Description | Example |
|-----------|-------------|---------|
| Commands | Slash commands that perform actions | /deploy to trigger a deployment |
| Skills | Contextual abilities that activate on triggers | Auto-format code when saving |
| Hooks | Intercept and modify tool calls | Validate SQL before execution |
| Agents | Custom AI agents with specialized prompts | Industry-specific consultant |
| MCP Servers | Connect to external services | Pull data from Jira, Notion, etc. |
Real-World Plugin Examples
Industry Plugins:
- Legal Plugin — Contract templates, compliance checks, legal agent
- Healthcare Plugin — HIPAA compliance hooks, patient form templates
- E-commerce Plugin — Inventory commands, Shopify integration, pricing agent
- Real Estate Plugin — Listing templates, CRM integration, showing scheduler
Workflow Plugins:
- Git Workflow — Enforce branch naming, auto-commit messages
- Testing Plugin — Auto-generate tests, run test suites
- Documentation Plugin — Auto-generate docs, enforce doc standards
- Deployment Plugin — One-command deploy to multiple platforms
Tool Plugins:
- Database Admin — Schema visualization, migration helpers
- API Builder — Generate endpoints, test APIs, document routes
- Design System — Component library, style enforcement
The Developer Opportunity
Building plugins lets you:
- Customize Waymaker for your specific workflow
- Share with community — Help other builders
- Monetize — Sell premium plugins in the marketplace
- Build reputation — Become known for your plugin expertise
- Learn deeply — Understanding plugin architecture means understanding the platform
Plugin Capabilities Matrix
| Feature | Scope | Complexity | |---------|-------|-----------| | Commands | Single action | Low | | Skills | Contextual behavior | Medium | | Hooks | Event interception | Medium | | Agents | Custom AI behavior | Medium-High | | MCP Servers | External service integration | High |
Pro Tips
- Start with a command — Simplest way to get started
- Solve your own problem — The best plugins come from real needs
- Keep it focused — One plugin, one purpose
- Look at existing plugins — Learn from how others structure theirs
Plugin Structure — plugin.json, Skills, Commands, Hooks
Directory layout, manifest file, component types, auto-discovery
Plugin Structure — plugin.json, Skills, Commands, Hooks
Directory Layout
A Waymaker plugin follows a standard directory structure:
my-plugin/
plugin.json # Manifest file (required)
README.md # Documentation
commands/ # Slash commands
deploy.md
test.md
skills/ # Contextual skills
auto-format.md
lint-check.md
hooks/ # Event hooks
pre-commit.md
validate-sql.md
agents/ # Custom agents
consultant.md
.local.md # Local config (not published)
The plugin.json Manifest
The manifest file is the heart of your plugin. It tells Waymaker what your plugin provides:
{
"name": "my-awesome-plugin",
"version": "1.0.0",
"description": "A brief description of what this plugin does",
"author": "Your Name",
"license": "MIT",
"commands": [
"commands/deploy.md",
"commands/test.md"
],
"skills": [
"skills/auto-format.md",
"skills/lint-check.md"
],
"hooks": [
"hooks/pre-commit.md",
"hooks/validate-sql.md"
],
"agents": [
"agents/consultant.md"
],
"mcpServers": {
"my-service": {
"command": "npx",
"args": ["my-mcp-server"],
"env": {
"API_KEY": "${MY_SERVICE_API_KEY}"
}
}
}
}
Manifest Fields:
| Field | Required | Description |
|-------|----------|-------------|
| name | Yes | Unique plugin identifier (kebab-case) |
| version | Yes | Semantic version (major.minor.patch) |
| description | Yes | Short description (under 100 chars) |
| author | Yes | Your name or organization |
| license | No | License type (MIT, Apache-2.0, etc.) |
| commands | No | Array of command file paths |
| skills | No | Array of skill file paths |
| hooks | No | Array of hook file paths |
| agents | No | Array of agent file paths |
| mcpServers | No | MCP server configurations |
Component Types
Commands
Triggered explicitly by the user with a slash:
/deploy production
/test --coverage
Skills
Activate automatically based on context:
- When a specific file type is detected
- When certain keywords appear in conversation
- When a particular tool is being used
Hooks
Intercept events before or after they happen:
- PreToolUse — Before a tool executes
- PostToolUse — After a tool completes
- Stop — When the agent stops
Agents
Custom AI personalities with specialized knowledge:
- Industry-specific expertise
- Custom system prompts
- Restricted tool access
Auto-Discovery
Waymaker automatically discovers plugins by scanning:
- Project-level
.claude/plugins/directory - Global
~/.claude/plugins/directory plugin.jsonin the project root
Key Concepts
- Convention over configuration — Follow the directory structure and Waymaker handles the rest
- Markdown-based — Commands, skills, hooks, and agents are all defined in Markdown files
- YAML frontmatter — Configuration lives in the YAML header of each Markdown file
- Progressive disclosure — Start simple, add complexity as needed
Setting Up Your Development Environment
Local dev setup, testing plugins, hot reload, debugging
Create Your First Plugin Scaffold
plugin.json manifest, directory structure, first hello-world command. Milestone 1.
Commands & Skills
Build slash commands with YAML frontmatter and prompts. Create skills with progressive disclosure and triggers.
Building Slash Commands — YAML Frontmatter & Prompts
Command structure, frontmatter fields, template variables, execution flow
Creating Skills — Progressive Disclosure & Triggers
Skill format, triggering descriptions, progressive disclosure, when skills activate
Dynamic Arguments & User Interaction
Argument parsing, interactive flows, confirmation patterns
Build 3 Working Commands + 2 Skills
Practical commands and skills, tested and working. Milestone 2.
Hooks & Agents
Create event hooks for tool validation and automation. Build custom agents with system prompts and MCP server integration.
Event Hooks — PreToolUse, PostToolUse, Stop
Hook events, matcher patterns, blocking vs non-blocking, prompt-based hooks
Prompt-Based Hooks — Validation & Automation
Advanced hook prompts, tool call inspection, approval/rejection, automated guardrails
Building Custom Agents — System Prompts & Tools
Agent frontmatter, system prompts, tool access, triggering conditions
MCP Server Integration
.mcp.json configuration, SSE/stdio servers, external service connections. Milestone 3.
Publish to Ecosystem
Test, validate, document, and publish your plugin for others to use.
Testing & Validation
Plugin-validator agent, common issues, testing checklist, edge cases
Plugin Settings & Configuration
.local.md files, YAML frontmatter settings, per-project configuration
Documentation & README
Writing clear docs, usage examples, API reference, changelog
Capstone: Publish Your Plugin
Complete plugin with commands, skills, hooks, agent; validated; documented; published. Milestone 4.
Create your free account to continue
Get instant access to every lesson in Create a Plugin with Waymaker — plus every other course in the Academy.
No credit card required.