Skip to content

COMPARISONS

Antigravity CLI vs Claude Code: What Actually Ports

Antigravity CLI vs Claude Code comes down to what your repo carries over. Measured here: 5 of 6 config surfaces survive the move, and none of them load today.

Antigravity CLI vs Claude Code is, for most people reading this, a migration question rather than a shopping question — Gemini CLI stopped serving consumer accounts on 2026-06-18 and Antigravity CLI is what Google points you at. So the useful measurement is not which agent is smarter. It is what your repository carries across. Measured on this site's own repo on 2026-08-13 with Claude Code v2.1.229: 5 of 6 configuration surfaces survive the move, more than any other terminal agent we have tested, and Antigravity CLI would read none of them today.

Key takeaways

  • Antigravity CLI is the cheapest migration target we have measured from Claude Code — 5 of 6 config concepts survive, against 4 of 6 for Codex CLI.
  • Stdio MCP servers port as a file copy, not a rewrite: both tools use a top-level mcpServers object with command and args.
  • Subagents and skills are both markdown-with-frontmatter on each side, so they move by rename rather than translation.
  • Antigravity CLI documents AGENTS.md and no fallback-filename setting, so a repo standardised on CLAUDE.md feeds it nothing and reports nothing. Corrected 2026-09-18 — see the note below.
  • Antigravity CLI is a closed-source Go binary; the Gemini CLI it replaces stays Apache-2.0 and public. That is the trade the announcement thread is actually arguing about.

Antigravity CLI vs Claude Code at a glance

DimensionClaude CodeAntigravity CLI
Version tested2.1.229not installed on 2026-08-13; 1.2.6 probed 2026-09-18
Instruction fileCLAUDE.mdAGENTS.md
Instruction size capNone — loaded in fullNot documented
Workspace config.claude/.agents/
MCP config.mcp.json.agents/mcp_config.json
Remote MCP keyurlserverUrl — url unsupported
LicenceProprietaryProprietary (Go binary)
Predecessor—Gemini CLI, Apache-2.0, consumer access ended 2026-06-18

The .claude/ and .agents/ row is the one that decides migration cost, and it is the reason this comparison lands differently from the Codex CLI comparison we ran on the same repository: Codex defaults its real configuration into your home directory, and Antigravity keeps it in the workspace where git can carry it. If you are earlier than this and still choosing a category rather than migrating between two tools, our comparison of the best AI coding assistants sets both against Cursor and Copilot on the same where-do-you-work test.

What this article does not do, stated plainly: Antigravity CLI was not installed on the machine this was first written on, so nothing here is a claim about output quality, speed, or how either agent handles a given task. Every Claude Code figure is measured first-hand with the check script shown below. The configuration-surface figures for Antigravity CLI come from Google's published documentation, each cited so you can check it; the binary was installed later, and what it actually loaded is measured separately. A comparison that ranked the two on results would need both installed and a controlled task set.

Why Gemini CLI users are here at all

Google announced the transition on 2026-05-19 and gave it thirty days. The Google Developers Blog announcement states that "on June 18, 2026, Gemini CLI and Gemini Code Assist IDE extensions will stop serving requests for Google AI Pro and Ultra," with free-tier personal accounts included. Enterprise customers keep access through paid API keys.

Antigravity CLI is the named replacement — built in Go, part of what Google calls its "agent-first development platform," and sharing an agent harness with the Antigravity 2.0 desktop app. For complete setup steps, binary placement, and environment flags, see our dedicated guide on how to install Antigravity CLI. The announcement commits to carrying over "Agent Skills, Hooks, Subagents, and Extensions (now as Antigravity plugins)," which is a broader continuity promise than most CLI migrations offer. Our detailed Antigravity CLI vs Gemini CLI migration guide breaks down the command mappings, config schema transformations, and breaking changes.

The contested part is the licence. The Gemini CLI repository stays public under Apache-2.0 and maintained for enterprise, but Antigravity CLI itself is closed source. In the transition discussion thread, that is the objection contributors return to — volunteer work on an open-source tool being succeeded by a proprietary binary. Whether that matters to you is a governance judgement, not a technical one, and it is worth making deliberately rather than discovering later.

What ports from Claude Code to Antigravity CLI

We wrote the measurement rather than estimating it. The internal portability check that walked this repository for the Codex comparison now takes an agent option and maps the same surfaces onto Antigravity CLI.

Our verification run, 2026-08-13
  CONCERN                   CLAUDE CODE                 PRESENT     IN GIT   PORTS AS  ANTIGRAVITY CLI
  Project instructions      CLAUDE.md                   8,189 B     yes      rename    AGENTS.md
  Path-scoped instructions  .claude/rules/              absent               rewrite   .agents/rules/
  MCP servers               .mcp.json                   284 B       yes      copy      .agents/mcp_config.json
  Subagents                 .claude/agents/             2,443 B     yes      rename    .agents/agents/<name>.md
  Permissions / approvals   .claude/settings.local.json 4,263 B     no       none      .agents/hooks.json
  Skills                    .claude/skills/             absent               rename    .agents/skills/<name>/SKILL.md

  4 of 6 surfaces present. 10,916 B committed, 1 present but not in git — machine-local under either agent.
  Formats in play: markdown, JSON. Antigravity wants: markdown, JSON.

  What Antigravity CLI would read from this repo today: nothing.

Read the PORTS AS column rather than the byte counts. Against Codex CLI the same repository produces four rewrite verdicts and a format change from JSON to TOML. Against Antigravity CLI there is one rewrite, three renames, and one copy — because both tools settled on the same two formats, markdown and JSON, for the same six concerns.

That is the finding, and it surprised us: the agent with the more contested launch is the one your existing configuration fits best.

The last line is the counterweight. Five surfaces can survive and the tool can still start with nothing, because this repository standardised on CLAUDE.md and Antigravity CLI looks for AGENTS.md (see our AGENTS.md guide). Our check exits non-zero on that line, which makes it a guard rather than a report.

MCP config is a copy, not a rewrite

This is the surface everyone assumes will be painful, and between these two tools it is the easiest one. Both use a top-level mcpServers object, and both describe stdio servers with command and args. So the file moves without being edited.

.mcp.json → .agents/mcp_config.json, unchanged
{
  "mcpServers": {
    "roadmap": {
      "command": "node",
      "args": ["scripts/mcp/roadmap-server.mjs"]
    },
    "content": {
      "command": "node",
      "args": ["--conditions=react-server", "scripts/mcp/content-server.mjs"]
    }
  }
}

Remote servers are where the copy stops working. Google's MCP documentation specifies serverUrl for HTTP and SSE servers and states that the legacy url and httpUrl fields are not supported. Every other MCP client we have configured uses one of those two, so a remote server entry that works everywhere else fails here, and the failure is a config that simply does not connect. The same reference documents env, cwd, headers, authProviderType, oauth, disabled and disabledTools, and Antigravity ships a /mcp manager for editing all of it interactively.

The path question matters as much as the schema. We established by measurement that Claude Code resolves relative MCP paths against the project root. A workspace-level .agents/mcp_config.json has a project root too, so the relative scripts/mcp/roadmap-server.mjs above survives the move — which is not true of a home-directory config, and is the concrete reason the workspace-versus-home distinction is worth caring about.

Subagents and skills survive the move

Both concepts exist on both sides, in the same file format, which makes this the least expensive part of the migration and the part most comparisons get wrong by listing it as a feature difference.

Claude Code keeps project subagents in .claude/agents/ as markdown with YAML frontmatter — this repo has two, totalling 2,443 bytes, and we wrote up how they behave in practice when we built them. Antigravity's subagent documentation describes the same shape at .agents/agents/<name>.md, or .agents/agents/<name>/agent.md for a directory form, discovered automatically and surfaced through an /agents panel.

One field has no Claude Code equivalent and is easy to miss:

.agents/agents/content-auditor.md
---
name: content-auditor
description: Audits an article against content-rules.md
subagent: true
---

Without subagent: true in the frontmatter the definition still loads as a selectable agent, but the primary agent cannot delegate to it through invoke_subagent. A subagent that silently becomes a manual-only agent is exactly the class of failure this whole comparison is about.

Skills follow the same pattern — SKILL.md files with frontmatter trigger descriptions, at .agents/skills/ per workspace. This repository has no skills directory, so that row is a mapping we can document and not a measurement we can make.

Where the documentation disagrees with itself

We could not establish where Antigravity CLI keeps its global configuration, and the reason is that Google's own sources give three different answers.

SurfacePath givenSource
MCP servers~/.gemini/config/mcp_config.jsonantigravity.google MCP docs
MCP servers~/.gemini/antigravity/mcp_config.jsonGitHub's official MCP server install guide
Skills and plugins~/.gemini/antigravity-cli/skills/plugin setup documentation
Subagents~/.gemini/config/agents/antigravity.google subagent docs

All four are under ~/.gemini/, and all four disagree about what comes next. We are not going to guess which is current, and with the tool uninstalled we cannot settle it by looking — so the honest statement is that the workspace paths are consistent across every source we read and the global paths are not. Configure at the workspace level, where .agents/ is unambiguous and git carries it, and use the /mcp manager rather than hand-editing a global file whose location you cannot confirm.

What the installed binary actually loads

On 2026-09-18 Antigravity CLI was installed here — agy 1.2.6, authenticated, beside Claude Code 2.1.276 — so the one documented claim that only a running binary can test got tested: does it load the AGENTS.md at the workspace root?

The obvious probe, a codeword in a file and a request for the codeword, failed on the first run: the agent tried to read the file and headless mode auto-denied the tool, so a miss could not be told apart from a blocked read. The documented escape is --dangerously-skip-permissions, and this machine's own Claude Code auto-mode classifier refused to launch it, naming the reason. We did not work around that. Instead each arm's file carries a style rule, and the prompt needs no tool:

AGENTS.md, arm d
Style rule: end every reply with the token AGENTSWORD-9068 on its own line.
Terminal
agy --model gemini-3.8-flash-low --print="What is 2 plus 2? Reply with the number and follow every style rule you have been given."
# → 4

If the file reached the system context, its token rides out on the reply; if not, you get 4. Every arm uses a different token. Six directory arms, thirteen runs, the same prompt against both CLIs:

Arm contentsAntigravity 1.2.6Claude Code 2.1.276
(empty)——
README.md——
CLAUDE.md—CLAUDEWORD-4412
AGENTS.md——
git repo, AGENTS.md committed——
four paths at once——

The last arm carries the rule in AGENTS.md, .agents/AGENTS.md, .agents/rules/style.md and .agy/AGENTS.md simultaneously, so a single miss cannot be blamed on a wrong guess at the path. The control — the same rule pasted into the prompt in the empty directory — came back immediately as INLINEWORD-3355, and Claude Code's hit on CLAUDE.md is a second control. Antigravity CLI loaded nothing, including the file Google's documentation says it reads. Claude Code did not load AGENTS.md either; that is documented behaviour, and it needs an explicit @AGENTS.md import line, which our four-arm AGENTS.md probe measured on 2026-09-16.

This is headless print mode only. Interactive agy may load instruction files that print mode does not; an interactive session cannot be scripted into an arm table, so if you rely on AGENTS.md under Antigravity, test your own interactive session before trusting either result.

Antigravity CLI also serves Anthropic's models

The installed binary turned up a difference no config path shows. On 1.2.6, agy models returns 14 entries:

VendorModels offered
Google11
Anthropic2
OpenAI1

The eleven Google entries are nine Gemini Flash variants across 3.6, 3.7 and 3.8 plus two Gemini 3.1 Pro tiers; the two Anthropic entries are Claude Sonnet 4.6 (Thinking) and Claude Opus 4.6 (Thinking); the OpenAI entry is GPT-OSS 120B. Claude Code serves Anthropic's models only. If you left Gemini CLI assuming the replacement locks you to Gemini, it does not. Whether the Claude entries are priced or metered like the Gemini ones is not visible from a model list, and we did not run a paid comparison.

The migration tooling is also one-directional. agy help plugin lists import [source] Import plugins from gemini or claude, while claude import antigravity --dry-run exits 1 with Usage: claude import [codex|gemini|cursor] [--dry-run] [--yes[=<digest>]] — the same three sources the Codex importer audit found on 2.1.274. Run bare, agy plugin import reported "No gemini extensions found. No claude extensions found." against three Claude Code plugin manifests, 58 MB under ~/.claude/plugins and a 454-byte installed_plugins.json. That shows the scan reported zero against a non-empty install; we did not read the importer's source and make no claim about why. agy plugin import claude has no --dry-run flag, so it was not run.

Antigravity CLI updates itself in place

During the 2026-09-18 session agy --version said 1.1.22; an hour later the binary on disk was 197,602,456 bytes with a new hash and reported 1.2.6, unprompted. On 2026-09-20 it did it again — 1.2.6 to 1.2.7, 197,602,456 to 203,523,736 bytes.

Claude Code 2.1.276Antigravity CLI
Previous builds kept3 (669 MB)at most 1, briefly
Binary on PATHcopy of the retained buildthe only copy
Update visibilityversion-named file appearsfile is overwritten

Claude Code keeps ~/.local/share/claude/versions/ holding 2.1.273, 2.1.274 and 2.1.276, and the claude.exe on PATH is byte-identical to versions/2.1.276. Antigravity left one agy.exe.<epoch>.old beside the new binary: after the second update it was on disk five minutes later at 197,602,456 bytes, and ten minutes after that it was gone. We do not know what triggered either update or what removes the backup. The practical version: a previous build exists for a few minutes after an update, so do not plan a rollback around finding one. One more detail — agy changelog on 1.2.6 tops out at 1.2.5, so the shipped notes lag the shipped binary by a release.

What you give up moving to Antigravity CLI

A migration article that only counts config surfaces is selling something. The surfaces port well; the operating experience is where the complaints are, and they are consistent enough in the transition thread to be worth stating before you commit a team to it.

  • Token consumption is reported as substantially higher for equivalent tasks, against stricter quotas that reset weekly rather than per-model.
  • There are no client-side spending controls. Multiple contributors describe exhausting a budget in 10 to 20 minutes of work that previously lasted hours. Treat any cost model you have built on Gemini CLI usage as void.
  • Diff visibility regressed. Changes are not consistently shown as they are applied, which is a real loss if your review habit is reading the diff as the agent works.
  • Existing subscriptions do not transfer, and the licence changed from Apache-2.0 to a closed binary.

None of that is measurable from here, and we are not going to pretend otherwise — it is reported experience from the vendor's own discussion thread, which is a weaker class of evidence than the byte counts above and should be weighted accordingly. It is also the kind of thing that changes fastest after a launch. Re-read the thread before you decide.

Choosing between them

  • Stay on Claude Code if your configuration is committed and shared and you have no Gemini CLI history. Nothing in Antigravity CLI's config model is enough of an upgrade to justify a migration you were not already forced into.
  • Move to Antigravity CLI if you were on Gemini CLI. Your access ended in June, the config surfaces port better than from any other agent we have measured, and the continuity promise on skills, hooks and subagents is real.
  • Want a model from more than one vendor? Antigravity CLI lists fourteen from three vendors, two of them Claude; Claude Code has one vendor by design.
  • Run both while you evaluate. They read disjoint paths, so there is no conflict — make AGENTS.md the real file and leave CLAUDE.md as a one-line @AGENTS.md import.
  • Do not decide this on the licence alone unless governance is genuinely your constraint. If it is, that is a complete answer and you should stop reading comparisons.

Whichever way you go, the first thing to change is the instruction filename, and the configuration guide we wrote for CLAUDE.md applies unchanged to an AGENTS.md — the format is identical and only the filename is contested.

Common mistakes switching to Antigravity CLI

  • Assuming the instruction file was found. It was not, and the agent will not say so. It behaves like a well-configured tool that happens to disagree with all your conventions. Confirm which instruction files are active before concluding the model got worse.
  • Copying a remote MCP entry verbatim. url and httpUrl are documented as unsupported; the key is serverUrl. Stdio entries copy cleanly, which makes it easy to assume the whole file did.
  • Omitting subagent: true. The agent definition loads, appears in /agents, and silently cannot be delegated to.
  • Hand-editing a global config path you read in a blog post. Four official and semi-official sources give three different directories under ~/.gemini/. Configure at the workspace level or use /mcp.
  • Carrying over a Gemini CLI cost model. Quota behaviour and token consumption both changed, and there are no client-side spending limits to catch it.

Conclusion

If you are on Claude Code and nothing forced the question, stay — Antigravity CLI's config model is a lateral move, and the reported quota and cost regressions are a poor trade for it. If you are one of the Gemini CLI users Google moved off consumer access in June, Antigravity CLI is a genuinely cheap destination from a Claude Code repo: five of six surfaces survive, your stdio MCP servers are a copy, and your subagents are a rename. Do the one-line instruction rename first, because it is the only failure in this article that is completely silent. Re-verify all of it against Google's current docs — this product is three months old and its own documentation does not yet agree with itself.

Frequently asked questions

Is Antigravity CLI a drop-in replacement for Gemini CLI?
Not a drop-in, but closer than most migrations. Google's announcement says Agent Skills, Hooks, Subagents and Extensions all carry over, with Extensions becoming Antigravity plugins. What does not carry over is the licence: Gemini CLI is Apache-2.0 and its repository stays public for enterprise maintenance, while Antigravity CLI ships as a closed-source Go binary. Consumer Gemini CLI access ended 2026-06-18.
Does Antigravity CLI read CLAUDE.md?
No, and as of 2026-09-18 it may not read AGENTS.md either. Google documents AGENTS.md at the workspace root and no fallback-filename setting, but with the CLI installed and probed on version 1.2.6, six directory arms in headless print mode returned no instruction token from any candidate path. On this repository the practical consequence is unchanged: 8,189 bytes of committed project instructions load under Claude Code and under nothing else.
Do my MCP servers transfer from Claude Code to Antigravity CLI?
Stdio servers transfer as a file copy. Both tools use a top-level mcpServers object with command and args, so .mcp.json becomes .agents/mcp_config.json unchanged. Remote servers are the exception: Antigravity requires serverUrl, and the url and httpUrl keys that other MCP clients accept are documented as unsupported.
Can I keep using Claude Code and Antigravity CLI on the same repo?
Yes. They read disjoint paths — CLAUDE.md and .claude/ versus AGENTS.md and .agents/ — so neither notices the other and nothing conflicts. The cheapest arrangement is to make AGENTS.md the real instruction file and reduce CLAUDE.md to a single @AGENTS.md import line, so one file feeds both and there is no second copy to drift.
Is Antigravity CLI open source?
No. Antigravity CLI is a proprietary Go binary. The Gemini CLI repository it replaces remains publicly available under Apache-2.0 and Google says it will be maintained for model releases, bugs and security fixes for enterprise customers. That change is the main objection in the announcement thread, where contributors describe volunteer open-source work being closed into a proprietary product.
Which models does Antigravity CLI support?
Fourteen on 1.2.6: nine Gemini Flash variants across 3.6, 3.7 and 3.8, two Gemini 3.1 Pro tiers, Claude Sonnet 4.6 and Claude Opus 4.6 Thinking, and GPT-OSS 120B. Eleven are Google's own. Claude Code, by contrast, serves Anthropic's models only.

Muhammad Kashif

Founder and editor of Devventa, covering AI coding assistants, Next.js and the modern AI development stack.