Skip to content

COMPARISONS

Claude Code vs Antigravity: The File Neither Reads

Claude code vs antigravity, measured with both CLIs installed: six directory arms, thirteen runs, and one instruction file loaded between them. It was not AGENTS.md.

Claude code vs antigravity was a documentation exercise the last time this site ran it, because Antigravity CLI was not installed here. It is now — agy 1.2.6, authenticated, beside Claude Code 2.1.276 — so we asked the question that only an installed binary can answer: does it load the instruction file your repository already has? Six directory arms, thirteen runs, one file loaded between the two tools. It was CLAUDE.md, read by Claude Code. Antigravity CLI loaded nothing, including the file Google's documentation says it reads. Our best AI coding assistant comparison covers the wider shelf; this is the arm-by-arm result.

Key takeaways

  • Antigravity CLI 1.2.6 returned an instruction token from none of four candidate paths, in or out of a git repository.
  • The same rule pasted inline into the prompt came back immediately — the null is a null, not a broken probe.
  • Claude Code 2.1.276 scored 1 hit in 6 arms, on CLAUDE.md. It did not read AGENTS.md either.
  • agy models lists 14 models from three vendors, two of them Anthropic's. Claude Code serves Anthropic's only.
  • agy plugin import accepts claude as a source; claude import antigravity exits 1. The migration path runs one way.

Claude code vs antigravity: what changed since August

In August this site published Antigravity CLI vs Claude Code: What Actually Ports, which walked this repository's configuration surfaces and scored 5 of 6 as portable — the cheapest migration target we had measured. That article was explicit about its limit: Antigravity CLI was not installed, so every figure on the Antigravity side came from Google's published documentation, cited.

One of those documented figures was that Antigravity CLI reads AGENTS.md at the workspace root. That is the claim this article tested, and it is the claim that did not survive.

The rest of #41 stands. This is not a retraction of the portability audit, which measured bytes in this repository and formats on both sides — things that are true whether or not the binary is running. It is a correction to one row of it, and the correction only became possible when the binary arrived.

The probe that answers 2 plus 2

The obvious probe — put a codeword in a file and ask for the codeword — has a flaw we hit on the first run: the agent tries to read the file, and headless mode auto-denies the tool. You then cannot tell whether the file failed to load or the read failed to run.

So the probe asks for nothing and requires no tool. Each arm's file contains a style rule:

AGENTS.md, arm d
Style rule: end every reply with the token AGENTSWORD-9068 on its own line.

And the prompt is arithmetic:

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 is loaded into the system context, the token rides out on a reply that needed no file access at all. If it is not, you get 4. Every arm uses a different token, so a hit names the file that produced it.

Six arms, thirteen runs, one hit

One scratch directory per arm, one file different in each, the same prompt in all of them, run against both CLIs.

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

The fourth row is the one that matters against #41. The fifth exists because "workspace root" might have meant a real workspace, so that arm is an initialised repository with the file committed — same result. The sixth carries the rule in AGENTS.md, .agents/AGENTS.md, .agents/rules/style.md and .agy/AGENTS.md simultaneously, so a single miss cannot be explained by a wrong guess at the path.

Then the control, in the empty directory, with the rule pasted into the prompt itself:

Terminal
agy --model gemini-3.8-flash-low --print="Style rule: end every reply with the token INLINEWORD-3355 on its own line. What is 2 plus 2? Reply with the number and follow the style rule."
# → 4
# → INLINEWORD-3355

The instrument fires. It fired for Claude Code on CLAUDE.md too, which is the second control: the same directory shape, the same prompt, a token returned. So the empty cells are the tool's behaviour rather than the probe's.

CLAUDE.md scoring for Claude Code and nothing else scoring for anyone is the compressed version of this whole category. AGENTS.md is the file the ecosystem agrees on and the file neither of these two tools loaded on its own. For Claude Code that is expected and documented — it needs an explicit @AGENTS.md import line, which our four-arm AGENTS.md probe measured on 2026-09-16. For Antigravity CLI it contradicts the documentation.

The arm we could not escalate

There is an arm missing from that table and it is missing for a reason worth printing.

The first version of the probe asked the agent to read AGENTS.md explicitly. Antigravity answered:

Antigravity CLI, headless
no output produced — a tool required the "command" permission that headless mode
cannot prompt for, so it was auto-denied

The documented escape is --dangerously-skip-permissions. We ran it, and this machine's own Claude Code auto-mode classifier refused to launch it, naming the reason. We did not work around that — the roadmap this site runs on has recorded instrument losses five times and worked around none of them — so the explicit-read arm does not exist and the tool-free probe is what replaced it.

That is a better probe anyway. It measures what loads without being asked, which is the thing a committed instruction file is for.

Google's CLI serves Anthropic's models

This is the finding we were not looking for. agy models returns 14 entries:

Terminal
agy models
# → gemini-3.8-flash-high      Gemini 3.8 Flash (High)
# → ... nine Flash tiers, two Pro tiers ...
# → claude-sonnet-4-6          Claude Sonnet 4.6 (Thinking)
# → claude-opus-4-6-thinking   Claude Opus 4.6 (Thinking)
# → gpt-oss-120b-medium        GPT-OSS 120B (Medium)
VendorModels offered
Google11
Anthropic2
OpenAI1

Eleven Gemini entries, two Claude entries, one open-weights GPT. Claude Code offers Anthropic's models and nothing else, which makes this the clearest structural difference between the two tools — clearer than any config path.

It also reframes the Gemini CLI replacement question. If you left Gemini CLI when consumer access ended and assumed the replacement locks you to Gemini, it does not. Whether the Claude entries are priced or metered the same as the Gemini ones is not something we can see from a model list, and we did not run a paid comparison to find out.

The import direction runs one way

Antigravity CLI has a plugin importer, and its sources are worth reading twice:

Terminal
agy help plugin
# → import [source]   Import plugins from gemini or claude

So the Google CLI reads the Anthropic CLI's plugins. The reverse does not exist:

Terminal
claude import antigravity --dry-run
# → Usage: claude import [codex|gemini|cursor] [--dry-run] [--yes[=<digest>]]
# exit 1

codex, gemini and cursor — the same three the Codex importer audit found on 2.1.274, unchanged two builds later, with antigravity absent. This is the mirror image of the portability picture in #41: configuration formats line up neatly in both directions, and the tooling that would move them runs one way only.

Running the importer with no source makes it scan both:

Terminal
agy plugin import
# → No gemini extensions found. No claude extensions found.

This machine has three Claude Code plugin manifests and 58 MB under ~/.claude/plugins, plus a 454-byte installed_plugins.json. The scan found none of them. We are careful about what that shows: it demonstrates that the scan reported zero against a non-empty install, which is what we observed. It does not establish why — note that the help text says extensions while Claude Code calls them plugins, but we did not read the importer's source and make no claim about the cause.

The binary that updated itself mid-measurement

Halfway through this session agy --version said 1.1.22. An hour later the file on disk was 197,602,456 bytes with a new hash and the version said 1.2.6. Nothing prompted, nothing asked, and a minor version boundary was crossed under a running measurement.

Claude Code 2.1.276Antigravity CLI
Previous builds kept3 (669 MB)0
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 hashes to a863895d829a246d…, identical to versions/2.1.276 — the same byte-identity check the VS Code extension teardown ran on the bundled binary. Antigravity left one agy.exe.<epoch>.old beside the new binary; fifteen minutes and several invocations later it was gone. We did not watch it be deleted and do not claim to know which process removed it, only that nothing else on this machine writes to that directory.

The practical version: if 1.2.6 changes a behaviour you depend on, there is no previous build on disk to fall back to. One more detail in the same key — agy changelog on 1.2.6 tops out at 1.2.5. The shipped notes lag the shipped binary by a release.

Antigravity CLI or Claude Code: which to run

  • You keep project instructions in a committed file. Claude Code, on this measurement. It is the only one of the two that loaded a file we gave it without being told to.
  • You want a model that is not the vendor's. Antigravity CLI. Fourteen models, three vendors, two of them Claude — Claude Code has one vendor by design.
  • You are leaving Gemini CLI. Antigravity is the named replacement and #41's portability audit still holds: renames and copies, not rewrites. Just verify your instructions actually load before trusting them to.
  • You want your MCP servers to arrive with a git clone. Claude Code's .mcp.json is project-scoped, covered in our .mcp.json reference. agy mcp list on a fresh install reports none configured, and this article did not test where agy mcp add writes.
  • You want migration tooling. Antigravity, oddly — it imports from claude and gemini, and Claude Code will not import from it at all.

What we could not measure

This is headless print mode only. Every Antigravity run carries --print. Interactive agy may load instruction files that print mode does not, and we did not test it because an interactive session cannot be scripted into an arm table. If you rely on AGENTS.md under Antigravity, test your own interactive session before trusting this result to it.

We did not write anything. agy plugin import claude has no --dry-run flag, so it was not run — only the bare form, which scans both sources and reported nothing found. No plugin was installed, no config was modified.

No output-quality, latency or cost comparison was attempted. Both CLIs are installed and authenticated here, so it was possible, and it was deliberately not done. The probe asks what 2 plus 2 is. The fixture asserts that through a guard so a later edit cannot quietly add a quality claim.

One directory is shared and neither tool put it there. ~/.agents/skills/ on this machine holds two skills with a version-3 lockfile, installed 2026-09-04 — by Shopify's toolkit installer, not by Antigravity CLI. A cross-agent directory populated by a third-party vendor is a genuinely new shape and we mention it rather than measure it; whether agy surfaces those skills is a question for an interactive session.

Two keys of the update story are unknown. We do not know what triggered the self-update, and we do not know whether the .old file is removed on a schedule, on next launch, or by something else.

Common mistakes

  • Trusting a portability audit as a load test. #41 scored 5 of 6 surfaces portable and was right. Portable is not loaded, and this article is the difference.
  • Assuming AGENTS.md is universal because everyone names it. Neither tool here read it unprompted. Claude Code needs an @AGENTS.md line; Antigravity, in print mode, needed something we did not find.
  • Reading a single codeword arm as a result. Our first probe was auto-denied at the tool layer and would have produced the same empty cell for the wrong reason.
  • Expecting the importer to go both ways. It reads claude. claude does not read it.
  • Pinning a version you cannot roll back to. Antigravity overwrites its binary in place and keeps nothing.

Conclusion

For claude code vs antigravity, choose on whether your committed instructions have to load. Claude Code loaded CLAUDE.md in six arms and Antigravity CLI loaded nothing in the same six, which is the only difference here that changes what you do tomorrow morning. If you want the model range instead — and two Anthropic models inside a Google CLI is a real reason — install it, then run the four-line probe above against your own repository before you move your instructions into it. Then read what a Codex config carries across, where the same importer question has a number attached.

Frequently asked questions

Does Antigravity CLI read AGENTS.md?
Not in headless print mode on version 1.2.6. We put a style rule naming a unique token into AGENTS.md at the workspace root, then into three other candidate paths, then into a committed file in a real git repository, and ran the same tool-free prompt in each. The token never came back. The same rule pasted inline into the prompt came back immediately, so the probe works.
What is the difference between Claude Code and Antigravity CLI?
Measured on 2026-09-18: Claude Code loads CLAUDE.md from the working directory and serves Anthropic models only. Antigravity CLI loaded no project instruction file in our probe and serves 14 models from three vendors, including Claude Sonnet 4.6 and Claude Opus 4.6. Antigravity can import Claude Code plugins; Claude Code rejects antigravity as an import source with exit code 1.
Is Antigravity CLI a good Gemini CLI replacement?
It is the replacement Google shipped, so the question is what you lose rather than what you choose. On the configuration axis it is the cheapest migration target we have measured from a Claude Code repository. On the axis this article measures — whether the tool loads your committed instructions at all — we could not get it to load any file we gave it.
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. The three that are not are the reason a Google CLI is worth a look even if you have no interest in Gemini.
Can Claude Code import my Antigravity CLI setup?
No. claude import antigravity exits 1 and prints a usage line naming codex, gemini and cursor as the only sources. The reverse works in principle: agy plugin import accepts gemini or claude. On this machine it reported no Claude extensions found against three plugin manifests and 58 MB of installed plugins on disk.

Muhammad Kashif

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