ovm.sh / how it works

the whole system

How OVM works

Three parts, one rule. The client keeps every version installed and switches by moving a pointer. The verification decides which upstream releases are safe to offer. The machine is where that proof actually runs. The rule that binds them: silence is never success — a check that could not run must say so.

benchmarks

The client

Every installed version is an immutable directory under ~/.ovm/; the active one is a symlink. Switching moves the symlink — instant, and rollback can't fail because nothing was deleted. Launching reads local state only; all network work happens in a detached background process, so a dead network can never delay the tool you typed. OVM updates itself the same way, with an automatic rollback if the new version can't answer a probe. ovm hatch sets a machine up from nothing; your own local builds install as dev:<label> and behave like any other version.

The verification

Installing cleanly proves nothing — Codex 0.144.0 installed, launched, and couldn't execute a single command. So every new release is installed on real hardware and driven through real checks (a live tool call, sidecar presence, version swap, downgrade behavior) before the registry offers it. Fail and it's withheld; pass and it's benchmarked in the same pass and published to a feed. If it runs, it ships — and every objection is published, never silently dropped.

The machine

One always-on Mac mini carries the authenticated lane: signed-in accounts, a lived-in home, real macOS Gatekeeper verdicts, plus a Linux container leg. Only schedules and maintainer dispatches can reach it — no pull request, no outside code. It heartbeats every five minutes and is judged from elsewhere, so a dark machine can't look like a quiet week.

Want the mechanics, the gate ledger, and the trust model? Switch to in depth above.

Benchmarks is the data · releases are on GitHub · dev log is the write-ups · claudex is the unusual one.