“"act is only capable of running very simple workflows." — reubenmorais, Hacker News (https://news.ycombinator.com/item?id=33750654)”
You know that feeling when fixing a GitHub Actions workflow means pushing a commit, waiting for a runner to queue, waiting for execution, then reading the logs — only to find a one-line YAML typo? That cycle repeats for every change until the workflow passes. The friction compounds when your CI queue is busy: a 30-second fix turns into a 15-minute commit-wait-fix loop. Every change to a workflow file is a blind push into a remote environment you cannot inspect locally.
Point act at any repo that has a .github/workflows/ directory and it does three things: reads the YAML, builds a dependency graph of which actions run in what order, then calls the Docker API to pull an image that approximates GitHub's runner environment and executes each step inside a container. GitHub's environment variables — all the GITHUB_* ones your actions reference — are injected to match what GitHub itself would provide. Think of it as a local replay engine: you give it the same YAML GitHub reads, it runs the same steps in containers that mirror GitHub's spec, and you get the same log output in your terminal instead of waiting for a remote queue.
If you write or maintain GitHub Actions workflows and routinely push 'fix CI' commits just to see what breaks, act is built for you. It fits best when your workflows are limited to build, lint, and unit test steps that do not call the GitHub API, use deployment environments, or require cloud identity tokens. Act is not suitable yet for workflows that depend on job.permissions, concurrency, GITHUB_STEP_SUMMARY, cancel-workflow-action, or GCP/AWS Workload Identity — those fail silently or produce incorrect results locally.
Worth trying if your workflows are limited to build, lint, and unit test steps with no GitHub API calls or cloud authentication — community reports on HN confirm it works reliably in those cases: 'We have used this many times during GitHub outages. It's great and does what it says.' (montroser, HN). Avoid treating it as a full CI emulator for complex pipelines; the same community reports that it 'is only capable of running very simple workflows' and that workflows touching the GitHub API 'will fail' (reubenmorais and Benjamin_Dobell, HN). For complex pipelines, Dagger is the better-architected alternative.
Deep-dive insight, Easy and Pro modes, plus action playbooks — the full breakdown is one tap away.