vacuum supports AsyncAPI as a first-class document type alongside OpenAPI and JSON Schema.

vacuum lint events.asyncapi.yaml

When vacuum lint sees an AsyncAPI 3 document, it automatically uses the built-in asyncapi-recommended ruleset. There is no separate command to remember.

Supported versions

vacuum supports AsyncAPI 3 documents.

AsyncAPI version Format
AsyncAPI 3 asyncapi3
AsyncAPI 3.1 asyncapi3_1

AsyncAPI 2.x is not supported.

Rulesets

The default ruleset is asyncapi-recommended.

extends: [[vacuum:asyncapi, recommended]]

To run every built-in AsyncAPI rule, use all rules.

extends: [[vacuum:asyncapi, all]]

You can generate ready-to-edit rulesets from the CLI.

vacuum generate-ruleset asyncapi-recommended my-asyncapi-rules

Custom AsyncAPI rules

Custom AsyncAPI rules should be scoped with AsyncAPI formats. This keeps OpenAPI, AsyncAPI and JSON Schema rules from crossing into the wrong document model.

rules:
  event-messages-need-summary:
    description: Messages should have a summary
    severity: warn
    formats: [asyncapi3]
    given: $.components.messages.*
    then:
      field: summary
      function: truthy

Reports and editors

AsyncAPI lint results flow through the same report surfaces as OpenAPI lint results: console output, report, html-report, spectral-report compatible JSON, and the language server.

vacuum docs also generates full human and agent-readable documentation for AsyncAPI 3 contracts:

vacuum docs events.asyncapi.yaml

The generated operations preserve AsyncAPI send and receive direction, channels, messages, content types, examples, bindings, replies and component models. Vacuum diagnostics use the AsyncAPI ruleset and are attached to the same generated pages.

bundle and apply-overlay remain OpenAPI-only commands.