GitHub Repos beginner 3 min read May 18, 2026 · Updated May 19, 2026
Public Preview Sign in free for the full digest →

Act: Run CI Locally

“70,338 stars and the official docs still list 14+ GitHub Actions features that silently do nothing when you run them locally”

Act: Run CI Locally
2 Views
0 Likes
0 Bookmarks
Source · github.com

“"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.

cidevopsgithub-actionsgolangopen-sourceclidocker

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.

01
Local workflow execution — runs .github/workflows/ inside Docker containers on your machine, cutting the push-wait-read cycle to seconds for simple workflows
02
GitHub environment mirroring — injects all GITHUB_* environment variables to match GitHub's spec, so actions that reference these variables behave the same locally as remotely
03
Task runner mode — use GitHub Actions YAML as a local task runner replacing Makefiles, so CI definitions and local dev commands live in one file instead of two
04
Three-tier image system — choose micro (~200MB, fast pull, missing tools), medium (catthehacker/ubuntu:act-latest, better coverage), or large (18GB+, near-parity with actual GitHub runners) based on your fidelity needs
05
Dry run mode — act -n shows which steps would execute without pulling images or running anything, letting you validate workflow graph resolution first
06
Cross-platform install — available via Homebrew, Chocolatey, Scoop, WinGet, Nix, and GitHub CLI extension on Linux, macOS, and Windows
07
VS Code integration — 'GitHub Local Actions' extension provides IDE-native workflow execution without leaving the editor
Who it’s for

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 exploring

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.

Developer playbook
Tech stack, code snippet, sentiment, alternatives.
PM playbook
Adoption angles, user fit, positioning.
CEO playbook
Traction signals, ROI, build vs buy.
Deep-dive insight
Full long-form analysis, no fluff.
Easy mode
Core idea, fast — when you need the gist.
Pro mode
Technical nuance, edge cases, tradeoffs.
Read the full digest
Go beyond the preview

Deep-dive insight, Easy and Pro modes, plus action playbooks — the full breakdown is one tap away.

Underrated tools. Unfiltered takes.

Read the full digest in the Snaplyze app for deep-dive insight, Easy and Pro modes, and the playbooks you can actually use.

Install Snaplyze →