You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Antigravity CLI 1.1.26 never loads a plugin's hooks, and silently drops two of this plugin's four events #553
Antigravity CLI (agy) 1.1.26 installs from https://antigravity.google/cli/install.sh to ~/.local/bin/agy. It is a fourth candidate host: it carries plugin import [source] documented as "Import plugins from gemini or claude", plus plugin install/validate/enable/disable and an mcp subcommand.
It is also, unlike Gemini CLI, verifiable. #532 blocks on headless OAuth (invalid_grant, no OOB fallback). agy has no such wall:
$ agy -p "reply with exactly: OK" --output-format text
OK
No browser, no prompt, no cached-credential failure. So the reason every Gemini CLI test in this repo asserts manifest shape only does not apply here — Antigravity claims can be observed rather than reasoned.
What was observed
All of the below was run against this repo at 0.26.0.
agy plugin validate requires plugin.json in the directory it is pointed at, and resolves component directories as siblings of that file. Pointed at .claude-plugin/, every component type is missing (see the sibling issue about that output):
With a flat layout — plugin.json copied to a scratch directory, with hooks/, commands/, skills/ symlinked in beside it — three of five resolve and one does not:
hooks/hooks.json is present and readable in that tree — the symlink is the same one skills and commands resolved through. Copying that same file to hooks.json at the plugin root, changing nothing else, flips it:
So Antigravity looks for the hook manifest at <plugin-root>/hooks.json, while this repo keeps it at hooks/hooks.json, which is where Claude Code reads it.
Why this matters more than the count suggests
This plugin is its hooks. SessionStart, UserPromptSubmit and Stop are what capture memory at all; skills and commands are the surface around them. A host that loads the skills and silently drops the hooks yields an install that looks present and saves nothing — the exact failure mode this project treats as its worst, and one a user would attribute to the plugin rather than to the host.
Note also that commands is reported as "converted to skills", so the command surface does not survive as commands. Whether that conversion preserves behaviour is not established here and should be checked separately.
What is not established
Whether agy plugin import claude (as opposed to validate) applies a different, Claude-aware layout resolution that would find hooks/hooks.json correctly. agy plugin import with no imported extensions present answered No claude extensions found., so the import path was never exercised against this repo.
Whether the root-hooks.json layout is documented and stable, or an implementation detail of 1.1.26.
Scope this is not
This is a finding, not a request to ship a fourth host. Adding an Antigravity badge to the README (#547/#548) would today be a claim a one-line probe disproves, which is worse than the caveated Gemini badge. The badge follows the evidence, not the other way round.
Measured on macOS (darwin/arm64), agy 1.1.26, this checkout at 0.26.0. Nothing here is claimed for other platforms.
Antigravity CLI (
agy) 1.1.26 installs fromhttps://antigravity.google/cli/install.shto~/.local/bin/agy. It is a fourth candidate host: it carriesplugin import [source]documented as "Import plugins from gemini or claude", plusplugin install/validate/enable/disableand anmcpsubcommand.It is also, unlike Gemini CLI, verifiable. #532 blocks on headless OAuth (
invalid_grant, no OOB fallback).agyhas no such wall:No browser, no prompt, no cached-credential failure. So the reason every Gemini CLI test in this repo asserts manifest shape only does not apply here — Antigravity claims can be observed rather than reasoned.
What was observed
All of the below was run against this repo at 0.26.0.
agy plugin validaterequiresplugin.jsonin the directory it is pointed at, and resolves component directories as siblings of that file. Pointed at.claude-plugin/, every component type is missing (see the sibling issue about that output):With a flat layout —
plugin.jsoncopied to a scratch directory, withhooks/,commands/,skills/symlinked in beside it — three of five resolve and one does not:hooks/hooks.jsonis present and readable in that tree — the symlink is the same oneskillsandcommandsresolved through. Copying that same file tohooks.jsonat the plugin root, changing nothing else, flips it:So Antigravity looks for the hook manifest at
<plugin-root>/hooks.json, while this repo keeps it athooks/hooks.json, which is where Claude Code reads it.Why this matters more than the count suggests
This plugin is its hooks.
SessionStart,UserPromptSubmitandStopare what capture memory at all; skills and commands are the surface around them. A host that loads the skills and silently drops the hooks yields an install that looks present and saves nothing — the exact failure mode this project treats as its worst, and one a user would attribute to the plugin rather than to the host.Note also that
commandsis reported as "converted to skills", so the command surface does not survive as commands. Whether that conversion preserves behaviour is not established here and should be checked separately.What is not established
agy plugin import claude(as opposed tovalidate) applies a different, Claude-aware layout resolution that would findhooks/hooks.jsoncorrectly.agy plugin importwith no imported extensions present answeredNo claude extensions found., so the import path was never exercised against this repo.hooks.jsonlayout is documented and stable, or an implementation detail of 1.1.26.Scope this is not
This is a finding, not a request to ship a fourth host. Adding an Antigravity badge to the README (#547/#548) would today be a claim a one-line probe disproves, which is worse than the caveated Gemini badge. The badge follows the evidence, not the other way round.
Measured on macOS (darwin/arm64),
agy1.1.26, this checkout at 0.26.0. Nothing here is claimed for other platforms.