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.
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
.lnkfile modifications - β Auto-scrolls chat β keeps up with agent output
Ctrl+Shift+X β Search "Antigravity Autopilot" β Install
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.
- Status bar: Click
Autopilot ON/Autopilot OFFto toggle - Keyboard shortcut:
Ctrl+Shift+A(Cmd+Shift+Aon macOS) β instant toggle - Command palette:
Ctrl+Shift+Pβ "Antigravity Autopilot: Start/Stop/Toggle" - Auto-start: Enabled by default β starts when Antigravity opens
βββββββββββββββββββββββββββββββββββββββββββ
β 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
- Focus-aware: Only clicks when the IDE is the foreground window β won't interrupt other apps
- 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)
| 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 |
^Run, ^Accept, ^Accept All$, ^Allow$, ^Allow this conversation$,
^Continue$, ^Keep All$, ^Yes$, ^Retry$, ^Scroll to bottom$,
^Send all$, ^Always Allow$, ^Always run$
^Reject, ^Cancel$, ^Deny, ^Delete, ^Remove, ^Discard, ^Close,
^Minimize$, ^Maximize$, ^Review Changes$
| 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) |
The accessibility env var isn't set or Antigravity wasn't restarted. Run:
$env:ELECTRON_FORCE_RENDERER_ACCESSIBILITY = "1"
& "C:\path\to\Antigravity.exe"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.
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
MIT β see LICENSE

If this saved you from clicking 1000 buttons, consider buying me a coffee β