Install, downgrade, and manage OpenAI Codex desktop app versions on macOS.
On Intel Macs, cvm automatically repacks the ARM-only Codex release into a native x86_64 app — no Rosetta required. On Apple Silicon, it works as a straightforward version manager.
npx @lpshanley/cvm@latest <command>Or install globally:
npm i -g @lpshanley/cvm
cvm <command>List all available Codex versions from the Sparkle update feed.
VERSION BUILD DATE SIZE
26.305.950 1050 2025-02-28 117.8 MB
25.200.800 1040 2025-02-10 95.4 MB
Download and install a specific version (or latest) to /Applications/Codex.app.
cvm install # install latest
cvm install 25.200.800 # install specific version
cvm install latest --dest ~/Apps/Codex.app
cvm install latest --dry-runOn Intel, the app is automatically repacked with native x86_64 Electron, native modules, and CLI binaries before installing.
Options:
--dest <path>— install destination (default/Applications/Codex.app)--no-sign— skip ad-hoc code signing--no-cache— rebuild everything from scratch--dry-run— resolve the version and show the planned install without downloading or writing files
Download a version to ~/Downloads without installing.
cvm download # download latest
cvm download 25.200.800 # download specific version
cvm download latest -o ~/Desktop
cvm download latest --dry-runOn Intel, produces a CodexIntel.dmg with an Applications shortcut for drag-to-install. On Apple Silicon, copies the .app directly.
Options:
-o, --output <path>— output directory (default~/Downloads)--no-sign— skip ad-hoc code signing--no-cache— rebuild everything from scratch--dry-run— resolve the version and show the planned output without downloading or writing files
Manually repack a .app or .dmg for Intel. Useful for converting an already-downloaded Codex release.
cvm repack ~/Downloads/Codex.app # → CodexIntel.dmg
cvm repack ~/Downloads/Codex.app My.app --no-dmg
cvm repack ~/Downloads/Codex.dmg
cvm repack ~/Downloads/Codex.dmg --dry-runOptions:
--no-sign— skip ad-hoc code signing--no-cache— rebuild everything from scratch--no-dmg— output a bare.appinstead of a DMG--keep-sparkle— keep Sparkle auto-update (advanced)--dry-run— inspect the request and show the planned repack without writing output
Check for and install Codex updates. Compares the installed version against the latest in the update feed.
cvm update # check and update interactively
cvm update --yes # skip confirmation prompts
cvm update --dry-runIf Codex is not installed, offers to install the latest version. If an update is available, confirms before proceeding — automatically closing Codex if it's running and reopening it after the update.
Options:
--dest <path>— path to Codex.app (default/Applications/Codex.app)--yes— skip confirmation prompts--no-sign— skip ad-hoc code signing--no-cache— rebuild everything from scratch--dry-run— check the installed version and show the planned install or update without changing the app
Show metadata from a .app bundle or .dmg: version, architecture, Electron version, native modules, etc.
cvm inspect /Applications/Codex.app
cvm inspect ~/Downloads/CodexIntel.dmgView, prune, or clear the build cache (~/.cache/cvm/). The cache stores downloaded Electron runtimes and rebuilt native modules.
cvm cache status
cvm cache clear # clear everything
cvm cache clear --electron # only Electron zips
cvm cache clear --natives # only native module builds
cvm cache prune --days 30 # remove entries older than 30 daysCodex ships as an ARM-only (arm64) Electron app. On Intel Macs, cvm:
- Downloads the matching x86_64 Electron runtime from GitHub
- Uses it as the app shell, transplanting Codex's
Resources/andInfo.plist - Patches
Info.plistto set the correct executable name and renderer URL - Rebuilds native modules (
better-sqlite3,node-pty) for x64 using@electron/rebuild - Installs real x86_64
codexandrgCLI binaries from npm - Removes Sparkle auto-update artifacts (to prevent overwriting with ARM builds)
- Ad-hoc signs the app bundle
- Packages into a compressed DMG with an Applications shortcut
Native module builds and Electron downloads are cached at ~/.cache/cvm/ for fast subsequent runs.
pnpm install
pnpm dev list # run from source
pnpm check # lint (biome)
pnpm test # unit tests (vitest)
pnpm build # compile TypeScriptISC