We cut CI spend ~60% per day we actually code.
Not a caching trick and not fewer tests. We run the checks once on our own machine, credit each pass as a commit status, and CI skips those jobs. Here are our real numbers — normalized so a short, half-vacation month can’t flatter them.
≈ 59% less per coding day · ~63% fewer CI jobs · cost per job unchanged
How a pass gets credited
The mechanism is a git-native primitive, not a cache. Every check that passes writes a ci-attest/<check> commit status onto the exact commit SHA. Your workflow reads those statuses and skips the matching jobs.
- 1Run the checks where the machine is quiet
th attest runs your repo’s own checks — the same scripts/ci/<name>.sh CI runs — locally or on a build box over SSH, starting your container runtime and installing deps first so local equals CI.
- 2Each pass becomes a SHA-pinned commit status
A pass posts ci-attest/<name> on the commit. The credit is bound to the SHA, so it is a claim about that exact code — never about your laptop.
- 3CI reads the statuses and skips those jobs
Green rows finish in seconds instead of burning runner minutes. That skipped work is where the money goes.
- 4A new commit un-credits everything, automatically
Push new code and the statuses no longer apply, so the checks run for real. Freshness is free — there is no cache to invalidate and no way to ship a stale green. A check that couldn’t run honestly publishes nothing and CI just runs it.
Run it instead of a plain push:
th attest --all # run every check, push, credit the passes
th attest --status # what is credited for HEAD right nowThe numbers, matched day for day
September was only ten days in and half of it was time off — so a raw month-over-month ($828 → ~$47) overstates the win. Instead we compare days of equal intensity: a heavy coding day before attest against one after.
Average runner spend per heavy coding day
| Coding day | Pushes | CI jobs | Runner cost |
|---|---|---|---|
| Jul 8 before | 261 | 2,021 | $62.24 |
| Jul 13 before | 250 | 1,321 | $43.94 |
| Sep 8 after | 146 | 776 | $26.00 |
| Sep 9 after | 102 | 447 | $17.14 |
The tell that it’s real: cost per CI job didn’t move (~$0.03 both months). The runners aren’t cheaper — attest just means ~63% fewer jobs run per coding day, because the expensive check matrices already passed on a quiet machine.
It’s one command, in a single 10 MB binary.
th is free and open source. Point it at your repo’s checks, run it instead of git push, and watch the green rows skip.
brew install SmooAI/tools/th