GitLab.com hosted runners vs Bitrise

GitLab.com hosted runners run the CI jobs of a GitLab project, each on a fresh VM that is deleted within 3 hours. Bitrise is a CI service built for iOS and Android apps on Apple silicon Macs and Linux, and it also rents remote dev environments with a persistent disk.

The companies and products

GitLab.com hosted runners

GitLab.com hosted runners are the machines that run GitLab CI/CD jobs for projects on GitLab.com, paid for in compute minutes.

This is a CI service, not a sandbox API. Each job gets a new VM on Google Cloud (Linux and Windows) or on AWS Mac hardware (macOS), with passwordless sudo, and the VM is deleted right after the job. It is built for building, testing and deploying the code in a GitLab project, and GitLab's Duo Agent Platform also runs Claude Code and Codex agents as CI/CD jobs on these runners.

Bitrise

Bitrise is a mobile CI/CD platform that builds, tests and ships iOS and Android apps on its own Mac and Linux machines.

Bitrise is a different kind of product: a CI service. Each build runs in its own virtual machine from a Bitrise stack, and the machine is rolled back after the build. Since 2026 it also sells Remote Dev Environments, macOS and Linux sessions with a persistent disk where you can start Claude Code from a CLI or drive the machine through an MCP server. It is built for mobile teams.

Which use cases each one fits

For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “128th cheapest of 377” means 127 of the other 376 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.

Use case and its workloadGitLab.com hosted runners: price rankBitrise: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs agents that keep their checkout and services; GitLab jobs end within 3 hours, and Bitrise dev environment tiers run only 1 to 5 machines at once.
347th of 367, with limits
$14,454 a month
38th of 367, with limits
$3,403 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An always-on assistant cannot live in a 3-hour GitLab job; a Bitrise dev session can run for days but stops after a set idle time and for maintenance now and then.
353rd of 366, with limits
$21,858 a month
73rd of 366, with limits
$1,970 a month
5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
320th of 345, with limits
$1,896 a month
289th of 345, with limits
$658 a month
186th of 345, with limits
$2,000 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
Neither is built to hand machines to your own users: GitLab runners only run pipeline jobs and take no inbound traffic, and Bitrise Pro runs at most 10 macOS or 30 Linux builds at once.
331st of 361, with limits
$6,133 a month
269th of 361, with limits
$1,604 a month
Cheapest of 361
$209 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
318th of 360, with limits
$29,762 a month
271st of 360, with limits
$6,818 a month
34th of 360, with limits
$2,000 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
330th of 364, with limits
$4,758 a month
289th of 364, with limits
$1,274 a month
10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
GitLab's runners are the native choice for a GitLab project's pipelines, Bitrise is best for iOS and Android pipelines, and boat suits Linux jobs that need a warm disk or run past 3 hours.
128th cheapest of 377
$2,089 a month
181st of 377, with limits
$859 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Bitrise dev environments keep a persistent disk you can SSH into; GitLab's runners have no SSH and delete the VM after each job, and boat keeps a Linux disk with snapshots every minute.
358th of 368, with limits
$805 a month
168th of 368, with limits
$119 a month
18th cheapest of 368
$26 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Bitrise lets an agent drive a macOS desktop through its MCP server, GitLab's runners are headless, and boat streams a 60fps Linux desktop with Chromium.
342nd of 369, with limits
$4,278 a month
68th of 369, with limits
$1,186 a month
6th cheapest of 369
$200 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
144th of 367, with limits
$2,118 a month
132nd of 367, with limits
$746 a month
7th cheapest of 367
$200 a month
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
143rd of 346, with limits
$2,854 a month
131st of 346, with limits
$862 a month
6th cheapest of 346
$90 a month
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
319th of 338, with limits
$58,429 a month
256th of 338, with limits
$13,088 a month
71st of 338, with limits
$1,800 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
87th of 360, with limits
$1,383 a month
73rd of 360, with limits
$537 a month
2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
GitLab has a Linux runner with an NVIDIA T4 on Premium and Ultimate; Bitrise and boat have no GPUs.
Can't run itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Both rent Apple silicon Macs: GitLab's macOS runners are in beta on Premium and Ultimate, Bitrise sells Mac CI and Mac dev sessions, and boat has no macOS.
24th of 36, with limits
$1,069 a month
21st of 36, with limits
$400 a month
Can't run it

Key features

FeatureGitLab.com hosted runnersBitriseboat
Kind of productCI runners for jobs defined in a GitLab project's pipeline fileMobile CI/CD service, plus Remote Dev Environments for developers and agentsSandbox API: create, stop, fork and reach Linux VMs from your code
IsolationNew VM per job on Google Compute Engine, deleted right after; Linux jobs run in a privileged Docker containerEach build or session is its own VM; CI VMs are rolled back after each buildFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts, with root and systemd
How long a machine runsJobs time out after 3 hours, whatever the project settingCI builds time out at 210 minutes (up to 4 hours on Enterprise); dev sessions have no time cap but stop after 5 days idle by defaultNo session cap on paid plans; you set the time to live
Files between runsThe VM is deleted after each job; files carry over only through the shared cache or artifactsDev sessions keep one persistent disk, not backed up; CI machines keep nothingDisk persists, saved every minute and on stop; a stopped sandbox costs nothing
ForkNo; every job starts from a fresh VM and a container imageNo; warm pools hand out fresh sessions booted from a templateFork a running sandbox with its disk
Docker and nested virtualizationDocker-in-Docker through privileged mode; nested virtualization not documentedDocker and nested virtualization on Linux, so Android emulators run; macOS sessions have neitherDocker, root, systemd and /dev/kvm on every machine
Reaching the machineNone; inbound traffic is blocked and instance runners have no web terminalSSH, VNC and a web terminal on dev sessions; no public URL for a portSSH, HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv6 or IPv4
Desktop and computer useHeadless; macOS runners do not support jobs that need UI interactionVNC desktop on macOS sessions; an open-source MCP server takes screenshots and controls itLinux desktop streamed at 60fps, Chromium, computer use API
Coding agentsDuo Agent Platform runs Claude Code, Codex, Amazon Q and Gemini from mentions in issues and merge requests, on Premium and UltimateClaude Code started from the Bitrise CLI and used in a terminal; other agents through warmup scriptsSeven agents preinstalled, driven from outside with a prompt, steer and events API
Keeping API keys out of the machineGitLab-managed credentials for its Claude and Codex agents only; other secrets enter the job as CI/CD variablesSecrets are environment variables, so the value enters the machineCredentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out
Operating systems and GPUsLinux x64 and Arm64, Windows (beta), macOS on Apple silicon (beta), and a Linux runner with an NVIDIA T4macOS on Apple silicon (M2 Pro, M4, M4 Pro) with iOS simulators, and Linux from 2 to 48 vCPUsLinux x64 only, no GPUs
Mobile build pipelineGeneral CI with caches and artifacts; you add mobile steps yourselfWorkflows, code signing, build cache, release management and over-the-air updatesNone built in; you install the tools you need
RegionsUS (Google Cloud us-east1 by default for Linux)US, Ireland, Frankfurt, Singapore and SydneyEU only (Germany, Finland, France)
Self-hostingOpen-source GitLab Runner on your own machines, with no compute minutes usedBitrise on AWS in your own account, or fully self-hosted Bitrise RunnersManaged only
Every feature Battleships tracks (43)
FeatureGitLab.com hosted runnersBitriseboat
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdNoNoYes
Desktop GUINoYesYes
BrowserYesYesYes
Computer-use APINoYesYes
SSHNoYesYes
Persistent diskNoYesYes
Pause/resumeNoYesYes
Automatic snapshotsNoNoYes
Fork/cloneNoNoYes
Live fork (no pause)NoNoYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsNoNoYes
Idle auto-stopYesYesNo
Wake on requestNoNoNo
HTTPS preview URLsNoNoYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistNoNoNo
Secret proxyYesNoYes
Secret proxy for any APINoNoYes
Preinstalled agentsYesYesYes
Agent harness APIYesYesYes
MCP serverNoYesNo
GPUYesNoNo
WindowsYesNoNo
Arm64YesYesNo
Self-hostingYesYesNo
BYOCNoYesNo
Open sourceYesNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsYesNot publishedNo
SSOYesYesNo
SOC 2YesYesNo
HIPAANoNoNo
EU data residencyNoYesYes
Zero data retentionNot publishedNot publishedYes

Performance

GitLab.com hosted runnersNot measured
BitriseNot measured
boat26.69 runs/s

Neither GitLab.com hosted runners nor Bitrise has a result in the hpc-sandbox-benchmarks CPU test, so we do not compare their speeds. boat did 26.69 runs per second on it at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. GitLab.com hosted runners and Bitrise have no published run in this suite yet, so there is no like-for-like number to compare.

Pricing in five scenarios

Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.

ScenarioGitLab.com hosted runners, a monthBitrise, a monthboat, a month
One coding agent, workdays
4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days
$119 · Premium · with limits$260 · Pro · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$805 · Premium · with limits$119 · RDE Pro · with limits$26 · $20/mo
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$9,491 · Premium · with limits$2,309 · Pro · with limits$317 · $20/mo × 3 seats
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$2,658 · Premium · with limits$812 · Pro · with limits$200 · $100/mo × 2 seats
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$5,896 · Premium · with limits$1,538 · Pro · with limits$2,000 · $2000/mo · with limits

GitLab.com hosted runners: Each job uses compute minutes equal to its run time times a cost factor, from 1 for small Linux up to 12 for the biggest Linux and macOS machines. Plans include monthly minutes per group (400 on Free, 10,000 on Premium at $29 per user a month billed yearly), and extra minutes cost $10 per 1,000, bought ahead.

Bitrise: Bitrise CI is sold by plan: Starter is a flat fee with unlimited usage on one machine at a time, and Pro adds per-minute machine time and a monthly build allowance on top of its fee. Remote Dev Environments charge a monthly base fee by tier with some included minutes per OS, then per minute.

Bitrise: Plans start at $20 a month, and the whole fee is usage credit spent per second while a sandbox runs. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Neither fits the five agent scenarios as a sandbox. GitLab jobs end after 3 hours with nothing kept on disk, and GitLab publishes no limit on how many runner VMs run at once. Bitrise CI builds stop at 210 minutes on Pro, Pro runs at most 10 machines at once in our scenarios, and a dev environment tier runs 1 to 5 VMs. boat fits four of the five; the 1,000-job burst needs more starts per day than its $2,000 plan allows.

ScenarioGitLab.com hosted runnersBitriseboat
One coding agent, workdays
  • Premium: sessions capped at 3 h
  • missing persistent disk
  • different kind of product: CI runner
  • no persistent disk: files lost when it stops or sleeps
  • Pro: sessions capped at 3.5 h
  • Pro: Linux M size not allowed
  • different kind of product: CI runner
  • egress price not published
None that bite
One agent that never stops
  • Premium: sessions capped at 3 h
  • missing persistent disk
  • different kind of product: CI runner
  • no persistent disk: files lost when it stops or sleeps
  • different kind of product: dev-environment
  • egress price not published
None that bite
50 agents in parallel
  • Premium: sessions capped at 3 h
  • missing persistent disk
  • different kind of product: CI runner
  • no persistent disk: files lost when it stops or sleeps
  • Pro: max 10 concurrent
  • Pro: sessions capped at 3.5 h
  • different kind of product: CI runner
  • egress price not published
None that bite
Sandboxes for your users
  • different kind of product: CI runner
  • not confirmed: how many machines can run at once (you need 300; the typical published limit is 50)
  • egress price not published
  • Pro: max 10 concurrent
  • different kind of product: CI runner
  • egress price not published
None that bite
1,000 short jobs at once
  • different kind of product: CI runner
  • not confirmed: how many machines can run at once (you need 1,000; the typical published limit is 50)
  • egress price not published
  • Pro: max 10 concurrent
  • different kind of product: CI runner
  • egress price not published
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)

Which one should you use?

Use GitLab.com hosted runners when

your code lives on GitLab and you want CI that works from the first pipeline, with Windows, Arm64 or GPU runners, or your own runners at no minute cost.

  • Native CI for GitLab projects. If your code lives on GitLab, these runners work from the first pipeline with no extra service to wire up.
  • Windows, Arm64 and a GPU. Teams that need Windows or Linux Arm64 builds, or a T4 GPU in CI, get a hosted runner for each.
  • Open-source runner, free of minutes. You can run the MIT-licensed GitLab Runner on your own machines, and those jobs use no compute minutes.

Use Bitrise when

you build and ship iOS or Android apps, need Apple silicon Macs with simulators, or want a Mac dev machine with a persistent disk for developers and agents.

  • Built for mobile apps. If you ship iOS or Android apps, Bitrise handles builds, code signing, caching, store releases and over-the-air updates.
  • Macs with a disk that stays. Remote dev environments give developers and agents a Mac or Linux machine with a persistent disk, SSH and a desktop.
  • More regions. Bitrise runs in the US, Ireland, Frankfurt, Singapore and Sydney, or inside your own AWS account.

Where boat fits

Both are CI services, and for building a GitLab project or a mobile app they are the right tools. If what you are really running is agents, boat gives each one a full Linux VM that keeps its disk, runs with no session cap and can be reached from outside. It does not run macOS, so iOS work stays on a Mac service.

A machine that stays

A GitLab job is deleted within 3 hours and a Bitrise CI build rolls back after 210 minutes, so an agent reinstalls and reclones each time. A Bitrise dev session keeps a disk, but it is not backed up; boat saves the disk every minute.

Reach it and fork it

GitLab blocks inbound traffic and Bitrise has no public URL for a port, so a preview or webhook needs your own tunnel. Neither can copy a running machine; boat serves HTTPS on 50 ports and forks a running sandbox.

Agents you drive from outside, keys kept out

GitLab runs agents from issue mentions and Bitrise starts Claude Code in a terminal, and on both most secrets sit inside the VM as variables. boat drives seven agents through an API and keeps real keys in a credentials proxy.

Use boat when your agents need a full Linux VM that keeps its disk, runs past 3 hours, forks, serves HTTPS on open ports and runs coding agents you drive from outside. Compare it one to one: boat vs GitLab.com hosted runners and boat vs Bitrise.

Questions people ask

Is GitLab.com hosted runners cheaper than Bitrise?

In our agent scenarios Bitrise comes out lower: one agent running all month is $805 on GitLab against $119 on Bitrise, and 50 agents in parallel $9,491 against $2,309. For one agent on workdays GitLab is lower, $119 against $260. Neither fits these scenarios, and for plain CI the minutes in your plan matter most.

Which is faster, GitLab runners or Bitrise?

We cannot say: neither has a result in the CPU benchmark we use. boat did 26.69 runs per second on it at 4 vCPU / 8 GB.

Can GitLab runners or Bitrise build iOS apps?

Both can. GitLab has macOS runners on Apple silicon in beta for Premium and Ultimate, and Bitrise is built for iOS and Android with Macs, simulators, code signing and store releases. boat runs Linux only.

Can they run Docker?

GitLab Linux jobs run in a privileged Docker container, so Docker-in-Docker works. Bitrise runs Docker and Android emulators on Linux machines, but not inside macOS sessions. boat has Docker, systemd and /dev/kvm on every machine.

Can I run AI coding agents on them?

GitLab's Duo Agent Platform runs Claude Code and Codex as CI jobs from issues and merge requests on Premium and Ultimate. Bitrise starts Claude Code in a remote dev environment from its CLI. On boat the agents come preinstalled and you drive them through an API.

Is boat SOC 2 compliant?

SOC 2 is in progress. We're open about where we stand: live status at status.ascii.dev and our data retention policy at docs.boat.dev/data-retention.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons