Claude Code Plugin Manifest
Manifest (.claude-plugin/plugin.json) for a Claude Code plugin
**/.claude-plugin/plugin.json
Validate
Check your file against this schema
Opens the validator with this schema already loaded. Paste your
**/.claude-plugin/plugin.json and it validates in your browser — nothing is uploaded.
Reference
Fields
Generated directly from the schema, following local
$refs, to two levels of nesting.
| Field | Type | Description |
|---|---|---|
$schema | string | JSON Schema reference for editor autocomplete/validation; ignored at load time |
namerequired | string | Unique identifier for the plugin, used for namespacing (prefer kebab-case) |
version | string | Semantic version (e.g., 1.2.3) following semver.org specification |
description | string | Brief, user-facing explanation of what the plugin provides |
author | object | Information about the plugin creator or maintainer |
author.namerequired | string | Display name of the plugin author or organization |
author.email | string | Contact email for support or feedback |
author.url | string | Website, GitHub profile, or organization URL |
homepage | string | Plugin homepage or documentation URL |
repository | string | Source code repository URL |
license | string | SPDX license identifier (e.g., MIT, Apache-2.0) |
keywords | array<string> | Tags for plugin discovery and categorization |
dependencies | array | Plugins that must be enabled for this plugin to function. Bare names (no "@marketplace") are resolved against the declaring plugin's own marketplace. |
hooks | anyOf | — |
commands | anyOf | — |
agents | anyOf | — |
skills | anyOf | — |
outputStyles | anyOf | — |
themes | anyOf | — |
channels | array<object> | Channels this plugin provides. Each entry declares an MCP server as a message channel and optionally specifies user configuration to prompt for at enable time. |
mcpServers | anyOf | — |
lspServers | anyOf | — |
monitors | anyOf | Background watch scripts the host arms as persistent Monitor tasks (unsandboxed, same trust tier as hooks) so plugins need not instruct the model to arm them. When omitted, monitors/monitors.json at the plugin root is loaded if present. |
settings | object | Settings to merge into the user settings while this plugin is enabled. Only the documented allowlisted keys are applied. |
userConfig | object | User-configurable values this plugin needs. Prompted at enable time. Non-sensitive values saved to settings.json; sensitive values to secure storage. Available as ${user_config.KEY} in MCP/LSP server config, hook commands, and |
Audit
What we found in this schema
- Declared draft: draft-07
- Validates cleanly against its own meta-schema.
- 220 properties, 70% carrying a description, max nesting depth 18.
Standards
Specification sections for the keywords in this schema
| Keyword | Document | Section |
|---|---|---|
additionalProperties | JSON Schema Core, draft 2020-12 | §10.3.2.3 — "additionalProperties" |
allOf | JSON Schema Core, draft 2020-12 | §10.2.1.1 — "allOf" |
anyOf | JSON Schema Core, draft 2020-12 | §10.2.1.2 — "anyOf" |
const | JSON Schema Validation, draft 2020-12 | §6.1.3 — "const" |
default | JSON Schema Validation, draft 2020-12 | §9.2 — "default" |
description | JSON Schema Validation, draft 2020-12 | §9.1 — "title" and "description" |
enum | JSON Schema Validation, draft 2020-12 | §6.1.2 — "enum" |
exclusiveMinimum | JSON Schema Validation, draft 2020-12 | §6.2.5 — "exclusiveMinimum" |
format | JSON Schema Validation, draft 2020-12 | §7 — Vocabularies for Semantic Content With "format" |
if | JSON Schema Core, draft 2020-12 | §10.2.2.1 — "if" |
items | JSON Schema Core, draft 2020-12 | §10.3.1.2 — "items" |
maximum | JSON Schema Validation, draft 2020-12 | §6.2.2 — "maximum" |
minLength | JSON Schema Validation, draft 2020-12 | §6.3.2 — "minLength" |
pattern | JSON Schema Validation, draft 2020-12 | §6.3.3 — "pattern" |
properties | JSON Schema Core, draft 2020-12 | §10.3.2.1 — "properties" |
propertyNames | JSON Schema Core, draft 2020-12 | §10.3.2.4 — "propertyNames" |
required | JSON Schema Validation, draft 2020-12 | §6.5.3 — "required" |
type | JSON Schema Validation, draft 2020-12 | §6.1.1 — "type" |
format: "uri" | RFC 3986 (STD 66) | §3 — Syntax Components |
Documents
- JSON Schema Core, draft 2020-12 — JSON Schema: A Media Type for Describing JSON Documents, A. Wright, H. Andrews, B. Hutton, G. Dennis, Eds., 2022. draft-bhutton-json-schema-01. An expired Internet-Draft with no formal standing in the IETF standards process; it is nonetheless the specification of record for JSON Schema 2020-12, published by json-schema.org.
- JSON Schema Validation, draft 2020-12 — JSON Schema Validation: A Vocabulary for Structural Validation of JSON, A. Wright, H. Andrews, B. Hutton, Eds., 2022.
- RFC 8259 (STD 90) — The JavaScript Object Notation (JSON) Data Interchange Format, T. Bray, Ed., 2017. The format a schema describes.
- RFC 6901 — JavaScript Object Notation (JSON) Pointer. Defines the pointer syntax used by $ref fragments and the ~0 / ~1 escapes.
Source
Attribution
This schema comes from SchemaStore, distributed under the Apache License 2.0. Copyright 2015–present Mads Kristensen and contributors. View the original file. The field table and audit on this page are generated by JSONTools.tools; the schema itself is unmodified.