vendo validate
Lint a vendo.yaml manifest against the public deploy schema.
Synopsis
vendo validate [file]Validates a vendo.yaml against the canonical JSON Schema bundled with the CLI. Defaults to ./vendo.yaml when no argument is passed. Exits 0 on success, non-zero on any error.
This command does not require login — the schema check is fully local.
Arguments
| Argument | Description |
|---|---|
file | Optional path to the manifest. Defaults to vendo.yaml in the current directory. |
Schema source
The validator uses vendo.schema.json, executed via ajv@^8 with allErrors: true and ajv-formats. The schema's draft is whatever its $schema field declares. The same schema is what the Vendo deploy worker checks against — the CLI is just a local mirror.
Full per-field reference: vendo.yaml schema.
Output
On success:
✓ vendo.yaml is validOn failure, every problem is listed:
✗ vendo.yaml has 2 error(s):
• /name must match pattern "^[a-z][a-z0-9-]{1,62}[a-z0-9]$"
• /version must be equal to constant: 1The validator also surfaces non-schema errors with their own messages:
cannot read <path>: <reason>— file missing or unreadableyaml parse error in <path>: <reason>— YAML is not parseablevendo.yaml is empty or not an object— top level isnullor a scalar
Examples
Validate the default file:
vendo validateValidate a non-default path:
vendo validate ./examples/hermes/vendo.yamlUse in CI:
# .github/workflows/ci.yml
- run: npx @vendodev/cli validatevendo validate is the only CLI command that doesn't talk to vendo.run. It is safe to run in CI without provisioning a service account or login secret.