Skip to content

manaskhuman/better-antigravity

 
 

Repository files navigation

Better Antigravity

Community-driven fixes and improvements for Antigravity IDE

Open VSX npm License: AGPL-3.0 Antigravity Sponsor

Antigravity is great. We just make it a little better.


What is this?

Better Antigravity is both a VS Code extension and an npm CLI tool that fixes known bugs and adds quality-of-life features to Antigravity IDE.

Channel What it does Install
Extension Auto-applies fixes on startup + chat rename + SDK features Open VSX
CLI Quick one-off patching via npx (no extension install needed) npx better-antigravity auto-run

Note

The extension includes everything the CLI does, plus extra features powered by the Antigravity SDK. If you install the extension, you don't need the CLI.


Install (Extension)

Search for "Better Antigravity" in the Extensions panel, or install from Open VSX.

Manual install:

antigravity --install-extension better-antigravity-0.5.0.vsix --force

On activation the extension will:

  1. Auto-apply the auto-run fix (silent, no prompt)
  2. Initialize the SDK for chat rename and future features
  3. Install the integration script (prompts for reload on first install, auto-reloads on updates)
  4. Suppress integrity warnings ("corrupt installation" notification silenced automatically)

Install (CLI only)

If you just want the auto-run fix without installing an extension:

npx better-antigravity auto-run            # apply fix
npx better-antigravity auto-run --check    # check status
npx better-antigravity auto-run --revert   # revert to original

Custom install path (if Antigravity is not in the default location):

npx better-antigravity auto-run --path "D:\Antigravity"

Features

Auto-Run Fix

The problem: You set Settings -> Agent -> Terminal Execution -> "Always Proceed", but Antigravity still asks you to click "Run" on every terminal command.

Root cause: The run_command step renderer has an onChange handler that auto-confirms when you switch the dropdown, but there's no useEffect that checks the saved policy at mount time.

// What exists (only fires on dropdown CHANGE):
onChange = useCallback(_ => {
    setPolicy(_), _ === EAGER && confirm(true)
}, [])

// What's MISSING (should fire on mount):
useEffect(() => {
    if (policy === EAGER && !secureMode) confirm(true)
}, [])

The fix: Our patcher adds the missing useEffect. It uses structural regex matching (not hardcoded variable names) so it works across Antigravity versions.

For the full root cause analysis, pattern matching explanation, and example output, see FIXES.md.

Chat Rename (Extension only)

Rename conversations to custom titles via the Antigravity SDK title proxy. Custom titles override the auto-generated summaries in the sidebar.

Integrity Check Suppression (Extension only)

When the SDK patches workbench.html, Antigravity shows a sticky "Your installation appears to be corrupt" warning with no dismiss button. As of v0.4.0, the extension automatically updates the checksum in product.json after patching so IntegrityService sees isPure = true. No warnings on next restart.

Multiple SDK-based extensions are coordinated automatically -- the original checksum is restored only when the last extension uninstalls.

Status Command (Extension only)

Ctrl+Shift+P -> "Better Antigravity: Show Status" to see:

  • SDK initialization state
  • Language Server connection
  • Integration script status
  • Auto-run fix status per file

Commands

Command Description
Better Antigravity: Show Status Show extension and fix status
Better Antigravity: Revert Auto-Run Fix Restore original files from backup

Safety

  • Automatic backups -- original files saved as .ba-backup before patching
  • One-command revert -- CLI --revert or extension command
  • Non-destructive -- patches only add code, never remove existing logic
  • Version-resilient -- structural regex matching, not hardcoded variable names
  • Async I/O -- file operations don't block the extension host

Compatibility

Antigravity Version Status
1.107.0 Tested
Other versions Should work (dynamic pattern matching)

Project Structure

better-antigravity/
├── src/
│   ├── extension.ts       # Extension entry point (thin orchestrator)
│   ├── auto-run.ts        # Auto-run fix logic (async, no vscode dependency)
│   └── commands.ts        # VS Code command handlers
├── fixes/
│   └── auto-run-fix/
│       └── patch.js       # Standalone CLI patcher
├── cli.js                 # npx entry point
├── build.mjs              # esbuild config
├── publish-ovsx.mjs       # Open VSX publish script
└── package.json           # Dual: npm package + VS Code extension

Development

npm install
npm run build              # Compile extension
npm run watch              # Watch mode
npm run package            # Build VSIX -> out/
npm run publish:ovsx       # Publish to Open VSX (reads .env)

The extension depends on antigravity-sdk from the monorepo sibling directory. The build script aliases it automatically.


Contributing

Found another Antigravity bug? Have a fix? PRs are welcome.

Adding a new fix:

  1. Create a folder under fixes/ with a descriptive name
  2. Include a patch.js that supports --check and --revert flags
  3. Use structural pattern matching, not hardcoded variable names
  4. Update this README's feature table

Disclaimer

Warning

This project is not affiliated with Google or the Antigravity team. These are community patches and improvements. If Antigravity updates and the patches break, simply revert and re-apply (or wait for an updated patch).

Always report bugs officially at antigravity.google/support -- community patches are temporary solutions, not replacements for official fixes.


❤️ Support

If you find this project useful and want to support its development, you can send USDT to:

Network Address
TON UQCjVh3C3mZc44GjT2IDsS4pmeOoUgRNxWMcb85NS5Bz_v1d
TRON (TRC20) TH3JKGjNrSDCsjkkSuneaSMZoJYF7CNTXD

License

AGPL-3.0-or-later

About

The repository was created to support Antigravity from the community.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 62.3%
  • TypeScript 37.7%