### plugin validate
The whole hunk
from line 1202, old and new numbered
/
lines
from line 1202
12021202
12031203The always-on total is computed via the `count_tokens` API for your active model. Per-component numbers are proportionally scaled from that total. If the API is unreachable, the command falls back to a character-based estimate.
12041204
1205### plugin validate
1206
1207Check a plugin or a marketplace for syntax and schema errors before publishing.
1208
1209The command exits 0 when validation passes, 1 when it fails, and 2 when the validation run itself fails, such as when the path you pass is unreadable.
1210
1211```bash theme={null}
1212claude plugin validate <path> [options]
1213```
1214
1215**Arguments:**
1216
1217* `<path>`: Path to a plugin directory or a marketplace directory. See [Validate a plugin or a directory without a manifest](/docs/en/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) for which files a plugin run covers.
1218
1219**Options:**
1220
1221| Option | Description | Default |
1222| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | :------ |
1223| `--strict` | Treat warnings as errors and exit 1 on them. Use in CI to catch issues the runtime tolerates, such as [unrecognized fields](#unrecognized-fields) | |
1224| `--json` | Output the validation report as one JSON object with the same exit codes. Requires Claude Code v2.1.259 or later | |
1225| `-h, --help` | Display help for command | |
1226
1227With `--json`, Claude Code writes the report to stdout as one JSON object with these top-level fields:
1228
1229* `success`: the same verdict the exit code gives
1230* `strict`: whether the run treated warnings as errors
1231* `target`: the resolved path Claude Code validated
1232* `manifest`: the manifest's own result, or `null` for a [run without a manifest](/docs/en/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)
1233* `contents`: per-file results, each naming its `file` and carrying `errors`, `warnings`, and `notes` arrays
1234
1235On exit 2, the command writes nothing to stdout; the error message goes to stderr.
1236
1237Within an interactive session, `/plugin validate <path>` runs the same checks inline.
1238
12051239### plugin tag
12061240
12071241Create a release git tag for a plugin. By default the command tags the plugin in the current directory; pass a path to tag a plugin elsewhere. See [Tag plugin releases](/docs/en/plugin-dependencies#tag-plugin-releases-for-version-resolution).