id = "vacuum" name = "vacuum" homepage = "https://github.com/daveshanley/vacuum" description = "The world's fastest and most versatile OpenAPI, AsyncAPI and JSON Schema linter and toolkit." executables = ["vacuum"] [dotfiles] # Upstream's Config And Paths section specifies vacuum.conf.yaml under the # XDG config directory (https://github.com/daveshanley/vacuum/blob/main/AGENTS.md). paths = ["[configHome]/vacuum.conf.yaml"] secret = [] [commands] format = 1 label = "Lint an API description" description = "Lint OpenAPI, AsyncAPI or Arazzo files with vacuum lint. Reports, bundling and custom functions beyond a path are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.subcommand]] path = ["lint"] label = "Lint specification" [[commands.subcommand.source]] id = "help" kind = "manual" url = "https://quobix.com/vacuum/commands/lint/" revision = "2026-10-27" evidence = """ vacuum lint -d vacuum lint --ruleset rules/main.yaml -d --details bool Show full details of the linting report -e --errors bool Used with -d , Show only reported errors -s --snippets bool Used with -d , shows highlighted code in console -r --ruleset string Use an existing ruleset file for linting -n --fail-severity string Set the level at which an error return code is thrown: error , warn , info , hint , none (default error ) --ignore-file accepts either exact result paths or JSONPath expressions. -z --hard-mode bool Enable every single built-in rule (including OWASP). vacuum lint --globbed-files="*/**/bu*.openapi.yaml" """ [[commands.subcommand.field]] id = "details" label = "Full details" type = "boolean" option = ["-d", "--details"] sources = ["help"] [[commands.subcommand.field]] id = "errors" label = "Only errors" type = "boolean" option = ["-e", "--errors"] sources = ["help"] [[commands.subcommand.field]] id = "snippets" label = "Code snippets" type = "boolean" option = ["-s", "--snippets"] sources = ["help"] [[commands.subcommand.field]] id = "ruleset" label = "Ruleset file" type = "path" option = ["-r", "--ruleset"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.subcommand.field]] id = "fail_severity" label = "Fail severity" type = "enum" option = ["-n", "--fail-severity"] choices = [{ value = "error", label = "Error" }, { value = "warn", label = "Warning" }, { value = "info", label = "Info" }, { value = "hint", label = "Hint" }, { value = "none", label = "None" }] sources = ["help"] [[commands.subcommand.field]] id = "ignore_file" label = "Ignore file" type = "path" option = ["--ignore-file"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.subcommand.field]] id = "hard_mode" label = "Enable every rule" type = "boolean" option = ["-z", "--hard-mode"] sources = ["help"] [[commands.subcommand.field]] id = "specs" label = "Specification files" type = "path" position = 0 multiple = true path = { kind = "file", role = "input" } sources = ["help"] [[commands.subcommand.task]] id = "report" label = "Lint with details" fields = ["specs", "details", "snippets"] required = ["specs"] set = { details = [true] } [[commands.subcommand.task]] id = "ci" label = "CI check" fields = ["specs", "fail_severity", "ruleset"] required = ["specs"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["specs", "details", "errors", "snippets", "ruleset", "fail_severity"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["ignore_file", "hard_mode"]