# 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, FUSE mounts, kernel features (eBPF, mounts, cgroups)

No: snapshots, memory snapshots, fork/clone, pause/resume, persistent disk, whole disk survives a stop, 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, usage per sandbox (API), 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

## Company

- Ownership: public
- Stage: public [source](https://about.gitlab.com/press/releases/2026-03-03-gitlab-reports-fourth-quarter-fiscal-year-2026-financial-results/)
- Accelerators: Y Combinator Winter 2015 [source](https://www.ycombinator.com/companies/gitlab)
- Total raised: $436M (estimated: Widely reported aggregate (Crunchbase/press) of GitLab's pre-IPO venture rounds (seed through Series E, 2015-2019) prior to its October 2021 IPO; not independently re-verified line-by-line in this pass.) [source](https://en.wikipedia.org/wiki/GitLab)
- Last round: public, 2021-10 (confirmed) [source](https://about.gitlab.com/press/releases/2026-03-03-gitlab-reports-fourth-quarter-fiscal-year-2026-financial-results/)
- Investors: Iconiq Capital, Khosla Ventures, Goldman Sachs, GV (Google Ventures), ICONIQ Growth, Y Combinator
- Revenue: unknown

This card covers GitLab.com's hosted CI runners / compute minutes feature (macOS, Windows, Linux x86/Arm64/GPU), part of the core GitLab.com SaaS product, not a standalone company. GitLab Inc. (ticker GTLB) is a public company on NASDAQ since its October 2021 IPO; it was a Y Combinator company (Winter 2015 batch, per YC's own listing and widely documented company history), making its funding stage 'public' (last priced private round was pre-IPO; the IPO supersedes stage classification). Total pre-IPO funding (~$436M) and revenue (FY2026 ARR > $1B) are from aggregator/press sources and were not independently reconciled against a full SEC filing in this pass due to the 15-minute time budget.

## 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/
