Preloop is an agent-native CI engine, built in Rust. Every job runs in its own hardware-isolated microVM that boots in under 200 milliseconds on macOS, Linux, or Windows. The same engine runs locally or self-hosted: a workflow that passes on your machine passes in CI.
INSTALL_SCRIPT COPY_INSTALL_CMD COPY_AGENT_INSTRUCTIONSTHE OLD VERIFICATION STACK WAS BUILT FOR HUMAN-SPEED OUTPUT.
Legacy CI was built for human-speed output: minutes to provision a runner, containers that share your host kernel, and failure pages designed for manual inspection.
When an AI agent ships code all day, every change is untrusted by default. Waiting four minutes for a runner to boot nullifies the advantage of automated generation.
Drop-in GitHub Actions compatibility. Your existing workflows run unchanged, verified against the official runner, not approximated.
Every job gets its own dedicated microVM. A real kernel, hardware-isolated, not a shared one. Boots in under 200 ms on macOS, Linux, or Windows.
Pause-on-failure. When a job fails, the machine freezes. Open a shell at the exact failure state, or fork the machine and retry from the step that broke.
Built-in Debug Adapter Protocol bridge. Attach a DAP client like VS Code to a paused job and step through the failure. Built in, coming soon.
Run x86_64 workflows on an Apple Silicon Mac. Rosetta translation keeps them near native speed, so amd64 CI does not need an amd64 machine.
After the first run the whole filesystem stays warm. Dependencies, compiled output, and package caches are still there, so the next run skips the install phase entirely.
THE SHA THAT LANDS ON GITHUB IS THE SHA THAT WAS TESTED.
Every other CI waits for GitHub to hand it a webhook. When that delivery path breaks, a tunnel drops, a secret rotates, or GitHub has an incident, CI goes dark and the missed events never come back.
Preloop inverts it. You submit the run straight to the server and it starts immediately. GitHub becomes the place results land, not the thing runs wait on.
| GHA_COMPATIBILITY | Drop-in for existing workflows. Property-tested, formally verified, with wire compatibility steps. |
| COLD_START_LATENCY | < 200 ms to a running microVM |
| PLATFORMS | macOS (Apple Silicon) · Linux · Windows |
| WORKSPACE | Runs your working tree, uncommitted and untracked files included |
| CONTROL_PLANE | Rust end to end: runner, control plane, CLI |
| ISOLATION | One dedicated microVM per job; network off by default |
| MEM_FOOTPRINT | Elastic. The host commits only what a job actually uses |
| SELF_HOSTING | preloop serve runs the control plane and microVM pool on your own box |
An existing GitHub Actions workflow, run as-is. No config changes, no rewrites.
A failing job, a split terminal. Fix the file on the host, rerun, and the same warm machine goes green.
An agent drives the loop: submit, read the verdict, patch, resubmit. Machine-readable end to end.
ACT REIMPLEMENTS THE RUNNER. WE REIMPLEMENTED THE CONTROL PLANE AND THE RUNNER, WITH THE REAL WIRE PROTOCOL BETWEEN THEM.
act is a pragmatic Go binary that runs steps in Docker containers on your host kernel. Fast to start, but it cannot guarantee parity: no wire protocol, no OIDC, no concurrency groups, no debugger. On the same 39-scenario benchmark, act gets 29/39 right, aksh gets 31/39 — with typical runs in 400-800 ms.
| FEATURE | ACT | AKSH |
| SCOPE | Runner only (Go CLI) | Control plane + runner (Rust) |
| FIDELITY | Behavioral, mostly works | Official wire protocol, the runner cannot tell the difference |
| EXECUTION | Docker containers on your kernel | One dedicated microVM per job |
| VERIFICATION | Community bug reports | Golden wire captures replayed, differential + property tests |
| BENCHMARK | 29/39 scenarios (74%) | 31/39 scenarios (79.5%), sub-second typical runs |
| DEBUGGING | None | DAP debugger, breakpoints, stepping |
| OIDC + CONCURRENCY | Not supported | Full OIDC provider, concurrency groups |
| PLATFORM | Linux Docker only | macOS, Linux, Windows |
FULL COMPARISON → DOCS/ACT_VS_AKSH.MD (act vs agent-ci vs aksh vs Gitea Actions, with the full 39-scenario benchmark)