Skip to content

Add Antigravity IDE plugin#474

Open
jinuk-saramin wants to merge 4 commits into
robinebers:mainfrom
jinuk-saramin:feat/add-antigravity-ide
Open

Add Antigravity IDE plugin#474
jinuk-saramin wants to merge 4 commits into
robinebers:mainfrom
jinuk-saramin:feat/add-antigravity-ide

Conversation

@jinuk-saramin
Copy link
Copy Markdown

@jinuk-saramin jinuk-saramin commented May 20, 2026

Description

This PR introduces support for Antigravity IDE (the new 2.0 version of the Antigravity assistant).

Key Details:

  • LS Probing: Scans local running processes for the language_server_macos binary with the --app_data_dir antigravity-ide argument, resolves its TCP port, and makes local HTTP/HTTPS Connect-RPC calls to fetch model usage (GetUserStatus and GetCommandModelConfigs).
  • No SQLite OAuth Fallback: Unlike the original Antigravity plugin, Antigravity IDE does not store the user's OAuth tokens inside its SQLite database. Therefore, the SQLite fallback decode logic has been omitted, making this plugin lightweight and strictly focused on Language Server probing.
  • Icon and Theme: Included the Google brand color (#1A73E8) and SVG logo utilizing currentColor for consistent theme support.
  • Documentation: Added a detailed setup guide under docs/providers/antigravity-ide.md and updated README.md to list the new provider.

Related Issue

N/A

Type of Change

  • Bug fix
  • New feature
  • New provider plugin
  • Documentation
  • Performance improvement
  • Other (describe below)

Testing

  • I ran bun run build and it succeeded (Skipped due to lack of local Rust/Cargo environment, but the TS/JS codebase is fully intact)
  • I ran bun run test and all tests pass (Verified all 1094 tests including the 18 new unit tests pass successfully)
  • I tested the change locally with bun tauri dev (Manually verified by copying the plugin to ~/Library/Application Support/com.sunstory.openusage/plugins/ and testing it with the running desktop app)

Screenshots

Checklist

  • I read CONTRIBUTING.md
  • My PR targets the main branch
  • I did not introduce new dependencies without justification

Summary by cubic

Add the new antigravity-ide provider plugin that reads usage from the local Antigravity IDE language server via Connect-RPC. Shows Gemini and Claude quota pools with a 5-hour window, no OAuth or cloud fallback required.

  • New Features
    • Discovers language_server_macos with marker antigravity-ide, probes ports via GetUnleashData (HTTPS first, then HTTP), and uses --csrf_token.
    • Calls GetUserStatus (primary) with fallback to GetCommandModelConfigs on exa.language_server_pb.LanguageServerService.
    • Groups models into "Gemini Pro", "Gemini Flash", and "Claude"; dedupes variants; shows progress with reset times.
    • Filters blacklisted model IDs; LS-only approach (no SQLite OAuth fallback, no cloud API).
    • Updates icon to use theme color; sets brandColor to #000000.
    • Adds docs at docs/providers/antigravity-ide.md, updates README, and includes plugin assets and tests (now covering Gemini 3.5 Flash variants).

Written for commit de1706b. Summary will update on new commits. Review in cubic

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 6 files

Re-trigger cubic

Copy link
Copy Markdown
Owner

@robinebers robinebers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey! 👋 This is Rob's AI reviewer. Thanks for the contribution!

LS-only design is clean, tests are thorough (18 of them, all green), and docs are solid. Two things to clarify before merge:

  1. brandColor mismatch — your PR description says you used Google blue #1A73E8, but plugin.json actually has #000000 (black). The sibling Antigravity plugin uses #4285F4. Since Antigravity IDE is also a Google product, picking the real Google brand color (probably matching #4285F4 for consistency) seems right. What's the reason for black?

  2. Big overlap with the existing antigravity plugin — roughly 150 lines (LS discovery, port probing, callLs, normalizeLabel / poolLabel / modelSortKey, buildModelLines, CC_MODEL_BLACKLIST) are copy-pasted verbatim from plugins/antigravity/plugin.js. The only real differences are:

    • LS marker: antigravity-ide instead of antigravity
    • ideName / extensionName metadata strings
    • No SQLite OAuth + Cloud Code fallback
    • Error string: "Start Antigravity IDE..." instead of "Start Antigravity..."

    Could you walk us through the thinking? A few options:

    • Keep them as two plugins (simple, what you have now — but blacklist/protocol changes need duplicating)
    • Merge into one plugin that probes both markers and just picks whichever LS is running
    • Share the LS code via a small helper

    No strong opinion from my side, just want to understand the call.

Everything else (icon, tests, docs, security surface) looks good.

@validatedev
Copy link
Copy Markdown
Collaborator

I feel like we should consolidate everything into one Antigravity and use IDE -> App -> CLI fallbacks to gather the data since they share the same quota.
Gemini should stay for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants