The cache stays on the machine.
Between jobs the machine is stopped, not thrown away. The next job starts on the same disk, with the dependencies, the image layers and the build cache already there.
Only what the job needs.
A dependency that phones home cannot. The job's machine reaches the registries you list, held outside the machine where a script with root cannot change it.
One line in your workflow.
Connect GitHub from the console, then ask for a sandbox by size. Each repository keeps a pool of them, stopped between jobs with what the last job left on the disk, so there is no cache step to write.
A pull request from a fork gets a sandbox of its own, deleted after. Jobs run as runner with sudo, Docker and the usual toolchains. How it works
Three lines in your workflow.
From GitHub Actions, GitLab, Buildkite or a cron: the CLI starts the machine, runs the job on it and stops it. The key may only use the CI machines, from your runners' addresses.
300 eight-minute jobs a day on four medium machines come to about $69.44 a month, inside Fleet's $100.
Measured on real jobs.
Three open-source jobs, run three times each on GitHub's 4-core runner and on a medium sandbox, cold and with their caches warm. Medians, end to end, on 1 November 2026.
| job | cache | GitHub | agental | faster | 1,000 runs, GitHub | 1,000 runs, agental |
|---|---|---|---|---|---|---|
| node-test fastify's tests | cold | 1m 11s | 45s | 1.6× | $24.00 | $0.67 |
| node-test fastify's tests | warm | 49s | 35s | 1.4× | $12.00 | $0.53 |
| rust-build ripgrep's build | cold | 27s | 15s | 1.8× | $12.00 | $0.23 |
| rust-build ripgrep's build | warm | 20s | 14s | 1.4× | $12.00 | $0.21 |
| docker-build umami's image | cold | 3m 03s | 1m 29s | 2.1× | $36.00 | $1.33 |
| docker-build umami's image | warm | 4m 32s | 56s | 4.9× | $48.00 | $0.84 |
GitHub: the queue and the job, its cache restore and save included, billed at $0.012 a minute rounded up per job. agental: getting the machine (a create when cold, a start of the stopped sandbox when warm), the job and the stop, billed by the second at $0.054 an hour. The jobs ran in the sandbox through the API. Not counted: a kept machine costs about $1.97 a month while stopped, a medium needs the Fleet plan, and GitHub runs a public repository free.
What it costs elsewhere.
One month of the same work, at each provider's own list prices, plan fees included. Read on 25 October 2026.
| provider | how it is priced, for this | a month |
|---|---|---|
| agental | Fleet, $100 with $100 of time included; 1,200 h of medium at $0.054 and the warm machines stopped use $69.44 | $100.00 |
| Ubicloud | Premium 4 vCPU, the default for new users, $0.004 a minute, less $2.50 free | $285.50 |
| Namespace | Business, $250 with 250,000 unit-minutes; 4 units a minute; 38,000 more at $0.0015 | $307.00 |
| Blacksmith | $0.008 a minute for 4 vCPU, after 3,000 free 2-vCPU minutes | $564.00 |
| GitHub runners | Linux 4-core, $0.012 a minute; included minutes never cover larger runners | $864.00 |
| Depot | Developer, $20 with 2,000 minutes; 4 vCPU counts twice; $0.006 a minute after | $872.00 |
Same 8 minutes everywhere. The others say their jobs finish faster than GitHub's, which would lower their figure, and so would ours: real jobs ran 1.4–4.9× faster here, measured above. Blacksmith's 4 vCPU rate follows its docs' rule of twice the 2 vCPU rate. Ubicloud's standard tier is said to be closed to new customers.
The same, elsewhere.
The runners people use for CI, as their own pages put it. They sell speed; this sells a machine that keeps what it had.
| agental | GitHub runners | Blacksmith | Depot | Namespace | Ubicloud | |
|---|---|---|---|---|---|---|
| A whole VM with root and DockerRun anything a job needs, Docker in Docker included. | ✓ | ✓ | — | — | — | ✓ |
| Its cache kept between jobsDependencies, image layers, build output. | The whole disk | actions/cache | ✓ | — | Cache volumes | — |
| Step into a failed jobA shell on the machine it failed on. | SSH | — | Debugging | — | Interactive debugging | — |
| Outbound rules per jobOnly the hosts the job needs. | ✓ | — | — | — | — | — |
| A one-line change to runs-onSwap the runner and nothing else. | ✓ | — | ✓ | ✓ | ✓ | ✓ |
| Faster than GitHub's runnersOurs as measured above; the others as each claims it. | 1.4–4.9×, measured | — | 2× hardware | Up to 10× | About 2× | 7× price-performance |
— not on their own pages, read 25 October 2026. Their figures are their own claims.