🚀 Antigravity Autopilot

Auto-accept agent steps in Antigravity IDE — no CDP required.
Uses OS-level accessibility (Windows UI Automation) to click Run, Accept, Continue, and other agent buttons invisibly — no mouse movement, no DOM injection, no Chrome DevTools Protocol.

Why This Extension?
Every other auto-accept extension relies on Chrome DevTools Protocol (CDP). This breaks when:
- ❌ Electron builds disable
--remote-debugging-port (Antigravity does this)
- ❌ Corporate policies block CDP ports
- ❌ Shortcut patching fails silently
- ❌ CDP WebSocket drops on auto-updates
Antigravity Autopilot doesn't use CDP at all. It uses Windows UI Automation APIs to find and click buttons through the accessibility tree — the same API that screen readers use. This means:
- ✅ Works when CDP is blocked — no port configuration needed
- ✅ No mouse hijacking — uses
InvokePattern.Invoke() (invisible click)
- ✅ No DOM injection — doesn't touch the webview content
- ✅ No shortcut patching — no
.lnk file modifications
- ✅ Auto-scrolls chat — keeps up with agent output
Quick Start
1. Install the Extension
Ctrl+Shift+X → Search "Antigravity Autopilot" → Install
2. Enable Accessibility (One-Time)
On first launch, the extension will prompt you to set the ELECTRON_FORCE_RENDERER_ACCESSIBILITY environment variable. Click "Set Environment Variable" and restart Antigravity.
Or do it manually:
[System.Environment]::SetEnvironmentVariable('ELECTRON_FORCE_RENDERER_ACCESSIBILITY', '1', 'User')
Why? Electron-based IDEs don't expose webview UI elements by default. This env var forces the Chromium renderer to populate the accessibility tree, making agent buttons visible to UI Automation.
3. Use It
- Status bar: Click
$(rocket) Autopilot ON / $(debug-pause) Autopilot OFF to toggle
- Command palette:
Ctrl+Shift+P → "Antigravity Autopilot: Start/Stop/Toggle"
- Auto-start: Enabled by default — starts when Antigravity opens
How It Works
┌─────────────────────────────────────────┐
│ Antigravity IDE (Electron) │
│ ┌──────────────────────────────────┐ │
│ │ Agent Panel (React Webview) │ │
│ │ ┌────────────────────────────┐ │ │
│ │ │ [Run Alt+d] [Reject] │ │ │
│ │ └────────────────────────────┘ │ │
│ └──────────────────────────────────┘ │
│ ↑ Accessibility Tree │
└─────────┼───────────────────────────────┘
│ InvokePattern.Invoke()
┌─────────┼───────────────────────────────┐
│ Autopilot Watcher (PowerShell) │
│ - Polls every 800ms │
│ - Finds buttons by text pattern │
│ - Clicks via InvokePattern (invisible) │
│ - Cooldown prevents re-clicking │
└─────────────────────────────────────────┘
- Polls the IDE window's accessibility tree every 800ms
- Matches button names against configurable accept/reject regex patterns
- Clicks matching buttons via
InvokePattern.Invoke() — no mouse, no focus steal
- Cooldown prevents re-clicking the same button within 10 seconds
- Auto-scrolls the chat to keep up with agent output (3s cooldown)
Settings
| Setting |
Default |
Description |
antigravityAutopilot.enabled |
true |
Master toggle |
antigravityAutopilot.pollIntervalMs |
800 |
Scan interval (ms) |
antigravityAutopilot.cooldownSeconds |
10 |
Per-button cooldown |
antigravityAutopilot.scrollCooldownSeconds |
3 |
Scroll button cooldown |
antigravityAutopilot.autoScroll |
true |
Auto-click "Scroll to bottom" |
antigravityAutopilot.acceptPatterns |
["^Run", "^Accept", ...] |
Regex patterns to auto-click |
antigravityAutopilot.rejectPatterns |
["^Cancel", "^Reject", ...] |
Patterns to NEVER click |
Default Accept Patterns
^Run, ^Accept, ^Accept All$, ^Allow$, ^Allow this conversation$,
^Continue$, ^Keep All$, ^Yes$, ^Scroll to bottom$
Default Reject Patterns (Safety Net)
^Reject, ^Cancel$, ^Deny, ^Delete, ^Remove, ^Discard, ^Close,
^Minimize$, ^Maximize$, ^Always run, ^Always allow, ^Ask every,
^Review Changes$
Supported IDEs
| IDE |
Status |
| Antigravity |
✅ Fully tested |
| Cursor |
✅ Should work (same Electron base) |
| Windsurf |
✅ Should work (same Electron base) |
| VS Code |
✅ Should work |
| Platform |
Status |
| Windows |
✅ Full support (UI Automation) |
| macOS |
🔜 Planned (AXUIElement API) |
| Linux |
🔜 Planned (AT-SPI) |
Troubleshooting
The accessibility env var isn't set or Antigravity wasn't restarted. Run:
$env:ELECTRON_FORCE_RENDERER_ACCESSIBILITY = "1"
& "C:\path\to\Antigravity.exe"
Watcher can't find the IDE window
Make sure only one instance of Antigravity is running.
Check the Output panel (Ctrl+Shift+U → "Antigravity Autopilot") for logs. The button text may not match the default patterns — add custom patterns in settings.
Contributing
PRs welcome! The main areas for contribution:
- macOS support — implement
AXUIElement-based watcher in Swift/Python
- Linux support — implement
AT-SPI-based watcher
- New button patterns — submit patterns for other IDE forks
- Performance — optimize the polling/scanning loop
License
MIT — see LICENSE
If this saved you from clicking 1000 buttons, consider buying me a coffee ☕