# GitLab.com hosted runners

Official pricing: https://docs.gitlab.com/ci/pipelines/compute_minutes/  
Category: macos · Isolation: vm

## Pricing regimes (raw)

- **macOS hosted runners (beta), compute minutes x cost factor** (sizes): saas-macos-medium-m1 (4 vCPU / 8 GB, factor 6) 4 vCPU/8 GiB $3.6/h; saas-macos-large-m2pro (6 vCPU / 16 GB, factor 12) 6 vCPU/16 GiB $7.2/h [beta]
- **Windows hosted runners (beta), compute minutes x cost factor** (sizes): saas-windows-medium-amd64 (2 vCPU / 7.5 GB, factor 1) 2 vCPU/7.5 GiB $0.6/h [beta]
- **GitLab.com hosted Linux x86 (small/medium)** (sizes): saas-linux-small-amd64 2 vCPU/8 GiB $0.6/h; saas-linux-medium-amd64 4 vCPU/16 GiB $1.2/h
- **GitLab.com hosted Linux x86 large+ (Premium/Ultimate)** (sizes): saas-linux-large-amd64 8 vCPU/32 GiB $1.8/h; saas-linux-xlarge-amd64 16 vCPU/64 GiB $3.6/h; saas-linux-2xlarge-amd64 32 vCPU/128 GiB $7.2/h
- **GitLab.com hosted Linux Arm64** (sizes): saas-linux-small-arm64 2 vCPU/8 GiB $0.6/h; saas-linux-medium-arm64 4 vCPU/16 GiB $1.2/h; saas-linux-large-arm64 8 vCPU/32 GiB $1.8/h
- **GitLab.com hosted Linux GPU (T4) (Premium/Ultimate)** (sizes): saas-linux-medium-amd64-gpu-standard 4 vCPU/15 GiB $0/h

## Features

Yes: idle auto-stop, custom image (Docker or snapshot), your own Docker/OCI image, full VM (own kernel), Docker inside, root, browser, preinstalled agents, self-hosting, open source, SOC 2, SSO, GPU, arm64, Windows, macOS, Python, Node.js, webhooks, scheduled runs (cron), audit logs, agent harness API, gVisor or VM (no shared kernel), firewall inside (nftables), secret proxy

No: snapshots, memory snapshots, fork/clone, pause/resume, persistent disk, volumes, ≥24 h sessions, start from your own snapshot, nested virtualization, systemd, desktop GUI, computer-use API, code interpreter, browser + desktop control, anti-bot stealth, CAPTCHA solving, residential IPs, SSH, public IPv4, HTTPS preview URLs, custom domains, raw TCP inbound, egress allowlist, static egress IP, private networking, BYOC, HIPAA, GPU desktop, HTTP method/path egress rules, wake on request, live resize, live fork (no pause), memory fork, EU data residency, MCP server, automatic snapshots, snapshots on demand, hosted agent API (their own agent), inbound access rules, secret proxy for any API, extra volumes, shared volumes

Unknown: everything else. Evidence (source + quote) per feature: https://battleships.dev/data/providers/gitlab-runners.json → feature_evidence

## Caveats

- $ per compute minute = extra-minute pack price ($10 per 1,000, one-time); included plan minutes are consumed x cost factor.
- macOS and Windows runners are beta; macOS needs Premium/Ultimate (or the OSS program). Linux x86 (factors 1/2/3/6/12), Linux arm64 (1/2/3) and GPU T4 (factor 7) are encoded as separate modes.
- Usage = job duration in seconds / 60 x cost factor (created/pending time excluded); no per-job minimum documented, so per-second metering is encoded for all modes.
- Open-source program projects get reduced cost factors (not encoded).
- Linux runner hourly = cost factor x $0.01/compute-minute (extra-minute pack price); included minutes are cost-factor minutes, so included_usd = minutes x $0.01 applies to every Linux size.
- Arm64 medium/large are Premium/Ultimate-only; the engine may pick them on Free.
- Included plan minutes are a hard quota: when used up, instance runners stop processing new jobs and running jobs are dropped after 1,000 minutes over quota. Overage only via prepaid $10/1,000-minute packs (valid 12 months, roll over). Engine treating overage as automatic pay-as-you-go is optimistic.
- Hosted runner jobs time out after 3 hours; VMs are single-job and deleted afterwards; no inbound connections.
- Open-source program public projects: cost factor 0.5 (forks 0.008); OSS/Education/Startups programs get free Ultimate with 50K minutes/month.

## How this provider charges


GitLab bills hosted runners in **compute minutes × a cost factor**. Plans include a monthly quota, and extra minutes cost **$10 per 1,000** (one-time packs, verified on about.gitlab.com/pricing). That gives **$0.01 per compute minute**, which confirms the sweep's assumption.

## Regime table

| # | Regime | When it applies | How billed | Numbers | Source |
|---|---|---|---|---|---|
| 1 | Free | Default | 400 compute minutes/month. No macOS | $0 | https://about.gitlab.com/pricing/ |
| 2 | Premium | Paid | $29/user/month (billed annually), 10,000 compute minutes/month | $29/user | same |
| 3 | Ultimate | Sales | 50,000 compute minutes/month | custom | same |
| 4 | Extra compute minutes | Over quota | One-time packs | $10 per 1,000 minutes | same |
| 5 | macOS runners (beta) | Premium/Ultimate/OSS | Minutes × cost factor | saas-macos-medium-m1 4 vCPU/8 GB/50 GB **factor 6 → $0.06/min**; saas-macos-large-m2pro 6 vCPU/16 GB **factor 12 → $0.12/min** | https://docs.gitlab.com/ci/pipelines/compute_minutes/, https://docs.gitlab.com/ci/runners/hosted_runners/macos/ |
| 6 | Windows runners (beta) | All tiers | Minutes × factor | saas-windows-medium-amd64 2 vCPU/7.5 GB/75 GB, Windows 2022, **factor 1 → $0.01/min** | https://docs.gitlab.com/ci/runners/hosted_runners/windows/ |
| 7 | Linux (reference) | All | Minutes × factor | small 1, medium 2, large 3 | compute_minutes docs |

## Gotchas

1. macOS and Windows runners are still beta. macOS needs Premium or above.
2. Windows comes in one size only (2 vCPU / 7.5 GB). A 4-vCPU Windows job can't run on GitLab-hosted runners.
3. The dollar figure is the extra-pack price. Included minutes are consumed × factor, so a Premium quota covers only about 1,667 macOS M1 minutes.

## Worked example

Workload: 4 vCPU / 8 GiB, 50 concurrent × 8 h/day × 22 days (8,800 h = 528,000 min), 30% CPU, 50 GiB snapshots, 100 GiB egress. Illustrative.

| Regime | Compute-minutes | Cost | **Monthly** |
|---|---|---|---|
| macOS M1 medium (4/8, factor 6) | 528,000 × 6 = 3,168,000 | minus 10,000 included (Premium) → 3,158,000 × $0.01 = $31,580 | **$31,609** (with 1 Premium seat) |
| Windows medium | n/a (2 vCPU only) | | |

Snapshots and egress are not metered or published.

Sources: https://docs.gitlab.com/ci/pipelines/compute_minutes/ · https://about.gitlab.com/pricing/ · https://docs.gitlab.com/ci/runners/hosted_runners/macos/ · https://docs.gitlab.com/ci/runners/hosted_runners/windows/
