Releases: MarcosNahuel/antigravity-plugin-cc
v0.7.0 — Audio & video (transcribe + media Q&A)
Gemini is natively multimodal in audio and video — capabilities Claude Code lacks. v0.7.0 offloads them to agy.
/agy:transcribe <audio|video|YouTube-URL> [focus]— faithful transcript + summary in the source language; timestamps for video/URLs. Voice notes, meetings, calls, screencasts. →docs/agy/transcripts//agy:media <file|URL> | <question>— multimodal Q&A over audio/video/image ("what decisions were made?", "what happens at 2:30?"), grounded with time references. →docs/agy/media/
Verified on a real WhatsApp .ogg voice note and a YouTube video. 15 commands now, no Node runtime.
v0.6.9 — Local NotebookLM, model control & media-ready
The agy bridge for Claude Code — drive Google Antigravity (agy / Gemini 3.x) from inside Claude Code. 13 slash commands, no Node runtime.
🗒️ Flagship: a local NotebookLM
/agy:notebook <folder> | <objective> reads a whole folder of documents (PDFs, scans, images, docx) and writes a per-document summary, a relevance INDEX.md, a cited RESUMEN_MAESTRO.md, a TIMELINE.md and an ENTIDADES.md. Then /agy:notebook-ask answers questions over them with citations — locally, offloading all the reading to Gemini so it barely touches Claude's context.
New since 0.6.3
/agy:notebook(+notebook-ask): local NotebookLM with incremental cache, automatic model routing (Flash sweep → Pro synthesis), one-page-doc grouping, and auto-chunking of huge scanned PDFs./agy:model: switch the agy model reliably by writingsettings.json(the--modelflag is unreliable)./agy:setup: no more false "re-login" alarms.
Install
```
/plugin marketplace add MarcosNahuel/antigravity-plugin-cc
/plugin install antigravity@marcosnahuel-antigravity
/agy:setup
```
Requires the agy CLI installed + a Google/Antigravity sign-in. MIT.
v0.6.3 — robust recovery + full skill test pass
Patch release from a full end-to-end test of all 10 commands on agy 1.0.6 — every command verified working (research, report, ask, review, rescue, record, scrape, doc-to-md, design-review, setup; review correctly flagged two seeded bugs).
Fixed
- Transcript recovery resolved the conversation id unreliably. The #76 Plan B looked up the cid in
last_conversations.json[cwd]first, but that file is written with a delay and on 1.0.6 often lacks the invoking cwd entry — so immediate recovery returned empty though the response was on disk. Now resolves the cid from the cli log (Print mode: conversation=<cid>) → most-recentbrain/<cid>dir →last_conversations.json[cwd]last. Verified live.
No happy-path behavior change; this only hardens the fallback that fires when agy --print drops stdout (still common on 1.0.6).
v0.6.2 — stdin fix + reliable infographics + npm
Reliability + distribution release, driven by hands-on end-to-end testing on agy 1.0.6.
Fixed
- agy
--printstdin-hang in subprocess/background contexts — agy blocks forever on inherited stdin (log created but empty;--print-timeoutdoes not bound it). Every invocation now closes stdin with< /dev/null. Prereq for the v0.6.1 transcript recovery (which can't help if agy never runs). /agy:reportreferenced images it never created — standardizedASSETS_DIR(.html→.assets) + deterministic slug + a post-generation assets-existence check (IMAGES_PRESENT=n/total) that reports missing images instead of shipping broken<img>.- Research forward-dating — anti-forward-dating rule in all 3 intensity templates (no dates/versions/specs without a cited source; never present unreleased as shipped).
Added
/agy:report --images native|external|none—external(pre-generate PNGs with e.g. Nano Banana 2gemini-3.1-flash-image-preview; agy references them) is the recommended path for brand-grade infographics.none= styled placeholders.- npm distribution —
package.json+binhelper (npx antigravity-plugin-ccprints install commands). Mirror/discovery channel; canonical install remains the marketplace.
Docs
- README documents
/agy:report+/agy:ask+/agy:review, a "Documents with infographics" section, the--imagesmatrix, and the npm note. Version 0.6.2 consistent across all manifests.
The upstream empty-stdout bug (#76) is still unfixed as of agy 1.0.6 — these are wrapper-side mitigations.
v0.6.1 — issue #76 recovery + auth-timeout detection
Reliability release: full recovery path for the upstream empty-stdout bug (issue #76), driven by community findings on the upstream thread and confirmed through agy 1.0.5.
Added
- Transcript recovery (Plan B) for #76. When
agy --printexits 0 with empty stdout and no output file, recover the response fromcache/last_conversations.json[cwd]→brain/<cid>/.system_generated/logs/transcript.jsonl→ lastPLANNER_RESPONSE.content. Confirmed by three independent reporters. Makes/agy:rescueusable in subprocess mode; safety net for all modes. - Headless auth-timeout detection (new agy 1.0.5 failure mode).
keyringAuth: timed out→Print mode: auth timed out— the model never runs, so nothing is recoverable. The subagent detects it and returns an actionable re-auth message instead of a silent empty result; no wasted retry. - Three-way failure-mode triage table (
text_drip length=N→ #76 recover;rename … Access is denied→ #217 retry;auth timed out→ re-auth).
Changed
--print-timeoutdocumented as non-binding (community: 15s requested, exited ~41s). Set the Bash-tool timeout with headroom;highresearch (20m) exceeds the 10m Bash ceiling → background it.
Fixed
- Corrected the stale
--modelclaim. Rejected by agy 1.0.0/1.0.1 but accepted by 1.0.5+; the plugin still defaults to omitting it for cross-version safety.
The empty-stdout bug remains unfixed upstream as of agy 1.0.5 (2026-06-05); these are wrapper-side mitigations, not a fix.
v0.6.0 — TRAID Design System
Feature release: branded HTML report generation via the TRAID Design System, two quick-use commands, and Windows reliability hardening.
Added
/agy:report <markdown> [--template <id>] [--output <path>]— publication-grade self-contained HTML from a markdown source using 5 canonical templates (traid-dark,traid-light,stripe-press,notion-docs,magazine). Two-phase flow: agy recommends 1–3 templates, you pick (or--templateto skip), then it generates branded HTML, inlining Imagen images for![generate: ...]cues./agy:ask <prompt>— one-shot quick prompt, returns the response verbatim./agy:review [focus]— sends the currentgit diffto agy for code review.- TRAID Design System — 5 templates with full palette / typography / component specs.
Changed
agy-rescuesubagent gained 4 mode branches (ask,review,report-analyze,report-generate) — 10 modes total.- Windows rename bug (#217) hardening:
sleep 2 && agy …backoff retry + PowerShell.tmp-sweep fallback.
Note: v0.6.0 was developed and validated but reached the public repo together with v0.6.1.
v0.3.1 — fix: repository manifest schema
🐛 Hotfix: plugin manifest validation
What broke
The plugin's `repository` field in `plugins/antigravity/.claude-plugin/plugin.json` was an OBJECT (npm convention):
```json
"repository": {
"type": "git",
"url": "https://github.com/MarcosNahuel/antigravity-plugin-cc\"
}
```
But Claude Code's plugin manifest schema requires a STRING:
```json
"repository": "https://github.com/MarcosNahuel/antigravity-plugin-cc\"
```
Symptoms before this fix
If you ran:
```text
/plugin marketplace add MarcosNahuel/antigravity-plugin-cc
/plugin install antigravity@marcosnahuel-antigravity
```
Claude Code would respond `Failed to install: ... invalid manifest file ... Validation errors: repository: Invalid input: expected string, received object` — and the seven slash commands (`/antigravity:research`, `/antigravity:rescue`, `/antigravity:record`, `/antigravity:scrape`, `/antigravity:doc-to-md`, `/antigravity:design-review`, `/antigravity:setup`) would never appear in autocomplete.
This bug was present from v0.1.0 onwards — every previous release had it. It only surfaced when Claude Code's loader applied strict schema validation.
After this fix
A clean install now works end-to-end:
```text
/plugin marketplace add MarcosNahuel/antigravity-plugin-cc
/plugin install antigravity@marcosnahuel-antigravity
Restart Claude Code if asked
/antigravity:
→ autocomplete shows all 7 commands
```
Upgrade
If you're on any prior version:
```text
/plugin uninstall antigravity@marcosnahuel-antigravity
/plugin marketplace update marcosnahuel-antigravity
/plugin install antigravity@marcosnahuel-antigravity
```
Or restart Claude Code after pulling — `/plugin update` should pick up v0.3.1.
Engineering note
npm `package.json` uses `repository: {type, url}`. Claude Code plugin manifest uses `repository: ""`. Different schemas — don't reuse npm habits. This is now documented in `CHANGELOG.md` as a gotcha for future plugin authors.
Full changelog
v0.3.0 — Scrape · Doc-to-MD · Design Review
✨ Three new slash commands
/agy:scrape <url> [schema] [--json]
Structured data extraction from a single URL. Pass natural-language schema (extract product info) or explicit field list (price, title, stock). Output goes to docs/agy/scrapes/YYYY-MM-DD-<slug>.{md,json}.
Uses read_url for static HTML and the browser subagent for JS-heavy SPAs.
/agy:scrape https://example.com/product/123 price, title, stock, image_url
/agy:scrape https://example.com/blog extract all article titles and dates --json
For ad-hoc extractions. For production scraping pipelines, use Playwright + n8n.
/agy:doc-to-md <file> [focus]
Multimodal PDF / docx / image → clean Markdown conversion via Gemini. Preserves tables, lists, headings, code blocks. Inline images become described placeholders. Output to docs/agy/converted/YYYY-MM-DD-<slug>.md.
/agy:doc-to-md ./rfp-from-client.pdf
/agy:doc-to-md ./screenshot.png extract only the visible table data
/agy:doc-to-md ./contract.docx focus on the pricing and SLA sections
Ideal for ingesting RFPs, specs, contracts, and other client documents that arrive as PDF or docx.
/agy:design-review <url> [focus]
UX/visual audit using browser subagent + multimodal vision. Captures desktop (1440×900) + mobile (375×667) screenshots, scores 10 dimensions, ends with 3 strengths + 3 highest-leverage improvements + overall /10 score.
/agy:design-review https://your-app.com/
/agy:design-review https://your-app.com/checkout focus on mobile conversion flow
/agy:design-review https://your-app.com/ benchmark against MercadoLibre seller backend
Validated against a real ERP login during development — output quality is on par with junior UX reviewer.
Why these three (and not others)
After enumerating agy's full capability surface, these three are the highest-leverage capabilities not already covered by Claude Code's native tools or sister plugins. We intentionally skipped:
/agy:image|video|tts— already covered by Vertex AI direct skills/agy:subagent|fork|rewind— Claude Code has native equivalents/agy:memory— overlap withengramplugin/agy:quota— requires TTY, incompatible with the plugin's--printworkflow
See the capability inventory report for full reasoning.
Same proven workarounds
All three new commands use the v0.2.0-established pattern:
--printis always the LAST flag (Go flag-parser gotcha)--add-dir <CWD>so agy can write into the calling project- The prompt instructs agy to use
write_file(workaround for upstream issue #76: empty stdout in--printmode)
Install / Update
From inside Claude Code:
/plugin marketplace update MarcosNahuel/antigravity-plugin-cc
/plugin update antigravity@marcosnahuel-antigravity
Full changelog
See CHANGELOG.md.
v0.2.0 — /agy:record + flag-order fix
✨ New: /agy:record <url> [steps]
Record a browser walkthrough of any URL using agy's browser subagent. Generates a .webm video, initial + final screenshots, and a markdown report describing what was observed. Output lands in your project at docs/agy/recordings/YYYY-MM-DD-<host-path-slug>.{webm,mp4,png,md}.
Examples:
/agy:record https://example.com/
/agy:record https://erp.example.com/login Login with demo@x.com / password=test, navigate to the dashboard, scroll through the main metrics, click on Reports
/agy:record https://docs.python.org/3/ Read the front page, scroll to the language reference section, click on it
Default walkthrough (when no steps are given): load → screenshot → scroll → click most prominent CTA → screenshot.
Optional MP4 conversion via ffmpeg if it's on PATH (winget install Gyan.FFmpeg, brew install ffmpeg, or apt install ffmpeg). Falls back gracefully to .webm-only with an install hint when ffmpeg is missing.
No audio — pair with your TTS pipeline of choice and mux with ffmpeg if narration is needed.
🐛 Critical fix: flag order (affects ALL commands)
The v0.1.x invocation contract was actually broken in a subtle way that went undetected because the failure mode looked the same as other failures:
- v0.1.x ran
agy --print --dangerously-skip-permissions ... - Go's
flagpackage treats--printas value-taking and consumed--dangerously-skip-permissionsas the prompt - agy received the literal string
--dangerously-skip-permissionsasUSER_REQUEST(verified by inspecting~/.gemini/antigravity-cli/brain/<session>/.system_generated/logs/transcript.jsonl) and responded to that instead of the user's actual task
v0.2.0 contract: agy --dangerously-skip-permissions [--add-dir <CWD>] --print-timeout <T> [--continue] --print "<PROMPT>" — --print is always the LAST flag.
This is documented prominently in the subagent (plugins/antigravity/agents/agy-rescue.md) under "Invocation contract".
🩹 Workaround: empty stdout in --print mode (issue #76)
agy v1.0.x has a confirmed upstream bug (google-antigravity/antigravity-cli#76) where, when stdout is not a TTY, the binary exits 0 with zero bytes on stdout even though the model generated a full response. The text_drip.go log entries (Drip stopped: length=2504) prove the response is produced but never flushed.
v0.2.0 workaround: every mode now instructs agy in the prompt itself to write its output via write_file to a known path. The calling agent reads that file. stdout is used only as a process-exit signal. The plugin will automatically pick up the upstream fix when it lands.
🆕 New default flag: --add-dir <CWD>
record and research modes now always pass --add-dir <calling-CWD> so agy's write_file tool has permission to write into the calling project's directory. Without this flag, agy could only write to ~/.gemini/antigravity-cli/scratch/ and the output never landed in the user's repo.
Install
From inside Claude Code:
/plugin marketplace update MarcosNahuel/antigravity-plugin-cc
/plugin update antigravity@marcosnahuel-antigravity
(or /plugin install if you haven't installed the plugin yet)
Full changelog
See CHANGELOG.md.
v0.1.1 — fix --model + harden setup ping
Bugfix release that ships the day after v0.1.0.
Fixed
- Removed
--modelflag from/agy:rescueand/agy:research. TheagyCLI 1.0.x does not accept--model— passing it makes the binary exit withflags provided but not defined: -model. Earlier versions of this plugin documented and parsed this flag, so any user who tried--model proor similar got an immediate hard failure. Model selection is now delegated entirely toagy's internal default (Gemini 3.5 Flash for most cases). - Setup ping no longer enters tool-call loops.
agydefaults to an agentic mode that callsListDir,Search,ReadFileeven for trivial prompts. The previous/agy:setupping was\"ping — reply with only the word 'pong'\", which the model interpreted as license to explore the workspace, consume the entire--print-timeout, and return exit 0 with empty stdout — indistinguishable from "OAuth missing". v0.1.1 sends an explicit "do not use any tools, do not search, do not read files" instruction in the ping prompt.
Changed
- Health-check troubleshooting now distinguishes "tool-call timeout" from "OAuth missing". README FAQ and `commands/setup.md` now document both failure modes, with `~/.gemini/antigravity-cli/installation_id` as the diagnostic check for OAuth.
- Removed the "Multi-model support" README section. It documented model identifiers (`gemini-3.5-pro`, `claude-opus-4-6-thinking`, etc.) that are not selectable from the CLI in 1.0.x. The section will return when upstream `agy` exposes a model flag.
Notes
agy1.0.x has model selection inside its interactive settings, not on the command line. If you need a specific model, change it viaagydirectly.- This patch is non-breaking: the slash commands keep the same names. Anyone passing
--model Xwill now get the modelagypicks by default instead of a hard failure.
Upgrade
/plugin update antigravity@marcosnahuel-antigravity
Restart Claude Code after upgrading so the slash commands reload.