cfn-lint
github.com
What it is
cfn-lint is a free, open-source validator for AWS CloudFormation YAML and JSON templates. It checks templates against resource provider schemas and applies additional rules, including validation of property values and best practices. AWS Serverless Application Model templates are processed after transformation with AWS SAM. Users can configure built-in checks through command-line options, configuration files, or CloudFormation template metadata, and can add custom rules. Results can be emitted as quiet, parseable, JSON, JUnit, pretty, or SARIF output. Installation options documented by the project include pip, Homebrew for macOS, and Docker; supported Python versions are 3.10 through 3.14. Listed integrations include Atom, Emacs, NeoVim/Vim, Sublime, Visual Studio Code, IntelliJ IDEA, GitHub Actions, and pre-commit. The project treats complex template-value validation as best effort and does not fail merely because it cannot interpret or translate a value. The repository identifies its license as MIT No Attribution, and the plan costs nothing.
Spec sheet
- Purpose
- cfn-lint validates AWS CloudFormation YAML and JSON templates against resource provider schemas and additional checks, including valid property values and best practices.Read 2 Oct 2026 · github.com
- Integrations
- The project lists editor integrations for Atom, Emacs, NeoVim/Vim, Sublime, Visual Studio Code, and IntelliJ IDEA, plus a GitHub Action and pre-commit hook.Read 2 Oct 2026 · github.com
- Support
- The project invites users to join its Discord community to discuss cfn-lint and get help.Read 2 Oct 2026 · github.com
- License
- The repository identifies its license as MIT No Attribution, which grants use, copying, modification, distribution, sublicensing, and sale without restriction.Read 2 Oct 2026 · github.com
- Configuration
- Users can configure cfn-lint with command-line options, configuration files, and CloudFormation template metadata.Read 2 Oct 2026 · github.com
- Installation
- The project documents installation with pip, Homebrew for macOS, or Docker.Read 2 Oct 2026 · github.com
- Output
- Supported output formats include quiet, parseable, JSON, JUnit, pretty, and SARIF.Read 2 Oct 2026 · github.com
- Rules
- The linter processes rules for specific checks and validations, and supports user-defined custom rules.Read 2 Oct 2026 · github.com
- Runtime
- The project states that Python 3.10 through 3.14 are supported.Read 2 Oct 2026 · github.com
- SAM support
- The linter supports AWS Serverless Application Model templates by transforming them with AWS SAM before processing.Read 2 Oct 2026 · github.com
- Validation caveat
- The project describes validation of complex template values as best effort and says it will not fail just because it cannot understand or translate them.Read 2 Oct 2026 · github.com
- Who it serves
- The project describes cfn-lint as a tool for validating AWS CloudFormation templates.Read 2 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Checks CloudFormation YAML and JSON templates.
- Supports user-defined rules.
- Offers six output formats.
- Lists editor, GitHub Action, and pre-commit integrations.
- Supports Python 3.10 through 3.14.
Limits
- Complex template values receive best-effort validation.
- It does not provide runtime enforcement.
- It does not provide provisioning tests or deployed checks.
Who it suits
It suits people validating AWS CloudFormation templates, including teams that want custom rules, structured output, or editor and CI/CD integrations. It also supports AWS SAM templates.
Verdict
cfn-lint offers configurable template checks and multiple output and integration options. Its best-effort handling of complex values means validation may not fully interpret every template value.
Where Specifiction places it
- Infrastructure Testing Tools#8 of 288.1