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 workload | Depot: price rank | GitLab.com hosted runners: price rank | bochka: 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 bochka 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 bochka 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 bochka 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 bochka 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 bochka. | 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 bochka 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 bochka has no GPUs. | Can't run it | Can't run it | Can'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; bochka 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
| Feature | Depot | GitLab.com hosted runners | bochka |
|---|---|---|---|
| What it is | Drop-in GitHub Actions runners, Depot CI and fast Docker builds, plus agent sandboxes and a beta Sandbox SDK | The hosted machines that run GitLab CI/CD jobs from a project's .gitlab-ci.yml | VMs for AI agents that you keep, stop, fork and host from |
| Which CI it plugs into | GitHub Actions, by changing one runs-on label | GitLab CI on GitLab.com, on by default for every project | A full VM you can register as your own runner; no managed CI |
| Isolation | A fresh AWS EC2 instance per job, destroyed after it | A new Google Compute Engine VM per job, deleted right after; Linux jobs run in a privileged Docker container | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts, with root and systemd |
| How long a job can run | Runner jobs run until they finish; Sandbox SDK sandboxes last at most 24 hours | Up to 3 hours per job, whatever the project sets | No session cap on paid plans; runs until you stop it |
| Files between runs | Runners are never reused; a shared cache up to 1000 MiB/s carries files between jobs | The VM is deleted after each job; files carry over through a shared cache (5 GB per archive) or artifacts | Disk persists, saved every minute and on stop; a stopped sandbox costs nothing |
| Fork | No fork or clone API | No; every job starts from a fresh VM | Fork a running sandbox with its disk |
| Docker and /dev/kvm | Docker on Linux runners; /dev/kvm only on Depot CI sandboxes, not on GitHub Actions runners | Docker-in-Docker through privileged mode; nested virtualization not documented | Docker, root, systemd and /dev/kvm on every machine |
| Reaching the machine | SSH into a running Depot CI job for debugging; no documented inbound ports or URLs | None; inbound traffic is blocked and instance runners have no web terminal | SSH, HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv6 or IPv4 |
| Coding agents | Claude Code in remote agent sandboxes, started and resumed with the depot claude command | Duo Agent Platform runs Claude Code, Codex, Amazon Q and Gemini from issues and merge requests, on Premium and Ultimate | Claude Code, Codex, OpenCode and more preinstalled, driven from outside with a prompt, steer and events API |
| Keeping keys out of the machine | Secrets go into the job or sandbox as environment variables | GitLab-managed credentials for its Claude and Codex agents only; other secrets enter as CI/CD variables | Credentials proxy for model providers and any HTTPS API; real keys never enter the sandbox |
| Desktop and computer use | No desktop or computer-use product | Headless; macOS runners do not support jobs that need UI interaction | 60fps desktop and Chromium, computer use and browser control |
| Operating systems and machine sizes | Linux x64 and Arm from 2 to 64 CPUs, Windows Server 2025 and 2022, macOS 26, 15 and 14 | Linux x64 up to 32 vCPU / 128 GB, Linux Arm64, Windows (beta), macOS on Apple silicon (beta), a T4 GPU runner | Linux x64 up to 16 vCPU / 32 GB; Wine for Windows apps; no GPUs |
| Regions | US, or the EU if a project chooses it | US (Google Cloud us-east1 by default for Linux) | EU only (Germany, Finland, France) |
| Self-hosting | Depot Managed in your own AWS account on the Business plan | Open-source GitLab Runner under MIT on your own machines, using no compute minutes | No |
Every feature Battleships tracks (43)
| Feature | Depot | GitLab.com hosted runners | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | Yes | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | No | No | Yes |
| Desktop GUI | No | No | Yes |
| Browser | Yes | Yes | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | No | Yes |
| Persistent disk | Yes | No | Yes |
| Pause/resume | No | No | Yes |
| Automatic snapshots | No | No | Yes |
| Fork/clone | No | No | Yes |
| Live fork (no pause) | No | No | Yes |
| Memory fork | No | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | No | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | No | No | No |
| HTTPS preview URLs | No | No | Yes |
| Raw TCP inbound | No | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | No | No |
| Secret proxy | No | Yes | Yes |
| Secret proxy for any API | No | No | Yes |
| Preinstalled agents | Yes | Yes | Yes |
| Agent harness API | Yes | Yes | Yes |
| MCP server | No | No | No |
| GPU | Yes | Yes | No |
| Windows | Yes | Yes | No |
| Arm64 | Yes | Yes | No |
| Self-hosting | No | Yes | No |
| BYOC | Yes | No | No |
| Open source | No | Yes | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Yes | Not published | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Not published | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Not published | No | No |
| EU data residency | Yes | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable measurement for Depot or for GitLab.com hosted runners: neither was in the public StarSling hpc-sandbox-benchmarks run. bochka 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.
| Scenario | Depot, a month | GitLab.com hosted runners, a month | bochka, 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 bochka, the 1,000 short jobs burst queues starts above 90 a minute and needs more starts per day than the $2,000 plan allows.
| Scenario | Depot | GitLab.com hosted runners | bochka |
|---|---|---|---|
| One coding agent, workdays |
|
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
|
| None that bite |
| Sandboxes for your users |
|
| None that bite |
| 1,000 short jobs at once |
|
|
|
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 bochka 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. bochka 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. bochka 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. bochka's credentials proxy keeps real keys outside, and you drive agents inside from outside through one API.
Use bochka 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: bochka vs Depot and bochka 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 bochka 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 bochka 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 bochka 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 bochka 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 bochka keeps the agent's VM and lets you drive agents inside from outside through an API.
Try bochka
Install the CLI, then run bochka new.
Product preview