
Gemini CLI Is Dead: Migrate to Antigravity CLI (agy)
Summary
Move your Gemini CLI setup, skills and MCP servers to Antigravity's agy.
Gemini CLI Is Dead. Here's How to Move to agy
On June 18, 2026, Google pulled the plug on Gemini CLI. The free, Pro, and Ultra tiers stopped answering requests. If you woke up to a terminal agent that suddenly refuses to respond, you are not alone: the deprecation hit CI pipelines, pre-commit hooks, and muscle memory across thousands of dev machines overnight.
The replacement is Antigravity CLI, which ships a binary called agy. It runs the same agent harness as Antigravity 2.0, keeps the slash-command muscle memory you already have, and can import your old Gemini CLI extensions, skills, and MCP servers. The catch: a few paths and config formats changed, so a blind copy-paste will not work.
This guide walks the full migration end to end. You will install agy, run the first-launch importer, manually convert anything the importer skips, fix the moved skills and MCP paths, and patch the scripts that used to call gemini. By the end your project will behave exactly like it did on Gemini CLI, only on a tool that still answers.
Prerequisites
- A machine that previously ran Gemini CLI (macOS, Linux, or Windows), with the old
~/.geminidirectory still intact. - An approved Google account for Antigravity (the same one you signed into Gemini CLI with works).
- Terminal access plus
curl(macOS/Linux) or PowerShell (Windows). - Optional but recommended: a project that uses workspace skills and at least one MCP server, so you can verify the migration on something real.
One reassurance before you start: installing agy does not remove or overwrite the gemini binary. They use different names and coexist cleanly, so you can roll back by simply calling the old binary if it is still installed locally. The cloud service is gone, but your local config is untouched until you change it.
Step 1: Install the agy binary
Antigravity CLI installs a single executable named agy. Pick the line for your platform.
macOS and Linux
curl -fsSL https://antigravity.google/cli/install.sh | bash
The native installer drops the executable at ~/.local/bin/agy and adds that directory to your shell PATH. Two flags are worth knowing: --skip-aliases keeps any existing agy or antigravity aliases you defined, and --skip-path stops the installer from editing your shell profile.
Windows PowerShell
irm https://antigravity.google/cli/install.ps1 | iex
On Windows the installer registers agy under C:\Users\<Username>\AppData\Local\agy\bin. Verify the install on any platform with a version check:
agy --version
# agy 1.x (Antigravity CLI)
If your shell reports agy: command not found, your PATH has not refreshed. Open a new terminal, or on macOS/Linux run source ~/.bashrc (or ~/.zshrc) to pick up the new entry.
Step 2: Run the first-launch migration
The fastest path is to let agy detect your old setup. Start it once in any directory. On first launch it scans for legacy Gemini CLI profiles and offers to bring them across:
agy
If legacy config is found, you get an interactive prompt. A typical run looks like this:
Antigravity CLI (agy)
Detected an existing Gemini CLI installation at ~/.gemini
Select assets to migrate:
[x] Global configuration
[x] Active session tokens -> stored in macOS Keychain
[x] MCP server definitions (3 found)
[x] Agent Skills (2 global, 1 workspace)
[x] Workspace rules
[ ] Custom terminal theme (no full parity)
Migrate selected assets? (y/n)
Press y and the importer copies global configuration, converts your MCP server definitions, moves your skills, and migrates your active session token into the operating system keyring (Apple Keychain on macOS, Secret Service on Linux, Windows Credential Manager on Windows). Because the token lands in the keyring, the next time you run agy it signs you in silently with no browser round trip.
If the prompt never appears, the importer did not find your legacy directory or you already migrated. That is what Step 3 is for.
Signing in on a remote or SSH box
On a headless server there is no browser to open, so agy falls back to a manual loop. Run agy in the remote terminal, copy the authorization URL it prints, open that URL in a browser on your laptop, sign in, then paste the returned authorization code back into the remote terminal. After that the token is cached in the server keyring and future sessions are silent. If a sign-in stalls, it is almost always because the printed URL was opened on the wrong machine; open it locally, not on the server.
Step 3: Import extensions manually when the prompt is skipped
When the first-launch prompt does not fire, run the importer directly. This is also the command to use if you want to re-run the conversion after editing your old config:
agy plugin import gemini
The importer searches your legacy local directories, reads each extension manifest, and rewrites compatible files into the Antigravity plugin layout. Expected output:
Scanning ~/.gemini for Gemini CLI extensions...
found: filesystem-tools -> converted to plugin
found: github-helper -> converted to plugin
found: custom-keybinds -> imported keybindings.json
Imported 2 plugins, 1 keybinding set.
Run /mcp to review migrated MCP servers.
Antigravity stores plugins under ~/.gemini/antigravity-cli/plugins/<plugin_name>/. Each plugin folder needs a plugin.json manifest and may include optional mcp_config.json, hooks.json, plus skills/, agents/, and rules/ directories. If a plugin fails to convert, it is usually a hand-edited manifest the importer could not parse; open it and check the JSON is valid.
Step 4: Fix the moved skills and MCP paths
This is the step most people miss, and it is why a skill or server that imported "successfully" still does not show up. Antigravity changed where workspace assets live, and the importer does not always move project-local files for you.
Skills moved folders
Global skills moved from ~/.gemini/skills/ to ~/.gemini/antigravity-cli/skills/. Workspace skills moved from .gemini/skills/ to .agents/skills/. For each project that defined custom skills, move the folder:
# from your project root
mkdir -p .agents
git mv .gemini/skills .agents/skills # or: mv .gemini/skills .agents/skills
After the move, run /skills inside agy and confirm each skill appears as an active slash command.
MCP config changed format
Gemini CLI declared MCP servers inline inside ~/.gemini/settings.json. Antigravity uses standalone MCP profiles instead: global servers live in ~/.gemini/config/mcp_config.json and workspace servers in .agents/mcp_config.json. The other change that breaks remote servers: the old url and httpUrl fields were renamed to serverUrl. A migrated remote server should look like this:
{
"mcpServers": {
"remote-indexer": {
"serverUrl": "https://mcp.internal.enterprise.com/sse",
"env": {
"AUTH_TOKEN": "secure_alpha_token"
}
}
}
}
Run /mcp to open the server manager and verify each server connects. A server stuck in a failed state almost always means it still has the old url key or is sitting in the old settings.json instead of a mcp_config.json file.
Context files still work
Good news: your context files carry over unchanged. Antigravity still reads GEMINI.md and AGENTS.md from the workspace and global developer context from ~/.gemini/GEMINI.md. You do not need to rename them, though new projects increasingly standardize on AGENTS.md.
Step 5: Patch your scripts, hooks, and CI
Anything that shells out to gemini is now calling a dead command. Search your repos and automation for the old binary name and swap it for agy:
# find every reference to the old binary
grep -rn 'gemini ' .github/ scripts/ Makefile .git/hooks/ 2>/dev/null
A typical CI step changes from the first line to the second:
- run: gemini --prompt "run the release checklist"
+ run: agy --prompt "run the release checklist"
For non-interactive automation, keep approvals predictable by setting a permission preset. Antigravity ships four: request-review (the safe default), proceed-in-sandbox, always-proceed, and strict. In CI you usually want sandboxed auto-proceed rather than blanket auto-approve, so the agent can act but stays boxed in.
Worked example: migrating a real project in five minutes
Here is the exact sequence for a Node project that used Gemini CLI with two workspace skills and a local MCP server. This is the path I would follow on any repo.
# 1. Install agy
curl -fsSL https://antigravity.google/cli/install.sh | bash
agy --version
# 2. Let agy import global config + tokens + servers
cd ~/code/payments-api
agy # accept the migration prompt, then /exit
# 3. Move workspace skills into the new location
git mv .gemini/skills .agents/skills
# 4. Move the workspace MCP server into a standalone profile
mkdir -p .agents
# create .agents/mcp_config.json with the server block (serverUrl, not url)
# 5. Patch the pre-commit hook that called gemini
sed -i '' 's/\bgemini\b/agy/g' .git/hooks/pre-commit
# 6. Verify inside the CLI
agy
# /skills -> both skills listed
# /mcp -> local server: connected
# /diff -> nothing yet, clean tree
After Step 6 the project behaves identically to its Gemini CLI days: same skills, same server, same hook, all running on a binary that still responds. The whole thing takes about five minutes per repo, and most of that is moving two folders.
Use this short checklist to confirm a migration is actually complete before you move on to the next repo:
agy --versionprints a version and the binary resolves on yourPATH.- Running
agysigns you in silently, with no browser prompt, which proves the token reached the keyring. /skillslists every custom skill the project used to expose./mcpshows each server in a connected state, not failed.- A grep across
.github/,scripts/,Makefile, and.git/hooks/returns no remaininggeminicalls.
Common pitfalls and how to avoid them
These are the traps that turn a five-minute migration into an afternoon of confusion.
- Assuming a re-install fixes nothing. The Gemini CLI outage is server-side. Reinstalling or updating
geminiwill not bring it back; only switching toagydoes. - Leaving MCP servers in settings.json. Antigravity ignores inline MCP blocks in the old
~/.gemini/settings.json. Servers must live in~/.gemini/config/mcp_config.jsonor.agents/mcp_config.json. - Forgetting the serverUrl rename. A remote MCP server with a
urlorhttpUrlfield silently fails to connect. Rename it toserverUrl. - Not moving workspace skills. Skills in
.gemini/skills/are invisible to Antigravity. Move them to.agents/skills/and re-run/skills. - Hardcoded gemini calls in CI and hooks. Grep your automation. A green local migration still breaks the pipeline if a workflow shells out to the dead binary.
- Using always-proceed everywhere. It is tempting in automation, but it lets the agent run anything unprompted. Prefer
proceed-in-sandboxso commands run inside OS containment. - Expecting custom themes to survive. Some experimental visual overlays and terminal themes have no parity. Reconfigure them through
/configrather than expecting an import.
Quick reference
| What changed | Gemini CLI | Antigravity CLI (agy) |
|---|---|---|
| Binary name | gemini | agy |
| Install (macOS/Linux) | n/a | curl -fsSL https://antigravity.google/cli/install.sh | bash |
| Manual import | n/a | agy plugin import gemini |
| Main settings | ~/.gemini/settings.json | ~/.gemini/antigravity-cli/settings.json |
| Global skills | ~/.gemini/skills/ | ~/.gemini/antigravity-cli/skills/ |
| Workspace skills | .gemini/skills/ | .agents/skills/ |
| Global MCP config | ~/.gemini/settings.json | ~/.gemini/config/mcp_config.json |
| Workspace MCP config | ~/.gemini/settings.json | .agents/mcp_config.json |
| Remote MCP field | url / httpUrl | serverUrl |
| Context files | GEMINI.md / AGENTS.md | GEMINI.md / AGENTS.md (unchanged) |
Next steps
Once the basics work, lean into what agy adds over the old CLI. Open /agents to run background subagents that handle docs lookup, builds, and tests while your main thread keeps going. Use /diff before accepting any change and Ctrl+R to open the Artifact Review Panel for a closer read. When a conversation goes sideways, /rewind rolls history back and /fork lets you explore a second approach without losing the first.
For the authoritative command list and any edge cases specific to your platform, check Google's official migration docs at antigravity.google/docs/gcli-migration. Then commit your .agents/ directory so the rest of your team inherits the migrated skills and MCP servers automatically.
Comments
Be the first to comment
Found this useful?
Get new AI guides for builders by email. Free.
Join 2,110 builders reading daily.