vacuum
Vacuum is a free, open-source linter and quality checker for OpenAPI, AsyncAPI, and JSON Schema specifications.
What vacuum is
Vacuum is a free, open-source linter and quality checker for OpenAPI, AsyncAPI, and JSON Schema specifications. It accepts YAML and JSON, supporting OpenAPI 2 and 3+, AsyncAPI 3, and JSON Schema documents. Written in Go, it is designed for command-line use and as a library, and its maker says it is built to handle very large specifications. Reports include a console dashboard, interactive HTML, and a sealed format that can be rendered again without rerunning lint logic. The HTML report has no external dependencies and works offline.
Vacuum accepts Spectral rulesets, and its maker describes its ruleset as a superset of Spectral's. Security rules check API security definitions and their placement. A Visual Studio Code extension detects and lints OpenAPI or AsyncAPI YAML and JSON files, while an official GitHub Action adds Vacuum to CI/CD workflows. It also supports JUnit XML output; by default, only error-severity violations create test failures in that output. Installation options include Homebrew, NPM, Yarn, a shell installer, Docker, or source checkout. AsyncAPI 2.x documents are rejected.
Good
- Supports OpenAPI, AsyncAPI 3, and JSON Schema.
- Produces offline HTML reports.
- Includes a VS Code extension and GitHub Action.
- Accepts Spectral rulesets.
Watch out
- AsyncAPI 2.x documents are rejected.
- The maker invites sponsorship for priority issue support.
Who it suits
Vacuum suits developers and teams who need local feedback, editor diagnostics, CI output, or reusable reports for API and schema specifications. It may also suit users with existing Spectral ruleset investments.
Verdict
Vacuum offers command-line, library, editor, and CI workflows for checking specifications, with reports that can work offline. Its AsyncAPI support is limited to version 3 documents.
The facts
Each one read from vacuum's own pages, with the date it was checked.
What it does
- AsyncAPI limit
- Vacuum supports AsyncAPI 3 documents, while AsyncAPI 2.x documents are rejected.checked 9 Oct 2026
- CI integration
- An official GitHub Action is available for adding vacuum to GitHub CI/CD workflows.checked 4 Oct 2026
- CI reporting
- Vacuum can output JUnit XML, and by default only error severity violations create test failures in that output.checked 9 Oct 2026
- Distribution
- The maker documents installation via Homebrew, NPM, Yarn, a shell installer, Docker and source checkout.checked 4 Oct 2026
- Editor integration
- The VSCode extension is listed in the Visual Studio Code Marketplace and Open VSX, and automatically detects and lints OpenAPI or AsyncAPI YAML and JSON files.checked 4 Oct 2026
- Formats
- Vacuum accepts YAML and JSON and supports OpenAPI 2 and 3+, AsyncAPI 3 and JSON Schema documents.checked 4 Oct 2026
- GitHub Actions
- The official GitHub Action adds vacuum to GitHub CI/CD workflows and accepts a custom ruleset path.checked 9 Oct 2026
- How it runs
- Vacuum is designed as a CLI with a UI and as a library for use in other applications.checked 9 Oct 2026
- Implementation
- Vacuum is written in Go, is multi-threaded and is designed as both a CLI and a library.checked 4 Oct 2026
- Install options
- The maker documents installation through Homebrew, NPM, yarn, a shell installer, Docker, or building from source.checked 9 Oct 2026
- Offline reports
- The generated HTML report has no external dependencies and runs offline.checked 4 Oct 2026
- Performance
- The maker says vacuum is written in Go, is multithreaded, and uses an index for complex rules.checked 9 Oct 2026
- Purpose
- Vacuum is a deterministic linter and quality checking tool for OpenAPI, AsyncAPI, and JSON Schema specifications.checked 9 Oct 2026
- Reports
- The report command saves lint results as replayable data that can be rendered again without changing the original results.checked 9 Oct 2026
- Rules
- The maker says vacuum accepts Spectral rulesets and that its ruleset is a superset of Spectral’s.checked 9 Oct 2026
- Rulesets
- Vacuum supports Spectral rulesets, and the maker describes its ruleset as a superset of Spectral’s.checked 4 Oct 2026
- Scale
- The maker says vacuum is designed to lint very large specifications and work at scale.checked 4 Oct 2026
- Security checks
- Its security rules check whether API security definitions are correctly defined and placed.checked 4 Oct 2026
- Security control
- The lint command exposes options to allow private or local network access for fetch requests and to allow HTTP URLs in custom JavaScript functions.checked 9 Oct 2026
- Sponsor note
- The FAQ invites sponsorship and says company sponsors can receive priority support for issues.checked 4 Oct 2026
- Support
- The FAQ says vacuum is actively supported and that companies sponsoring the project can receive priority support for issues.checked 9 Oct 2026
The company
- Maker
- The author page identifies the maker by the handle quobix and says the author's real name is Dave Shanley.checked 9 Oct 2026
- Maker identity
- The author identifies himself as Dave Shanley, uses the handle quobix and says he founded Princess Beef Heavy Industries.checked 4 Oct 2026
Where it runs
- Signed macOS release
- The maker recommends the Homebrew cask on macOS for the official release binary signed by Quobix.checked 9 Oct 2026
Alternatives to vacuum
- 1

Karate
Free planOpen sourceAPIExtensionLinuxmacOS8.2From $100 a year - 2
ATA API Governance
Free planWebAPIExtensionLinux7.7Free plan - 3

Postman
Free planWebExtensionLinuxmacOS7.6From $9 a month - 4
Apistaq
Free planWebAPI7.2From $149 a month - 5
oasdiff
Free planWebAPILinuxmacOS7.2From $100 a month - 6

DigitalAPI
WebAPISelf-hosted7.1From $2,500 a month
