ovm.sh / research
research note · 2026-07-13 · from v0.0.1

What OVM is and how it works

AI coding CLIs ship daily, break quietly, and update themselves whether you asked or not. OVM is a version manager for them — and behind it, a pipeline that verifies every upstream release on real hardware before you're asked to trust it.

tl;dr

nvm for AI agents, with a canary that meets every release first.

Install, pin, switch, and launch Claude Code, Codex, and Pi side-by-side. Every new upstream version is detected within minutes, installed, benchmarked, and probed with real command execution on a dedicated machine — and only then promoted to the registry this site serves.

the tool

One binary, no shell rc edits. ovm install claude 2.1.207 installs a version; ovm use switches the default; ovm switch is the interactive picker; plain claude keeps working and always resolves to the version you chose. Versions live side-by-side, so a bad release is a ten-second rollback, not an afternoon. Anything named ovm-* on PATH becomes a plugin — the benchmark harness and claudex both arrive that way.

01

Watch

A watcher polls upstream release channels every five minutes — Anthropic's, OpenAI's, and Pi's — and compares against the version registry. New version? It dispatches the pipeline immediately.

02

Verify

A dedicated Mac mini installs the release through OVM itself, benchmarks it natively on macOS and in an arm64 Linux container, and runs execution probes — real authenticated sessions that must execute a real shell command. --version printing the right string proves nothing; a round-tripped command does.

03

Gate

The version registry only promotes releases the probes passed. A release that installs cleanly but can't execute tools stays out — loudly, with an alert, before any user hits it.

04

Publish

Every measurement lands in an append-only ledger with provenance (which runner, which run) and renders on this site's homepage — response time, startup, size, and a normalized performance index per release.

why it exists

The failure mode that motivated all of this: a release that passes every traditional health check and is completely unusable. Codex 0.144.0 shipped its shell execution in a new sidecar binary; installers that didn't know about it produced a CLI where --version worked and every tool call died. The canary write-up covers how that class of bug gets caught now — before a human notices the release exists.