This is a submission for the Google I/O Writing Challenge
I opened my terminal on May 20th, ran gemini, and got a deprecation notice.
Google shipped Antigravity CLI at I/O 2026 — and killed Gemini CLI the same day. If you use Gemini CLI in your workflow, this already affects you. If you've never touched either, stick around anyway. The mental model shift here is worth understanding before you need it.
Why Replace Gemini CLI at All?
Gemini CLI was a prompt interface. You send a prompt, you get a response. That's the whole model.
Antigravity CLI is an agent harness. The primitive isn't a prompt — it's a running agent that can spawn sub-tasks, use tools, and keep working while you do something else.
That's not a rename. That's a different abstraction.
The migration is clean though: everything that mattered in Gemini CLI carries over. Skills, Hooks, Subagents — all preserved. Extensions are now called Antigravity Plugins, but the concept is identical. If you had Gemini CLI workflows, the port is mechanical.
Install in 30 Seconds
curl -fsSL https://antigravity.google/cli/install.sh | bash
agy --version
No API key prompt during install. Auth happens the first time you invoke an agent. If you have an existing ~/.gemini/ directory, the CLI detects it and imports your Skills automatically.
First Command: agy inspect
Before you run anything, run this:
agy inspect
It shows you everything the CLI sees — config files loaded, Skills available (global and workspace), Hooks wired up, plugins installed. Think of it as git status for your agent environment.
Antigravity CLI v2.0.1
Configuration
Global config: ~/.antigravity/config.json
Workspace config: .agents/config.json (not found)
Skills (global)
code-review ~/.antigravity/skills/code-review.md
commit-message ~/.antigravity/skills/commit-message.md
Skills (workspace)
None
Hooks
None configured
Run it first in any new project. It'll save you 20 minutes of debugging why a Skill isn't loading.
Skills: Saved Agent Roles
A Skill is a markdown file that gives the agent a role, tool access, and task framing. A saved system prompt, with metadata.
Create a workspace Skill:
mkdir -p .agents/skills
<!-- .agents/skills/ux-review.md -->
---
name: ux-review
description: Reviews a UI screenshot against Nielsen's heuristics
tools: [read_file]
---
You are a UX analyst. Analyze any UI screenshot against:
- Nielsen's 10 Usability Heuristics
- WCAG 2.1 accessibility guidelines
- Cognitive load principles
Return structured findings: what's working, what's broken, and the specific heuristic being violated.
Invoke it:
agy run --skill ux-review "Review the checkout flow in checkout.png"
Skills in .agents/skills/ travel with the project. Skills in ~/.antigravity/skills/ are global. The community Antigravity Awesome Skills repo has 1,400+ pre-built ones if you'd rather not start from scratch.
Bold opinion: The community Skills library is actually the most underrated thing about this ecosystem. You can drop in a production-grade code-review workflow in 90 seconds. Most people skip it and hand-write prompts forever.
Hooks: Intercept the Agent Loop
Hooks let you fire shell commands at lifecycle moments. Config is JSON:
// .agents/config.json
{
"hooks": {
"before_tool_call": [
{ "command": "echo '$TOOL_NAME' >> .agents/tool-log.txt" }
],
"on_loop_stop": [
{ "command": "node scripts/notify.js" }
]
}
}
Available hook points: before_tool_call, after_model_call, on_loop_stop, on_error.
The pattern I use on every project: on_loop_stop writes a summary to a log file, before_tool_call audits tool use so I can see what the agent actually did. Thirty lines of config, total.
Subagents: The Part Gemini CLI Couldn't Do
This is the actual upgrade.
Gemini CLI was synchronous. You waited. The agent finished. You moved on. Antigravity CLI ships async subagents — dispatch a long-running task to a background agent and keep prompting in the foreground, same session.
From inside the TUI:
> Refactor the auth module to use the new token schema.
[Dispatching to subagent...]
> While that runs — write a changelog entry for the last 10 commits.
Both run in parallel. The subagent reports back when it's done.
From the CLI:
# Dispatch a background agent
agy dispatch "Run the full test suite and write a summary to test-report.md"
# Check active subagents
agy agents list
# Pull output from a specific agent
agy agents output <agent-id>
I Tried It: Parallelizing a Real Refactor
Here's what I actually tested. I had a Next.js project with a type refactor that touched ~40 files.
I dispatched the refactor to a background subagent, then used the foreground agent to write the PR description and update the changelog — simultaneously.
The refactor completed in about 4 minutes. The PR description and changelog were ready before the refactor finished. Total wall-clock time: 4 minutes instead of 8–10 in sequence.
That's not a benchmark. That's just what parallel async agents feel like in practice.
Managed Agents: Serverless Version
Don't want the CLI? There's an API:
import google.generativeai as genai
genai.configure(api_key="YOUR_API_KEY")
agent = genai.create_agent(
model="gemini-3.5-flash",
instructions="You are a code reviewer. Review the diff for correctness and security issues.",
tools=["code_execution"],
)
result = agent.run("Review this diff:\n" + open("changes.diff").read())
print(result.output)
Same agent harness. Same Gemini 3.5 Flash intelligence. Zero local setup. The agent runs in an isolated Linux environment on Google's infrastructure.
Migration Cheat Sheet
| Gemini CLI | Antigravity CLI |
|---|---|
gemini run |
agy run |
~/.gemini/skills/ |
~/.antigravity/skills/ |
| Extensions | Plugins (same concept) |
gemini inspect |
agy inspect |
| Synchronous only |
agy dispatch for async |
Skills files don't need to change. The biggest behavioral win: agy is built in Go. Startup is noticeably faster than the old CLI.
Bold opinion: The deprecation of Gemini CLI felt abrupt. But Google made the right call — maintaining two separate CLIs with diverging capability models would have been worse for the ecosystem than a clean cut.
What This Is Really About
Gemini CLI was a terminal wrapper around a language model.
Antigravity CLI is a terminal interface for an agent harness. The Skills/Hooks/Plugins model is also cross-compatible with Claude Code, Cursor, and Codex CLI — a Skill you write here works elsewhere.
The transition was abrupt. The thing that replaced it is better.
Antigravity CLI at antigravity.google. Codelabs at codelabs.developers.google.com.
Tags: googleio ai productivity devtools




















