Plugin commands reference changedplugins/cli-reference
Nearest release: v2.1.319, published 19 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 6 Nov 2026 20:33 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 6 Nov 2026 20:37 UTC.
Upstream edited
Recorded here
Lines+11added
Lines−1removed
From line
604
where the diff opens
First seen
25 Sep 2026
this site's first read of the page
Recorded edits26to this page, all time
#### Validate a manifest file
The whole hunk
from line 604, old and new numbered
/
from line 604
604604
605605#### Validate a directory
606606
607The `<path>` is a manifest file or a directory. Given a directory, Claude Code picks what to validate by what it finds there:
607The `<path>` is a [manifest file](#validate-a-manifest-file) or a directory. Given a directory, Claude Code picks what to validate by what it finds there:
608608
609609* `.claude-plugin/marketplace.json`, when it exists
610610* Otherwise `.claude-plugin/plugin.json`
from line 626
626626* **A `SKILL.md` at the plugin root**: when you run `claude plugin validate` against a plugin directory, Claude Code doesn't check a `SKILL.md` at the plugin root
627627* **A `CLAUDE.md` at the plugin root**: in a plugin run, Claude Code also warns about a `CLAUDE.md` at the plugin root
628628* **Plugin files in a marketplace run**: from a marketplace directory, Claude Code doesn't open the skill, agent, command, or hook files of plugins the marketplace lists in other directories, or the MCP server files they bundle. To find errors in those files, validate each plugin directory
629
630#### Validate a manifest file
631
632When the file isn't named `plugin.json` or `marketplace.json` and isn't in a `.claude-plugin` directory, Claude Code decides what it is by its fields. It validates the file as a marketplace in these cases, and otherwise as a plugin manifest:
633
634* `plugins` is an array
635* `plugins` and `owner` are both present
636* The file has a field that only `marketplace.json` defines, such as `owner`, and none that only `plugin.json` defines, such as `author`
637
638To choose the checks yourself, name the file `plugin.json` or `marketplace.json`. Claude Code validates any other file in a `.claude-plugin` directory as a plugin manifest.
629639
630640#### Output and exit codes
631641
No line in this hunk matches that.