dev-tools 3 min read

Runner Images: GitHub Actions' Official PowerShell Base Images

actions/runner-images is the MIT-licensed PowerShell repository behind the official GitHub Actions runner images. The repository has 13K stars since June 2019.

By
Share: X in
GitHub social preview card for actions/runner-images

TL;DR: actions/runner-images is the MIT-licensed PowerShell repository that builds the official GitHub Actions runner images. The repository has 13K stars and 3,868 forks across roughly seven years under the actions GitHub Organization.

What it is

The repository actions/runner-images is published by the actions GitHub Organization, which GitHub itself maintains. The repository’s description is the simplest possible statement: “GitHub Actions runner images.” That is the whole product: the Packer, PowerShell, and shell scripts that build the base images used by every hosted GitHub Actions runner.

The language listed on GitHub is PowerShell, which reflects how Windows image generation dominates this repository’s daily workflow. License is MIT. There is no separate homepage configured on the GitHub metadata, since the canonical home is the Actions service itself.

What the data points tell you

  • 13,307 stars and 3,868 forks since the repository was created on 2019-06-05.
  • 136 open issues, an unusually low count for an infrastructure repository that powers every hosted CI job on GitHub. That low number is mostly a function of how issues are routed: many bug reports about runner behavior end up as Microsoft support tickets rather than on the public issue tracker.
  • Topics empty, which keeps the project reachable through GitHub’s documentation rather than through search tags.
  • Most recent push 2026-09-25, two days before this post.
  • Owner is actions, the GitHub Organization.

How to try it

The reader probably already uses this repository every day without realizing it. The interesting evaluation path is offline:

  1. Clone with git clone https://github.com/actions/runner-images.
  2. Install Packer plus the cloud provider or hypervisor the team already runs on top of.
  3. Build a custom image based on one of the upstream definitions, adding the team’s required toolchain.
  4. Bake the resulting image into a self-hosted runner pool, replacing the upstream runner with the customized variant for jobs that need pre-installed dependencies.

This is the entry point teams use when GitHub-hosted runners are too small or too slow for the workload. The repository is the source of truth for the official images, even when the team’s actual CI runs on a fork.

When to evaluate Runner Images

Pick Runner Images when the team is building self-hosted runners and wants the same baseline toolchain that GitHub-hosted runners use. The image definitions, the helper scripts, and the changelog of pre-installed software all live in this repository.

Skip it when the team is happy with hosted GitHub Actions and has no reason to standardize on a self-hosted runner. The repository is the most useful when the team’s CI workload outgrows the hosted runner model.

Configuration surface

Configuration lives in Packer HCL plus the helper PowerShell scripts that bake each image variant. The repository’s structure is mirrored on how GitHub publishes the official images, with a separate workflow per image family.

Source and Accuracy Notes

  • Project page: (none configured on GitHub)
  • Source repository: actions/runner-images (verified via GitHub API html_url)
  • License: MIT (verified via GitHub API license.spdx_id)
  • Stars at time of writing: 13,307