- Home
- Marketplace
- Contributing a Plugin
Contributing a Plugin
This guide explains how to create a new plugin and add it to the f5xc-salesdemos marketplace.
Plugin Structure
Section titled “Plugin Structure”Every plugin lives in its own directory under plugins/ and
follows this structure:
Directoryplugins/
Directorymy-plugin/
Directory.claude-plugin/
- plugin.json
Directoryskills/
Directorymy-skill/
- SKILL.md
Directoryreferences/
- reference-data.md
Directorycommands/
- my-command.md
Directoryagents/
- my-agent.md
- README.md
Creating a Plugin
Section titled “Creating a Plugin”-
Create the plugin directory
Terminal window mkdir -p plugins/my-plugin/.claude-pluginmkdir -p plugins/my-plugin/skillsmkdir -p plugins/my-plugin/commands -
Write
plugin.jsonCreate
plugins/my-plugin/.claude-plugin/plugin.json:{"name": "my-plugin","description": "What this plugin does","version": "1.0.0","author": {"name": "f5xc-salesdemos"},"homepage": "https://github.com/f5xc-salesdemos/marketplace/tree/main/plugins/my-plugin","keywords": ["relevant", "keywords"],"license": "Apache-2.0","repository": "https://github.com/f5xc-salesdemos/marketplace"} -
Add skills
Create
plugins/my-plugin/skills/my-skill/SKILL.mdwith frontmatter:---name: my-skilldescription: One-line description of what this skill does---Detailed instructions for Claude when this skill activates.Place any reference data in a
references/subdirectory alongsideSKILL.md. -
Add commands
Create
plugins/my-plugin/commands/my-command.md:---description: What this command doesargument_hint: "[optional-args]"allowed_tools:- Read- Glob- Grep---Instructions for Claude when the user invokes this command. -
Add the plugin to marketplace.json
Add an entry to the
pluginsarray in.claude-plugin/marketplace.json:{"name": "my-plugin","description": "What this plugin does","version": "1.0.0","author": { "name": "f5xc-salesdemos" },"source": "./plugins/my-plugin","category": "productivity","homepage": "https://github.com/f5xc-salesdemos/marketplace/tree/main/plugins/my-plugin","license": "Apache-2.0","keywords": ["relevant", "keywords"],"tags": ["searchable", "tags"],"repository": "https://github.com/f5xc-salesdemos/marketplace"} -
Test locally
Test your plugin without publishing by pointing Claude Code at the local directory:
Terminal window claude --plugin-dir ./plugins/my-pluginVerify that skills activate in the right context and commands produce expected output.
Submitting Your Plugin
Section titled “Submitting Your Plugin”- Create a GitHub issue describing the new plugin
- Create a feature branch from
main - Add your plugin directory and update
marketplace.json - Add a documentation page at
docs/plugins/my-plugin.mdx - Open a PR linking to the issue with
Closes #N - Fix any CI failures and merge after checks pass
Best Practices
Section titled “Best Practices”- Keep skills focused — one skill should do one thing well
- Use reference files — put large datasets, schemas, and
lookup tables in
references/rather than inline in SKILL.md - Scope intelligently — check for uncommitted changes to narrow the working set when possible
- Group output by severity — use ERROR, WARNING, and INFO levels so users can prioritize fixes
- Write a README — include usage examples and a description of what each skill and command does