Help us improve
Share bugs, ideas, or general feedback.
From plugin-template
Creates a new Claude Code plugin scaffold, prompting for components (commands, mcp-server, hooks, skills) and type (Markdown-only or TypeScript with src/, tests).
npx claudepluginhub nathanvale/side-quest-marketplace-old --plugin plugin-templateHow this command is triggered — by the user, by Claude, or both
Slash command
/plugin-template:create plugin-nameclaude-sonnet-4-5-20250929Files this command reads when invoked
This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# Create New Plugin Generate a new plugin scaffold with configurable components following the SideQuest marketplace patterns. ## Instructions You are a plugin scaffolding specialist. Create well-structured Claude Code plugins using the established patterns. ### Input The plugin name is provided as `$1` (or `$ARGUMENTS`). ### Validation 1. **Plugin name** must be in kebab-case format: - Lowercase letters, numbers, and hyphens only - Must start with a letter - No consecutive hyphens - Examples: `my-plugin`, `code-analyzer`, `git-helper` 2. **Check for conflicts**: - Ver...
/create-pluginGuides creation of Claude Code plugins through 8-phase workflow: discovery, planning, implementation, validation, and testing.
/create-pluginInteractively guides creation of a Claude Code plugin by asking about type, purpose, and category, then generates full directory structure, manifest, docs, and components.
/createCreates a new beads issue interactively or via title, type (bug/feature/task/epic/chore/decision), and priority args. Uses beads MCP create tool, shows ID/details, offers linking.
/createProduces SEO/GEO content end-to-end: brief, draft, series, refresh, and CMS-neutral publish package from one entry point.
/createLaunches Socratic workflow designer subagent to create orchestration workflows from natural language descriptions using interactive questioning. Accepts optional initial description argument.
Share bugs, ideas, or general feedback.
Generate a new plugin scaffold with configurable components following the SideQuest marketplace patterns.
You are a plugin scaffolding specialist. Create well-structured Claude Code plugins using the established patterns.
The plugin name is provided as $1 (or $ARGUMENTS).
Plugin name must be in kebab-case format:
my-plugin, code-analyzer, git-helperCheck for conflicts:
plugins/{name} directory doesn't already existUse AskUserQuestion to ask the user which components to include:
Question: "Which components should this plugin include?"
| Component | Description |
|---|---|
| commands | Slash commands (e.g., /plugin:action) |
| mcp-server | MCP server with tools for Claude to call |
| hooks | Event hooks (PostToolUse, PreToolUse, etc.) |
| skills | Autonomous capabilities Claude can invoke |
Enable multi-select. Default to all components if user doesn't specify.
Use AskUserQuestion to ask about implementation type:
Question: "What implementation type?"
| Type | Description |
|---|---|
| Markdown only | Commands/skills are just prompts, no code (stub scripts) |
| TypeScript | Includes CLI tools, utilities, or testable logic (full scripts + src/) |
Auto-select TypeScript if mcp-server component was chosen (MCP always needs code).
Based on selections, create:
MARKDOWN ONLY: TYPESCRIPT:
plugins/{name}/ plugins/{name}/
├── .claude-plugin/ ├── .claude-plugin/
│ └── plugin.json │ └── plugin.json
├── package.json ←(stubs) ├── package.json ←(full)
├── commands/ ├── tsconfig.json
│ └── sample.md ├── src/
└── skills/ │ ├── index.ts
└── {name}/ │ └── index.test.ts
└── SKILL.md ├── commands/
│ └── sample.md
└── skills/
└── {name}/
└── SKILL.md
Markdown only (stub scripts):
{
"scripts": {
"test": "echo 'No tests'",
"typecheck": "echo 'No typecheck'"
}
}
TypeScript (full scripts):
{
"scripts": {
"test": "bun test --recursive",
"typecheck": "tsc --noEmit",
"format": "biome format --write .",
"lint": "biome lint .",
"check": "biome check --write ."
},
"devDependencies": {
"@types/bun": "latest"
}
}
Default to git config:
git config user.namegit config user.emailUse templates from $PLUGIN_DIR/src/templates.ts:
packageJsonForType() based on implementation typemcpez library${CLAUDE_PLUGIN_ROOT}After generating files, update .claude-plugin/marketplace.json:
plugins array:
{
"name": "{name}",
"source": "./plugins/{name}",
"description": "{description}",
"version": "1.0.0",
"author": { "name": "{author}" },
"category": "development",
"keywords": ["{name}"]
}
After creating the plugin:
Run setup commands (TypeScript only):
cd plugins/{name} && bun install
Verify generation (TypeScript only):
bun test --recursive
Output summary:
/plugin-template:strip if they want to remove TypeScript later/plugin-template:upgrade if they want to add TypeScript laterUser: /plugin-template:create my-awesome-plugin
Expected flow:
${CLAUDE_PLUGIN_ROOT} for portabilityNow create the plugin scaffold based on the provided name and user preferences.