Claude Code plugin.json generator
Free, runs in your browser. Updated .
Every Claude Code plugin starts with a manifest at .claude-plugin/plugin.json. Fill in the name, version, author and license, pick the parts your plugin ships, and the generator writes the manifest, a marketplace.json that lets the repository install as its own marketplace, the folder layout and the commands users type to install it. The name is checked against the same Claude directory rules HOL Plugin pre-flight uses, and nothing you type leaves your browser.
Add a plugin name to see the files.
Commit both files, then check the repository with Plugin pre-flight and claude plugin validate . before you share it.
plugin.json fields
Claude Code needs only a name. The Claude plugin directory checks more before it lists a plugin, so the generator fills in each field it looks for.
| Field | Required | What it is for |
|---|---|---|
name | Yes | The install name. Lowercase kebab-case, up to 64 characters. |
version | Directory expects it | Semantic version. Bump it on every release so installed copies update. |
description | Directory expects it | One sentence shown in /plugin before someone installs. |
author | Directory expects it | An object with name, and optionally email and url. |
license | Here or as a LICENSE file | An SPDX identifier such as MIT. The directory blocks a plugin with no license. |
homepage | No | Documentation or product page. |
repository | No | Source code address, so people can read what they install. |
keywords | No | Search terms for marketplaces and catalogs. |
Example plugin.json
The manifest the generator writes for the example plugin. Components are not listed because Claude Code finds them in their default folders.
{
"name": "release-notes",
"version": "1.0.0",
"description": "Drafts release notes from merged pull requests and checks them against the changelog.",
"author": {
"name": "Example Labs",
"email": "[email protected]",
"url": "https://example.com"
},
"homepage": "https://example.com/release-notes",
"repository": "https://github.com/example-labs/release-notes",
"license": "MIT",
"keywords": [
"release notes",
"changelog",
"github"
]
}
Mistakes that stop a plugin loading or listing
- Folders inside .claude-plugin
- Only
plugin.jsonandmarketplace.jsonbelong in.claude-plugin/. Putskills/,commands/,agents/andhooks/at the plugin root, or Claude Code will not find them. - A marketplace entry with a different name
- Keep the entry name in marketplace.json equal to the plugin name. Users install by name@marketplace, so a rename breaks existing installs.
- The same version on every release
- Claude Code compares versions to decide whether an installed copy is current. Ship a change without a new version and existing users may not get it.
- A reserved or generic name
- The Claude directory refuses names such as claude, plugin or mcp, and holds names made only of generic words, such as my-tools, for review.
Questions
- Which fields does a Claude Code plugin.json need?
- Only name is required. The Claude plugin directory also expects a description, an author and a version, and a license either in plugin.json or as a LICENSE file. Homepage, repository and keywords help people find and trust the plugin.
- Where do plugin.json and the plugin folders go?
- plugin.json goes in a .claude-plugin folder at the root of the plugin. The skills, commands, agents and hooks folders and the .mcp.json file sit at the plugin root next to .claude-plugin, not inside it. Claude Code finds them in those default places, so the manifest does not need to list them.
- Do I need a marketplace.json?
- Users install plugins from a marketplace. Adding .claude-plugin/marketplace.json with one entry whose source is ./ makes the repository its own marketplace, so users can run /plugin marketplace add owner/repo and then /plugin install name@marketplace.
- What makes a plugin name valid?
- Lowercase letters, digits and hyphens, up to 64 characters, starting and ending with a letter or digit. The Claude directory refuses reserved words such as claude, anthropic, official, plugin, mcp and test, and holds names made only of generic words such as my-tools for review.
- Which version should a new plugin start at?
- Any semantic version works; 0.1.0 or 1.0.0 are common. Bump it on every release, because Claude Code compares versions to decide whether an installed copy needs updating.
- Is what I type uploaded anywhere?
- No. The files are built in this browser tab and nothing is kept after you leave the page.
Related
- Publish a Claude Code plugin: marketplaces, validation and Anthropic's directory, step by step.
- Plugin pre-flight: check the pushed repository against the Claude, Codex and Cursor directory rules.
- Claude Code plugin converter: write the Codex and Gemini CLI manifests for the same repository.
- MCP tool definition linter: check your server's tool names, descriptions and input schemas.
- SKILL.md validator: check each skill in skills/ before you publish the plugin.
- List your plugin on HOL and claim it to manage the listing from your owner page.