Follow Discord
Sweep 10 Nov 2026 · 02:18Z Build v2.1.322 539 read Stable v2.1.311 Latest v2.1.322 Next v2.1.322 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

Plugin commands reference changedplugins/cli-reference

Nearest release: v2.1.312, published 23 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 28 Oct 2026 18:18 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 28 Oct 2026 18:37 UTC.

Upstream edited
Recorded here
Lines+31added
Lines−1removed
From line 634 where the diff opens
First seen 25 Sep 2026 this site's first read of the page
Recorded edits26to this page, all time

#### Advice on the README

The whole hunk

from line 634, old and new numbered
/
lines
from line 634
634634| Exit code | Verdict line | Meaning |
635635| :- | :- | :- |
636636| `0` | `Validation passed` or `Validation passed with warnings` | The manifest loads. With `--strict`, no warnings either |
637| `1` | `Validation failed` or `Validation failed (--strict treats warnings as errors)` | An error, or a warning under `--strict` |
637| `1` | `Validation failed` or `Validation failed (--strict treats warnings as errors)` | An error, or a warning under `--strict`. [Advice](#advice-on-the-readme) doesn't count, with or without `--strict` |
638638| `2` | `Unexpected error during validation: <reason>` | The validator itself failed, such as on an unreadable path |
639639 
640640With `--json`, Claude Code writes the report to stdout as one JSON object with these top-level fields:
from line 645
645645* `manifest`: the manifest's own result, or `null` for a run without a manifest
646646* `contents`: per-file results, each naming its `file` and carrying `errors`, `warnings`, and `notes` arrays
647647 * `gatingHooks`: whether each [mod](https://code.claude.com/docs/en/plugins/mods/overview.md) hook that can refuse an action, such as a `tool.call` hook, has a [`.catch` handler](https://code.claude.com/docs/en/plugins/mods/events#handle-a-hook-that-fails). Each item gives `module`, `pattern`, `hook`, and `hasCatch`. Requires Claude Code v2.1.290 or later
648* `advice`: the [advice](#advice-on-the-readme) of the run, each entry naming the README as `file` and carrying a `message` and the `installLine` to paste. Empty when there is none. Requires Claude Code v2.1.295 or later
648649 
649650On exit `2`, the command writes nothing to stdout. The error message goes to stderr.
651 
652#### Advice on the README
653 
654An `Advice` block in the output of `claude plugin validate` means a plugin's README has no line that installs the plugin from a marketplace, and it gives you a line to add. Advice isn't an error or a warning. It doesn't change the verdict line or the exit code, with or without `--strict`. It requires Claude Code v2.1.295 or later.
655 
656For example, validating the `acme-tools` marketplace's directory prints this advice for its `deploy-helper` plugin:
657 
658```text theme={null}
659Validating marketplace manifest: /path/to/acme-tools/.claude-plugin/marketplace.json
660 
661ℹ Advice (does not change the verdict):
662 
663 ❯ /path/to/acme-tools/plugins/deploy-helper/README.md: This README has no line that installs "deploy-helper" from a marketplace. Add the install line, which works in one step on Claude Code 2.1.275 or later.
664 /plugin install deploy-helper --marketplace acme/tools
665 
666✔ Validation passed
667```
668 
669To clear the advice, paste the suggested line into the README it names, then run `claude plugin validate` again in your shell. The `Advice` block is gone.
670 
671If the suggested line holds the placeholder `<owner>/<repo>`, pasting it unchanged doesn't clear the advice. Get the real source first:
672 
673* **You validated the plugin's own directory**: when the marketplace lists the plugin from a directory inside its own, validate that directory instead. When it lists the plugin from somewhere else, such as a GitHub repository, fill in `<owner>/<repo>` yourself
674* **You validated the marketplace's directory**: Claude Code fills in the source from the `origin` remote of the `.git` directory at the top of that directory. When it can't use that remote, such as when there is none, replace `<owner>/<repo>` with your marketplace's source yourself
675 
676An install line you already wrote counts when `plugin install`, or its short form `plugin i`, is followed on the same line by either of these. The `/plugin` and `claude plugin` spellings both count:
677 
678* `<plugin>@<marketplace>`, such as `/plugin install deploy-helper@acme-tools`
679* The plugin's name and `--marketplace <source>`, such as `/plugin install deploy-helper --marketplace acme/tools`
650680 
651681## claude plugin marketplace commands
652682 
Feedback