CheckOps
actionlint
actionlint is an MIT static checker for GitHub Actions workflow files that catches syntax errors, bad expressions, type mismatches and shell script issues via ShellCheck.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
actionlint is a static checker for GitHub Actions workflow files. It parses workflows and reports problems that GitHub would only reveal at run time, or never.
Checks include YAML syntax, unknown keys, ${{ }} expression syntax and type checking, references to undefined job outputs or matrix values, invalid cron schedules, action input validation for popular actions, runner label typos, and potential script injection from untrusted inputs. When ShellCheck and pyflakes are installed, it also lints run: scripts.
In the quality loop it is a pre-merge check for the pipeline definition itself.
The source code is at rhysd/actionlint on GitHub under the MIT licence, with about 4,400 stars; the most recent commit was on 19 April 2026.
Features
- Expression type checks: Catches wrong types and undefined properties.
- Action input checks: Validates inputs to popular actions.
- ShellCheck integration: Lints run scripts.
- Injection warnings: Flags untrusted input used in scripts.
- Fast single binary: Written in Go.
- Playground: Try it in the browser.
Pros
- High signal: Findings are usually real bugs.
- Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 19 April 2026.
- Community: About 4,400 GitHub stars.
Cons
- GitHub only: Not for other CI systems.
- External tools: Shell linting needs ShellCheck installed.
- Security depth: Use zizmor for deeper security auditing.
Usage and Links (Example)
actionlint
# or in CI
docker run --rm -v "$PWD:/repo" -w /repo rhysd/actionlint:latest -color
Resources:
Pricing
actionlint is free and open source under the MIT licence.
Recommended for?
- Any repository using GitHub Actions.
- Platform teams maintaining shared workflows.
Conclusion
actionlint is a quick win for any team on GitHub Actions.
Run it on every change to .github/workflows/.
On CheckOps, actionlint is filed under the Release & CI gates stage. Related tools listed here include act, zizmor, OpenSSF Scorecard, pre-commit, Super-Linter and Gitleaks. A short trial on a real project, with your own code, data and pipeline, is usually the fastest way to choose between them, because fit matters more than feature lists. Facts here come from the official site, documentation and repository, checked on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with actionlint side by side.
Aactact is an MIT CLI that runs GitHub Actions workflows locally in Docker, so you can test workflow changes without pushing commits.Compare with actionlint
Zzizmorzizmor is an MIT static analysis tool for GitHub Actions that finds security problems such as template injection, excessive permissions, credential persistence and unpinned actions.Compare with actionlint
OOpenSSF ScorecardOpenSSF Scorecard is an Apache-2.0 tool that scores open-source repositories on security practices such as branch protection, pinned dependencies, CI tests, fuzzing and dangerous workflows.Compare with actionlint
Ppre-commitpre-commit is an MIT framework for managing multi-language Git pre-commit hooks, running linters, formatters and checks before code is committed and in CI.Compare with actionlint
SSuper-LinterSuper-Linter is an MIT ready-to-run collection of linters and code analysers packaged as a GitHub Action and container, validating many languages in parallel.Compare with actionlint
GGitleaksGitleaks is an MIT-licensed tool for detecting secrets such as passwords, API keys and tokens in Git repositories, files and stdin; it is now feature complete with security-patch-only releases.Compare with actionlint