Create plugin scaffold
Trigger
You need to create a new Cursor plugin from scratch and make it ready for local use or marketplace submission.
Required Inputs
- Plugin name (lowercase kebab-case)
- Plugin purpose and target users
- Component set to include (
rules,skills,agents,commands,hooks,mcpServers) - Repository style (
single-pluginormulti-plugin marketplace)
Output Location
By default, create the plugin inside the user's local plugin directory:
~/.cursor/plugins/local/<plugin-name>/This path makes the plugin immediately available to Cursor without any install step. If the user explicitly asks to create the plugin elsewhere (e.g. inside an existing repo or a specific directory), respect that choice instead.
Workflow
- Validate plugin name format: lowercase kebab-case, starts and ends with an alphanumeric character.
- Determine the target directory:
- Default: ~/.cursor/plugins/local/<plugin-name>/ - Override: use the path the user specifies, if any. - Create the directory (and parents) if it does not exist.
- Create base files inside the target directory:
- .cursor-plugin/plugin.json - README.md - LICENSE - optional CHANGELOG.md
- Populate
plugin.json:
- Required: name - Recommended: version, description, author, license, keywords - Add explicit component paths only when non-default discovery is needed.
- Create component files with valid frontmatter:
- Rules: .mdc with description, alwaysApply, optional globs - Skills: skills/<skill-name>/SKILL.md with name, description - Agents: agents/*.md with name, description - Commands: commands/*.(md|txt) with name, description
- If repository uses
.cursor-plugin/marketplace.json, add plugin entry:
- name - source - optional metadata (description, keywords, category, tags)
- Ensure all manifest paths are relative, valid, and do not use absolute paths or parent traversal.
Guardrails
- Keep the plugin focused on one use case.
- Prefer concise, actionable skill and rule text over long prose.
- Do not reference files that do not exist.
- Use folder discovery defaults unless custom paths are required.
- Always save to
~/.cursor/plugins/local/<plugin-name>/unless the user provides a different path.
Output
- Created file tree for the plugin (with full path to the output directory)
- Final
plugin.json - Marketplace entry (if applicable)
- Short validation report of required fields and component metadata
- Confirmation that the plugin is saved under
~/.cursor/plugins/local/and ready for use