EVERYTHING XIAOMI
Get listed

actionlint

actionlint is a static checker for GitHub Actions workflow files.

Place
#11 of 33
Chart
Linters
Score
6.3
actionlint's website

What actionlint is

actionlint is a static checker for GitHub Actions workflow files. It checks workflow syntax for unexpected or missing keys and type-checks `${{ }}` expressions to flag semantic errors such as missing properties and type mismatches. It also validates action inputs and outputs, as well as inputs, outputs, and secrets in reusable workflows and workflow calls. Security checks include script injection risks involving untrusted inputs and hard-coded credentials. For scripts in `run:` steps, actionlint can integrate ShellCheck and Pyflakes; those integrations can be turned off. The project documents installation through prebuilt binaries, Docker, source builds, a CI download script, and package managers. A browser playground runs actionlint through WebAssembly and states that it does not send data outside the browser. Documented integrations include reviewdog, GitHub Problem Matchers, super-linter, pre-commit, several editors, and trunk. The project also provides Go APIs and configuration for self-hosted runner labels, configuration variables, and file-specific error ignore patterns. actionlint is free and distributed under the MIT license, with a command-line tool and browser playground.

Good

  • Checks workflow syntax and strongly type-checks expressions.
  • Validates action and reusable workflow inputs, outputs, and secrets.
  • Flags script injection risks and hard-coded credentials.
  • Browser playground runs without sending data outside the browser.

Watch out

  • ShellCheck and Pyflakes integrations are limited to scripts in run steps.
  • 6803 debugging is not implemented.

Who it suits

actionlint suits developers who maintain GitHub Actions workflows and want checks for syntax, expressions, workflow interfaces, and security risks. It also fits teams seeking command-line, browser, editor, or CI integration options.

Verdict

actionlint offers workflow validation, expression checks, and security checks, with command-line, browser, editor, and CI integration options. Its ShellCheck and Pyflakes integrations apply to scripts in `run:` steps and can be disabled.

Plans and prices

From actionlint's own pricing page, checked 11 Oct 2026.

All about pricing
PlanPriceWhat it gives you
actionlintFreeMIT-licensed static checker · command-line tool and browser playground

The facts

Each one read from actionlint's own pages, with the date it was checked.

What it does

Action and workflow validation
It checks action inputs and outputs, as well as inputs, outputs, and secrets in reusable workflows and workflow calls.checked 11 Oct 2026
Configuration
The README says configuration can set self-hosted runner labels, configuration variables, and error ignore patterns by file path.checked 11 Oct 2026
Developer integrations
The usage guide describes integrations with reviewdog, GitHub Problem Matchers, super-linter, pre-commit, VS Code, Emacs, Vim and Neovim, Pulsar Edit, Nova, and trunk.checked 11 Oct 2026
Expression checks
It strongly type-checks `${{ }}` expressions to catch semantic errors such as missing properties and type mismatches.checked 11 Oct 2026
Go library
The project provides Go APIs for using actionlint from a Go program.checked 11 Oct 2026
Install and run
The project documents prebuilt binaries, Docker, building from source, a CI download script, and package-manager installation options.checked 11 Oct 2026
License
The project is distributed under the MIT license.checked 11 Oct 2026
Online playground
The browser playground runs actionlint through WebAssembly and states that it never sends data outside the browser.checked 11 Oct 2026
Purpose
actionlint is a static checker for GitHub Actions workflow files.checked 11 Oct 2026
Security checks
Its security checks include detecting script injection risks from untrusted inputs and hard-coded credentials.checked 11 Oct 2026
Shell and Python integrations
It can integrate ShellCheck and Pyflakes for scripts in `run:` steps; these integrations can be disabled.checked 11 Oct 2026
Support and feedback
The README invites bug reports and feedback, including feature requests and ideas for additional checks, through GitHub issues.checked 11 Oct 2026
Workflow checks
It checks workflow syntax, including unexpected or missing keys.checked 11 Oct 2026

Alternatives to actionlint

All alternatives
  1. 1Cppcheck logo

    Cppcheck

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.4Free plan
  2. 2

    JSHint

    Free planOpen sourceWebAPIExtensionLinux
    7.4Free plan
  3. 3

    Flake8

    Free planOpen sourceAPILinuxmacOSSelf-hosted
    7.3Free plan
  4. 4

    PMD

    Free planLinuxmacOSSelf-hostedWindows
    6.8Free plan
  5. 5

    SwiftLint

    Free planLinuxmacOSWindows
    6.6Free plan
  6. 6Ruff logo

    Ruff

    Free planWebLinuxmacOSSelf-hosted
    6.5Free plan