DEV Community

gracefullight
gracefullight

Posted on

oh-my-agent: Antigravity becomes a first-class vendor

Antigravity's agy CLI just landed as a first-class vendor in oh-my-agent, three weeks before Google retires the Gemini CLI for unpaid tiers on June 18, 2026. If your model_preset still points at gemini, the CLI now warns you at runtime and on every oma update so you can switch before requests start failing.

That migration set the theme for the week: 139 commits, cli shipped through 8.9.0, and the vendor layer grew a real backbone.

What's new

  • Antigravity (agy) as a first-class vendor: a dedicated auth probe, two model entries (gemini-3.1-pro, gemini-3.5-flash), a real built-in preset, native dispatch via agy --dangerously-skip-permissions -p, a doctor probe, an install-picker option, MCP config, HUD wiring, keyless image generation, and a recap transcript parser.
  • Global install mode: oma install --global writes to ~/.agents/ instead of the project tree, backed by an install-context singleton that resolves OMA_HOME > --global > cwd, a sudo-refusal guard, WSL guidance, and an atomic install lock.
  • oma uninstall [--global] with a dry-run preview that partitions oma-owned files from user-authored content and never touches the latter.
  • oma skills audit: a zero-dependency TF-IDF boundary check that flags confusable skill descriptions in a warn band (>=0.60) and a fail band (>=0.75), surfaced as a warning inside oma doctor.
  • L1 state snapshots: a new oma state command plus state-boundary, state-emit, and decision-verifier hooks that enforce decision snapshots during a run.
  • Cursor as a vendor: plugin and marketplace manifests, Composer transcript ingestion for recap, auth:status wiring, and composer-2.5 presets.

What's fixed

  • npm publish had been running unauthenticated and 404ing on the 8.x releases. The publish step now sets both NODE_AUTH_TOKEN and NPM_CONFIG_TOKEN so neither bun code path can fall back to an empty token.
  • Windows CI hung inside vitest on 13 of the last 15 runs. We capped the job at 20 minutes and skipped the vitest step on Windows (lint, typecheck, build, and the PowerShell installer smoke test still run) while we bisect the hanging test.
  • verify's closure check reported real artifacts as missing because Bun's globSync does not match through hidden segments like .agents/. It now uses a deterministic readdir-based segment walker.
  • Forced LF line endings repo-wide via .gitattributes, so Windows checkouts stop tripping the Biome format check.

What's better

  • link() is now the single vendor reconciliation kernel. oma install, oma update, and oma link each duplicated the per-vendor write pipeline; consolidating it removed roughly 110 lines from update.ts and 130 from install.ts, and closed a drift where the Antigravity HUD was never wired during normal install or update.
  • Vendor functions follow one convention now: apply<Vendor><Subject> for writes, needs<Vendor><Subject>Update for idempotency guards.
  • New safeWriteJson / safeReadJson helpers do atomic write-and-rename with backup rotation, plus a guard that refuses to clobber vendor state files like ~/.claude.json.
  • Workflow skills are unified under one SSOT at .agents/skills/ (Migration 011); vendor surfaces are symlinks into it instead of copies.
  • The Windows installer (install.ps1) now bootstraps serena via uv tool, matching the Unix path.

Installation

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
Enter fullscreen mode Exit fullscreen mode
# Windows (PowerShell)
irm https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

oh-my-agent is built for teams who run more than one agent vendor and orchestrate more than they prompt. Next up: bisecting the Windows vitest hang so the full suite runs on every OS again.

https://github.com/first-fluke/oh-my-agent

Top comments (0)