act: run your GitHub Actions workflows locally with Docker
The nektos/act repository: a command-line tool that reads .github/workflows, simulates GitHub events and runs the jobs in Docker containers on your machine, so you can test a workflow without pushing.
Drafted with AI from official documentation. Scripts were run in a test environment and repository links verified. Awaiting a human check. Did it work for you? Last edited Outdated?
nektos/act
- Stars
- 72.3k
- Forks
- 2.1k
- Language
- Go
- Licence
- MIT
- Last push
- 9 Aug 2026
On GitHub: Run your GitHub Actions locally 🚀
Open on GitHubact (about 72,300 stars on GitHub) was started by Casey Lee and is maintained by the nektos community under the MIT license. It parses your workflow files, builds the same event payloads GitHub would send, and runs each job inside a Docker container that stands in for the GitHub-hosted runner. Most uses actions work unchanged because act downloads and executes them the same way the real runner does.
Use it to iterate on a workflow without a commit-push-wait loop for every typo, to run a job offline, or to reproduce a failing CI job on your own machine with a shell. It is not a perfect replica: the runner images are smaller than GitHub’s (the default catthehacker/ubuntu:act-latest image lacks many preinstalled tools), some contexts and services differ, and anything that needs GitHub itself (publishing a release, OIDC) cannot be tested fully. For most build-and-test jobs it is accurate enough to save many pushes.
Install it with brew install act, from the Releases page, or as a GitHub CLI extension with gh extension install https://github.com/nektos/gh-act. Then, from a repository with workflows:
act -l
act push
act pull_request -j test
act -j test -s GITHUB_TOKEN="$(gh auth token)"
act workflow_dispatch --input environment=staging
act -j test --container-architecture linux/amd64
-llists the jobs and the events that trigger them; a bare event name runs everything that event would trigger,-jruns one job.-s NAME=valuepasses a secret; omit the value to be prompted, or use--secret-file .secrets. Many actions need aGITHUB_TOKENeven locally to download other actions without rate limits.- On Apple Silicon,
--container-architecture linux/amd64avoids images that have no arm64 build. The first run asks which runner image size to use and writes the choice to~/.config/act/actrc.
The repository README documents every flag and the known differences from GitHub-hosted runners; the issue tracker is active and worth searching when an action behaves differently under act. Credit to Casey Lee and the act contributors.
Did this work for you?
No votes yet. Be the first.
If it did not work, the report form below tells the editors what went wrong.
See also
- 0039 A minimal GitHub Actions workflow that runs your tests Add one YAML file under .github/workflows and GitHub runs your tests on every push and pull request. Here is a small, explained… Intermediate · Step by step · Any system Article GitHub Actions 15 Oct 2026
- 0044 A starter set of Git aliases Short names for the Git commands you type all day, such as a one-line status, a graph log, and a safe force… Beginner · Cheat sheet · Linux, macOS, Windows Script Git tools 15 Oct 2026
- 0256 Manage infrastructure as code with Terraform: from first file to plans on pull requests Learn the full Terraform workflow without a cloud account: variables, a module, outputs, state, plan, apply and destroy, a backend for shared… Beginner · Guided project · Linux, macOS, Windows Article GitHub Actions · Terraform 15 Oct 2026
- 0379 Your first GitHub Actions workflow: run tests on every push Build a working GitHub Actions pipeline from nothing: a small Python project with a test, a workflow file that runs pytest on… Beginner · Guided project · Any system Article GitHub Actions · Pipelines, runners & hooks 15 Oct 2026
- 0380 GitHub Actions cheat sheet: triggers, matrix, secrets, caching The GitHub Actions syntax you reach for most, in copy-ready blocks: event triggers and filters, build matrices, secrets and permissions, dependency caching… Intermediate · Cheat sheet · Any system Article GitHub Actions 15 Oct 2026
- 0382 Fix: Resource not accessible by integration and other GitHub Actions permission errors A workflow step fails with Resource not accessible by integration, 403 on git push, or a GitHub CLI call is refused. The… Intermediate · Fixes an error · Any system Article GitHub Actions 15 Oct 2026
History
Every saved edit is kept. The plot on the sleeve draws one line per edit. Open any edit to see exactly what changed.
- Dominik +2,070 chars