per minute, per runner

Billed by the second

One rate per runner size. No seat licence, no build-minute bundles, no charge for the minutes a generic provider spends acquiring a machine.

8 vCPU

$0.014/ min

billed per second

memory
32 GB
local nvme
600 GB
architecture
x86_64 · aarch64
cold start
0ms
concurrency
unlimited

Workspaces under 120 crates. Services, CLIs, libraries.

Select 8 vCPU

16 vCPU

default
$0.026/ min

billed per second

memory
64 GB
local nvme
1.2 TB
architecture
x86_64 · aarch64
cold start
0ms
concurrency
unlimited

Default. Sized for a full workspace test run.

Select 16 vCPU

32 vCPU

$0.049/ min

billed per second

memory
128 GB
local nvme
2.4 TB
architecture
x86_64 · aarch64
cold start
0ms
concurrency
unlimited

Release builds, LTO, multi-target matrices, large monorepos.

Select 32 vCPU
no seat licence · no build-minute bundles · cache storage billed at $0.02 / GB-month
no upsell path

Every tier is the whole product

The scheduler, the cache and the schedule API are not add-ons. The only thing that changes between tiers is the machine.

Cold start
0ms, every tier
Concurrency
Unlimited
Compiler-aware cache
Included
Reflink restore
Included
Codegen-unit scheduling
Included
Linker offload
Included
Crate-level schedule API
Included
Cache storage
$0.02 / GB-month
Egress
Not billed
Isolation
microVM per run
Support
Shared channel, engineer on the other end
Compliance
SOC 2 Type II
worked example

What a month actually costs

One team, one workspace, the same 2,400 pipeline runs. The rate is not the interesting number; the minutes are.

Monthly cost comparison for the tarski workspace
linegeneric runnerlathe
Minutes billed per run7.8 min2.1 min
Runs per month2,4002,400
Billed minutes per month18,720 min5,040 min
Rate per minute$0.032$0.026
Compute$599.04$131.04
Cache storage, 18.4 GB$0.00$0.37
Monthly total$599.04$131.41−78%

Assumes the tarski workspace: 297 crates, 16 vCPU, 2,400 runs per month, one full test suite per run. Generic rate is the published US list price for a 16-core Linux runner, billed per minute rounded up. Lathe is billed per second at the 16 vCPU list rate. Committed use is not applied on either side.

the honest version

Three ways to run Rust CI

Self-hosted runners solve the hardware problem and hand you an operations problem. Generic managed runners solve neither. This is the whole comparison, including the parts that do not favour us.

Lathe compared with a generic managed runner and a self-hosted fleet
LatheGeneric managed runnerSelf-hosted fleet
Execution
Cache keyed on rustc fingerprintyeslockfile hashlockfile hash
Cache restore pathreflink, same hostnetwork tarballlocal disk
Codegen-unit schedulingyesnono
Linker offload to high-clock tieryesnobuild it yourself
Cold start, p500ms31s0ms
Operation
Crate-level build observabilityyeslog textlog text
Concurrency ceilingnoneplan-cappedyour fleet size
Runner patching and upkeepourstheirsyours
Cache sizing and evictionmanagedmanual, 10 GB capyours
Isolation modelmicroVM per runmicroVM per rundepends
Cost
Billing granularityper secondper minute, rounded upper instance-hour
Idle capacity paid fornonenonepaid hourly
Engineer time to operatenonenone0.2–1 FTE

Self-hosted is the right answer for some teams, and we will say so on a call. If your workspace is small enough that compile time is not the constraint, a generic runner is cheaper and you should keep it.

enterprise

Larger than this

Dedicated capacity pools, a private cache domain, VPC peering to your registry, an SLA with a number in it, and a named engineer. Priced against your measured minutes, not a seat count.

  • Dedicated capacity
  • Private cache domain
  • VPC peering
  • 99.9% SLA
  • Named engineer
  • Annual invoicing
Talk to an engineer
open source

Open source runs free

Public repositories with an OSI-approved licence and no commercial CI budget run on the 16 vCPU tier at no cost. No logo placement asked for, no case study, no expiry.

terms

OSI-approved licence · public repository · no commercial CI budget · reviewed once, not annually

Apply for the OSS tier
billing

How the meter works

What exactly is billed?

Wall-clock seconds a runner is assigned to your job, from the first step to the last. Acquisition is 0ms and is not billed. Queue time is not billed. A cancelled job stops billing at the cancel, and the cache written up to that point is kept.

Is there a free tier?

The first 2,000 minutes on the 16 vCPU tier are free, once, so the second build — the one worth measuring — costs nothing. After that it is the list rate. Public repositories under the OSS terms are free permanently.

How does committed use work?

20% off list across every tier for a 12-month term, billed monthly against a minimum. Overage above the commitment is charged at the committed rate, not at list. No penalty for undershooting in a given month.

What does cache storage cost?

$0.02 per GB-month, measured as the p50 of daily snapshots. Deduplicated across branches, so a 297-crate workspace with 40 open branches stores roughly one workspace, not forty. Egress is not billed.

Do the linker tier and the compile fleet bill separately?

No. Linker offload runs on different hardware but bills at the rate of the tier you selected, for the seconds it takes. You are not charged twice for the same second.

Can we start without talking to sales?

Yes. Install the GitHub App, change one line, add a card when the free minutes run out. Sales exists for VPC peering, SLAs and annual invoicing — not as a gate in front of the product.

Removes what should not be there

Point one workflow at a Lathe runner. If the median build does not drop, keep the data and leave.