Stop pushing-and-praying
Act (nektos/act) runs your GitHub Actions workflows locally in Docker. Useful for: iterating on workflow YAML without burning CI minutes or polluting the Actions tab with 'fix typo' commits, debugging matrix expansion, and validating expressions.
Install + run
brew install act # or: gh extension install nektos/gh-act
act -W .github/workflows/ci.yml
act -W .github/workflows/ci.yml -j test # specific job
act pull_request # specific event
Limits
- Act runs in Docker; macOS jobs can't run on a Linux Act invocation.
- Some GitHub-hosted features (Apple-specific actions, secrets vault, OIDC) don't work locally.
- Image differs from GitHub's; expect minor surprises.
Companion tools
actionlint— static lint of workflow YAML. Catches typos in event names, expressions, etc., without running anything.gh act— GitHub CLI extension that wraps act.