Runners

How warm starts work Private beta

A warm start lets a GitHub Actions job skip reinstalling dependencies: on Vitko Runners, a run of your default branch saves its setup at a checkpoint step, and later jobs start from their own copy of it. Setup steps still run, but find their work already done. Pull requests use the saved setup and never save anything.

Updated October 17, 2026

How a warm start is saved and usedA run of the default branch installs tools and dependencies, reaches the checkpoint step, and its setup is saved. Later jobs of the repository, including pull requests, start from their own copy of that setup. Pull requests never save anything.Default-branch runcheckout, install, buildthen the checkpoint stepSaved setuptools, packages, imagesLater jobseach start from their owncopy; setup finds work donePull requestsuse the saved setup, never save

What happens, step by step

  1. You add vitko-inc/checkpoint@v1 right after your job’s setup steps.
  2. A run of your default branch (push, manual or scheduled) reaches the checkpoint. Credentials are removed, and if anything credential-shaped remains, nothing is saved.
  3. What is saved: installed tools and toolchains, package caches and installed packages in the runner’s home, and Docker images. Your workspace is not saved.
  4. Later jobs of the repository start from their own copy of that setup. What one job writes is never seen by another.
  5. After a new commit lands on the default branch, its next run saves a fresh setup.

What CI Bench v1 measured

In CI Bench v1 (measured October 7–11, 2026), Vitko Runners with warm starts and test parallelization was 2.29x faster than GitHub-hosted 2 vCPU; without either feature it was 1.74x faster. Median wall time per job, in seconds:

WorkloadGitHub-hosted 2 vCPUVitko RunnersWith warm starts and test parallelization
cli368 s272 s140 s
codex-lint884 s404 s405 s
container239 s179 s178 s
fd92 s49 s45 s
flask23 s16 s13 s
guava1167 s655 s651 s
monorepo384 s180 s172 s
pydantic179 s105 s69 s
ts784 s372 s243 s
vite603 s350 s199 s
vue121 s63 s32 s

The last column measures both features together. On cli, ts and vite, most of the difference from plain Vitko Runners comes from test parallelization; warm starts were measured on an earlier Vitko Runners build (see the repository’s list of deviations). Full results: CI Bench v1.

Set it up

Inputs, secrets rules and the setup-script option: Warm starts.