Depot vs GitLab.com hosted runners

Depot is a faster drop-in runner for GitHub Actions, with a shared cache and fast Docker builds. GitLab.com hosted runners are the built-in machines for GitLab CI, paid in compute minutes, and every job ends within 3 hours.

The companies and products

Depot

Depot is a build and CI platform: faster Docker builds, drop-in GitHub Actions runners, its own Depot CI, and newer sandboxes for coding agents.

Depot's main product is GitHub Actions runners: you change one runs-on label and each job runs on a fresh AWS EC2 instance that is thrown away when the job ends, with Linux, Arm, Windows and macOS sizes and a shared fast cache. It also sells remote agent sandboxes that run Claude Code in a container, and a Sandbox SDK in public beta whose sandboxes live at most 24 hours. It is built for engineering teams that want CI and builds to finish sooner, so it is a different kind of product than an agent sandbox, and this page compares where the two overlap.

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.

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. “125th cheapest of 377” means 124 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 workloadDepot: price rankGitLab.com hosted runners: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
An agent that builds an app over days loses its machine when a Depot or GitLab job ends; on boat the disk, Docker and /dev/kvm stay on one VM.
331st of 367, with limits
$8,688 a month
347th of 367, with limits
$14,454 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 does not fit GitLab's 3-hour jobs or Depot's Sandbox SDK, which ends a sandbox after at most 24 hours; a boat sandbox has no session cap on paid plans.
86th of 366, with limits
$13,148 a month
353rd of 366, with limits
$21,858 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
311th of 345, with limits
$1,188 a month
320th of 345, with limits
$1,896 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 runner takes inbound traffic for your users to reach, while boat serves HTTPS URLs on up to 50 ports and raw TCP.
318th of 361, with limits
$3,713 a month
331st of 361, with limits
$6,133 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
311th of 360, with limits
$17,908 a month
318th of 360, with limits
$29,762 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
319th of 364, with limits
$2,888 a month
330th of 364, with limits
$4,758 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
Both are made for CI: Depot plugs into GitHub Actions with one runs-on change, GitLab's runners are on by default for GitLab projects, and boat is a full VM you register as your own runner.
125th cheapest of 377
$1,736 a month
128th cheapest of 377
$2,089 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Both runners start fresh for each job and are thrown away after, so a dev box that keeps its state all month fits boat.
199th of 368, with limits
$534 a month
358th of 368, with limits
$805 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
Both runners are headless, while boat gives each agent a 60fps desktop with Chromium and computer use.
321st of 369, with limits
$2,600 a month
342nd of 369, with limits
$4,278 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
139th of 367, with limits
$1,304 a month
144th of 367, with limits
$2,118 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
139th of 346, with limits
$1,763 a month
143rd of 346, with limits
$2,854 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
312th of 338, with limits
$35,108 a month
319th of 338, with limits
$58,429 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
81st of 360, with limits
$863 a month
87th of 360, with limits
$1,383 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, Depot lists GPU runners on its Business plan, and boat has 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 macOS machines for CI, Depot on macOS 26, 15 and 14 runners and GitLab on Apple silicon in beta for Premium and Ultimate; boat runs Linux only.
10th of 36, with limits
$248 a month
24th of 36, with limits
$1,069 a month
Can't run it

Key features

FeatureDepotGitLab.com hosted runnersboat
What it isDrop-in GitHub Actions runners, Depot CI and fast Docker builds, plus agent sandboxes and a beta Sandbox SDKThe hosted machines that run GitLab CI/CD jobs from a project's .gitlab-ci.ymlVMs for AI agents that you keep, stop, fork and host from
Which CI it plugs intoGitHub Actions, by changing one runs-on labelGitLab CI on GitLab.com, on by default for every projectA full VM you can register as your own runner; no managed CI
IsolationA fresh AWS EC2 instance per job, destroyed after itA new Google Compute Engine VM per job, deleted right after; Linux jobs run in a privileged Docker containerFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts, with root and systemd
How long a job can runRunner jobs run until they finish; Sandbox SDK sandboxes last at most 24 hoursUp to 3 hours per job, whatever the project setsNo session cap on paid plans; runs until you stop it
Files between runsRunners are never reused; a shared cache up to 1000 MiB/s carries files between jobsThe VM is deleted after each job; files carry over through a shared cache (5 GB per archive) or artifactsDisk persists, saved every minute and on stop; a stopped sandbox costs nothing
ForkNo fork or clone APINo; every job starts from a fresh VMFork a running sandbox with its disk
Docker and /dev/kvmDocker on Linux runners; /dev/kvm only on Depot CI sandboxes, not on GitHub Actions runnersDocker-in-Docker through privileged mode; nested virtualization not documentedDocker, root, systemd and /dev/kvm on every machine
Reaching the machineSSH into a running Depot CI job for debugging; no documented inbound ports or URLsNone; inbound traffic is blocked and instance runners have no web terminalSSH, HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv6 or IPv4
Coding agentsClaude Code in remote agent sandboxes, started and resumed with the depot claude commandDuo Agent Platform runs Claude Code, Codex, Amazon Q and Gemini from issues and merge requests, on Premium and UltimateClaude Code, Codex, OpenCode and more preinstalled, driven from outside with a prompt, steer and events API
Keeping keys out of the machineSecrets go into the job or sandbox as environment variablesGitLab-managed credentials for its Claude and Codex agents only; other secrets enter as CI/CD variablesCredentials proxy for model providers and any HTTPS API; real keys never enter the sandbox
Desktop and computer useNo desktop or computer-use productHeadless; macOS runners do not support jobs that need UI interaction60fps desktop and Chromium, computer use and browser control
Operating systems and machine sizesLinux x64 and Arm from 2 to 64 CPUs, Windows Server 2025 and 2022, macOS 26, 15 and 14Linux x64 up to 32 vCPU / 128 GB, Linux Arm64, Windows (beta), macOS on Apple silicon (beta), a T4 GPU runnerLinux x64 up to 16 vCPU / 32 GB; Wine for Windows apps; no GPUs
RegionsUS, or the EU if a project chooses itUS (Google Cloud us-east1 by default for Linux)EU only (Germany, Finland, France)
Self-hostingDepot Managed in your own AWS account on the Business planOpen-source GitLab Runner under MIT on your own machines, using no compute minutesNo
Every feature Battleships tracks (43)
FeatureDepotGitLab.com hosted runnersboat
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationYesNoYes
RootYesYesYes
SystemdNoNoYes
Desktop GUINoNoYes
BrowserYesYesYes
Computer-use APINoNoYes
SSHYesNoYes
Persistent diskYesNoYes
Pause/resumeNoNoYes
Automatic snapshotsNoNoYes
Fork/cloneNoNoYes
Live fork (no pause)NoNoYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesNoYes
Idle auto-stopYesYesNo
Wake on requestNoNoNo
HTTPS preview URLsNoNoYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistYesNoNo
Secret proxyNoYesYes
Secret proxy for any APINoNoYes
Preinstalled agentsYesYesYes
Agent harness APIYesYesYes
MCP serverNoNoNo
GPUYesYesNo
WindowsYesYesNo
Arm64YesYesNo
Self-hostingNoYesNo
BYOCYesNoNo
Open sourceNoYesNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsNot publishedYesNo
SSOYesYesNo
SOC 2YesYesNo
HIPAANot publishedNoNo
EU data residencyYesNoYes
Zero data retentionNot publishedNot publishedYes

Performance

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

There is no comparable measurement for Depot or for GitLab.com hosted runners: neither was in the public StarSling hpc-sandbox-benchmarks run. boat did 26.69 Node.js build-and-test runs per second there at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts, so we do not compare speed here.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Depot and GitLab.com hosted runners 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.

ScenarioDepot, a monthGitLab.com hosted runners, 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
$122 · Developer · with limits$119 · Premium · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$534 · Developer · with limits$805 · Premium · 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
$5,710 · Developer · with limits$9,491 · Premium · 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
$1,628 · Developer · with limits$2,658 · Premium · 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
$3,588 · Developer · with limits$5,896 · Premium · with limits$2,000 · $2000/mo · with limits

Depot: Depot plans cost $20 or $200 a month and include GitHub Actions, Depot CI and Docker build minutes. After that a 2-CPU Linux runner costs $0.006 a minute, and bigger sizes multiply it.

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 machines. Premium is $29 per user a month billed yearly with 10,000 minutes per group, and extra minutes cost $10 per 1,000, bought ahead.

GitLab.com hosted runners: 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 runner fits the agent scenarios as a sandbox, because both are CI runners whose machine is gone after the job. GitLab also stops every job at 3 hours and stops new jobs when a group's minutes run out, while Depot says its runners have no concurrency limits. GitLab publishes no limit on how many runners run at once, so the 300 and 1,000 machine scenarios are not confirmed there. On boat, the 1,000 short jobs burst queues starts above 90 a minute and needs more starts per day than the $2,000 plan allows.

ScenarioDepotGitLab.com hosted runnersboat
One coding agent, workdays
  • different kind of product: CI runner
  • egress price not published
  • 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
None that bite
One agent that never stops
  • different kind of product: CI runner
  • sessions end after 24 h: needs restarts to run 24/7
  • egress price not published
  • 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
None that bite
50 agents in parallel
  • different kind of product: CI runner
  • egress price not published
  • how many machines can run at once: limit not published, probably fine at 50 (the typical published limit is 50)
  • 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
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
  • 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
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
  • 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
  • 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 Depot when

your code is on GitHub and you want faster Actions and Docker builds, bigger Linux runners, or macOS and Windows runners with jobs in the US or the EU.

  • Faster GitHub Actions in one line. For GitHub teams: change one runs-on label and jobs use Depot's runners and a shared cache up to 1000 MiB/s.
  • No 3-hour wall, bigger machines. For long or heavy builds: Depot runner jobs have no documented time cap and Linux runners go up to 64 CPUs.
  • EU region and egress rules. For teams that need jobs in the EU, or outbound traffic on Linux runners limited by IP, CIDR or hostname.

Use GitLab.com hosted runners when

your code is on GitLab and you want CI that works from the first pipeline, a T4 GPU runner, or your own free runners alongside.

  • Native CI for GitLab projects. For code on GitLab.com: hosted runners are on by default and run on pushes, merge requests and schedules.
  • A T4 GPU and agents on issues. On Premium and Ultimate you get a Linux runner with an NVIDIA T4, and Claude Code or Codex working on issues.
  • Your own runners, free of minutes. For teams with spare machines: the open-source GitLab Runner runs there, and those jobs use no compute minutes.

Where boat fits

Depot and GitLab.com hosted runners are CI services, and for building and testing code they do the job well. If what you are really running is agents, both give you a machine that is thrown away when the job ends. boat gives each agent a full VM that keeps its disk, runs as long as you want and can be reached from outside.

A machine that stays

On Depot and GitLab every job starts on a clean machine, and GitLab cuts it off at 3 hours, so an agent reinstalls tools and reclones repos each run. The workaround is a cache, capped at 5 GB per archive on GitLab.

Apps people can reach

Neither runner takes inbound traffic, so an agent's dev server, preview or webhook needs a third-party tunnel inside each job, which dies with it. boat serves HTTPS URLs on up to 50 ports, raw TCP and SSH.

Agents you drive from outside, keys kept out

Depot passes secrets as environment variables and GitLab as CI/CD variables, where code the agent runs can read them. boat's credentials proxy keeps real keys outside, and you drive agents inside from outside through one API.

Use boat when what you are running is agents: a full VM that keeps its disk, forks, runs past 3 hours, serves apps on HTTPS ports and keeps real API keys out of reach. Compare it one to one: boat vs Depot and boat vs GitLab.com hosted runners.

Questions people ask

Is Depot cheaper than GitLab.com hosted runners?

In our CI runners use case Depot comes to $1,736 a month and GitLab to $2,089, and boat to $86. In the agent scenarios they are close for one workday agent ($122 on Depot, $119 on GitLab), but for one agent running all month Depot is $534 against $805 on GitLab. GitLab's included plan minutes can make small CI loads cheaper.

Which is faster, Depot or GitLab runners?

We have no comparable CPU measurement for either one, so we do not rank their speed. Depot's pitch is a shared cache up to 1000 MiB/s and fast Docker builds, and its Linux runners go up to 64 CPUs against 32 vCPU on GitLab.

How long can a job run on Depot and on GitLab?

GitLab.com hosted runners stop every job at 3 hours, whatever the project sets. Depot documents no hard cap for its GitHub Actions runner jobs, but its Sandbox SDK ends a sandbox after at most 24 hours. A boat sandbox has no session cap on paid plans.

Can Depot and GitLab runners run Docker?

Yes. Depot's Linux runners run Docker and Depot also speeds up image builds, and GitLab runs Docker-in-Docker through privileged mode. Depot's GitHub Actions runners have no /dev/kvm and GitLab does not document it, while boat has Docker, systemd and /dev/kvm on every VM.

Can I SSH into Depot or GitLab runners?

Depot lets you SSH into a running Depot CI job for debugging. GitLab blocks inbound traffic to hosted runners and its web terminal works only on runners you host yourself. You can SSH into a boat sandbox and open HTTPS URLs on up to 50 ports.

Can I run AI coding agents on them?

Depot runs Claude Code in remote agent sandboxes, and GitLab's Duo Agent Platform runs Claude Code and Codex as CI/CD jobs on Premium and Ultimate. Both machines end with the job and take no inbound traffic, while boat keeps the agent's VM and lets you drive agents inside from outside through an API.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons