agental
Use cases · CI

CI that fails into a machine you can step into.

Each job runs on a whole VM with root and Docker, and its cache is kept between runs. When a test fails, the machine stops as it was: SSH in and look.

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

.github/workflows/test.yml
jobs: test: - runs-on: ubuntu-latest + runs-on: agental-medium steps: - uses: actions/checkout@v4 - run: npm ci && npm test

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.

.github/workflows/test.yml
jobs: test: runs-on: ubuntu-latest env: AGENTAL_API_KEY: ${{ secrets.AGENTAL_CI_KEY }} steps: - run: npx agental start ci-main - run: npx agental exec ci-main -- sh -c "git fetch && git checkout $GITHUB_SHA && npm test" - if: always() run: npx agental stop ci-main

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.

jobcacheGitHubagentalfaster1,000 runs, GitHub1,000 runs, agental
node-test
fastify's tests
cold1m 11s45s1.6×$24.00$0.67
node-test
fastify's tests
warm49s35s1.4×$12.00$0.53
rust-build
ripgrep's build
cold27s15s1.8×$12.00$0.23
rust-build
ripgrep's build
warm20s14s1.4×$12.00$0.21
docker-build
umami's image
cold3m 03s1m 29s2.1×$36.00$1.33
docker-build
umami's image
warm4m 32s56s4.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.

Scripts, raw samples and the method: agental-io/ci-runner-benchmark

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.

300 jobs a day8 minutes each4 vCPU72,000 minutes a month
providerhow it is priced, for thisa month
agentalFleet, $100 with $100 of time included; 1,200 h of medium at $0.054 and the warm machines stopped use $69.44$100.00
UbicloudPremium 4 vCPU, the default for new users, $0.004 a minute, less $2.50 free$285.50
NamespaceBusiness, $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 runnersLinux 4-core, $0.012 a minute; included minutes never cover larger runners$864.00
DepotDeveloper, $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.

ubicloud.com/docs/about/pricing · namespace.so/pricing · blacksmith.sh/pricing · docs.github.com (Actions runner pricing) · depot.dev/pricing

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.

agentalGitHub runnersBlacksmithDepotNamespaceUbicloud
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 diskactions/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× hardwareUp to 10×About 2×7× price-performance

— not on their own pages, read 25 October 2026. Their figures are their own claims.

Run your next job on a machine that remembers.

Run a job →