Skip to content
/

Antigravity Link

antigravity-link · cafeTechne/antigravity-link-extension · ★ 180 · last commit 2026-05-04

Primitive shape 13 total
Commands 4 MCP tools 9
00

Summary

Antigravity Link — Summary

Antigravity Link is a VS Code extension (MIT, by cafeTechne) that acts as a mobile companion and automation bridge for Google's Antigravity IDE. It bridges the gap when a developer steps away from their desk during a long AI generation session: scan a QR code and your phone becomes a live mirror of the active Antigravity chat — you can read streaming output, send messages, stop generation, upload files, and switch between multiple Antigravity windows from a mobile browser. For automation, it exposes an HTTP API (OpenAPI spec) and an MCP server (9 tools) so that other agents or CI systems can programmatically drive Antigravity sessions.

The extension works by connecting to the Chrome DevTools Protocol (CDP) debug port that Antigravity exposes (--remote-debugging-port=9000), injecting into the chat surface via JavaScript, and bridging commands through a local HTTPS server. It is purely a control-plane bridge — it does not modify Antigravity's networking, intercept API calls, or require patching the IDE.

Closest seed: none precisely, but closest to kiro in that it extends an IDE product's control surface. Unlike kiro's hook system (lifecycle events inside the IDE), antigravity-link is an external browser automation layer that operates on the DOM via CDP from outside the IDE process.

01

Overview

Antigravity Link — Overview

Origin

Created by cafeTechne (independent developer) as a community companion for Google's Antigravity IDE. First published to Open VSX and VS Code Marketplace. The project is MIT-licensed and open-source. Version 1.0.14 at analysis time. Available at Open VSX (cafetechne.antigravity-link-extension) and npm.

Philosophy

"You're running an Antigravity session and need to step away from your desk. The AI is mid-generation. You want to monitor it, redirect it, upload a file, or just read what it wrote from your phone, without coming back to your computer."

The extension's philosophy is zero-modification, local-only control: it reads the IDE's screen state and simulates keypresses/clicks exactly as a human would, without intercepting Antigravity's network traffic, modifying binary files, or sending data to third-party servers. The QR code URL contains a Bearer token for auth; everything runs on the local network.

Security Design Philosophy

From README: "No requests are made to Google's servers beyond what Antigravity already sends. Nothing is injected into Antigravity's network traffic. No Antigravity files are modified. The server runs entirely on your machine. No data is sent to third-party services."

Key Target Use Cases

  1. Mobile monitoring: Watch AI generation from phone when away from desk
  2. Agent automation: Drive Antigravity programmatically via MCP tools or REST API
  3. Multi-window management: Switch between multiple Antigravity windows from mobile
  4. Voice input: Dictate prompts via voice-to-text on mobile (requires HTTPS)
02

Architecture

Antigravity Link — Architecture

Distribution

  • Type: VS Code extension (.vsix published to Open VSX and VS Code Marketplace)
  • Also available: npm package (antigravity-link-extension)
  • Version: 1.0.14

Install

# Via Open VSX (inside Antigravity IDE)
# Search: "Antigravity Link"
# Or direct install URL: open-vsx.org/extension/cafetechne/antigravity-link-extension

# MCP server (standalone, for external agent use)
node /path/to/antigravity-link-extension/mcp-server.mjs

Required Runtime

  • Antigravity IDE running with --remote-debugging-port=9000 (mandatory)
  • Node.js (bundled with VS Code extension)
  • Phone + computer on same Wi-Fi network

Architecture Components

[Antigravity IDE] <--CDP/9000-- [Extension bridge server :3000]
                                        |
                          ┌─────────────┼─────────────┐
                          |             |              |
                    [Mobile UI]   [REST API]    [MCP server]
                    (browser)   (automation)  (AI agents)
  1. Extension (src/extension.ts): Activates on VS Code startup, manages server lifecycle
  2. Bridge server (src/server/): Local HTTPS server on port 3000 (configurable)
  3. CDP client (src/services/): Connects to Antigravity's Chrome DevTools Protocol port
  4. Mobile UI (public/): Static HTML/JS served to phone browser via QR code
  5. MCP server (mcp-server.mjs): Standalone Node.js MCP server exposing 9 tools
  6. OpenAPI spec (openapi.yaml): Full HTTP API documentation

Configuration

Settings in VS Code settings.json:

  • antigravityLink.port (default 3000)
  • antigravityLink.autoStart (default false)
  • antigravityLink.useHttps (default true)
  • antigravityLink.preferredHost — LAN IPv4 for QR URL
  • antigravityLink.strictWorkbenchOnly (default true)
  • antigravityLink.includeFallbackTargets (default false)

Launch Command for Antigravity

# macOS
open -a Antigravity --args --remote-debugging-port=9000
# Windows
antigravity.exe --remote-debugging-port=9000
# Linux
antigravity --remote-debugging-port=9000
03

Components

Antigravity Link — Components

VS Code Commands (4)

Command Description
Antigravity Link: Start Server Starts the local bridge server
Antigravity Link: Stop Server Stops the server
Antigravity Link: Show QR Code Displays QR code for phone connection
Antigravity Link: Select Network Interface Choose which network interface the QR URL advertises

HTTP API Endpoints (11, from openapi.yaml)

Endpoint Method Description
/ping GET Health check (no auth required)
/snapshot GET Get current chat snapshot (HTML, CSS, controls, isGenerating)
/instances GET List all Antigravity windows
/instance POST Switch active Antigravity window by CDP target ID
/send POST Send a text message to active chat
/click POST Click a UI element by CSS selector
/stop POST Stop current AI generation
/upload POST Upload file to active chat
/task POST Trigger Antigravity's Task button
/walkthrough POST Trigger Antigravity's Walkthrough button
/plan POST Trigger Antigravity's Plan button

MCP Server Tools (9, from mcp-server.mjs)

Tool name Description
get_snapshot Get current state (HTML, mode, model, isGenerating, controls)
send_message Send text message to active chat
stop_generation Stop AI generation (Language Server RPC + DOM click)
get_instances List all running Antigravity windows
switch_instance Switch active connection to different window
upload_file Upload file to active chat
get_content Extract readable text content from chat
click_control Click a control (task, walkthrough, plan)
set_model_or_mode Change model or mode in Antigravity

Internal Source Modules

  • src/extension.ts — activation, command registration
  • src/server/ — HTTP/HTTPS bridge server
  • src/services/ — CDP client, snapshot poller
  • src/middleware/ — auth middleware
  • src/types/ — TypeScript type definitions
  • src/utils/ — utility functions
  • public/ — mobile web UI assets (HTML/CSS/JS)
  • mcp-server.mjs — standalone MCP server (ESM)
05

Prompts

Antigravity Link — Prompts

Note

Antigravity Link is a control-plane bridge extension, not an AI coding framework. It contains no system prompts, agent instructions, or skill files. The "prompts" are the messages users send to Antigravity via the /send API endpoint or MCP send_message tool.


Verbatim: MCP Tool Description — get_snapshot (from mcp-server.mjs)

{
  name: 'get_snapshot',
  description:
    'Get the current state of the active Antigravity chat session. Returns rendered HTML, ' +
    'active mode/model, whether the AI is generating, and available controls (stop, task, walkthrough).',
  inputSchema: { type: 'object', properties: {} }
}

Technique: Minimal schema — no required parameters. The tool is designed for LLM consumption where the agent should poll state before acting.


Verbatim: MCP Tool Description — send_message (from mcp-server.mjs)

{
  name: 'send_message',
  description: 'Send a text message to the active Antigravity chat session.',
  inputSchema: {
    type: 'object',
    required: ['message'],
    properties: {
      message: { type: 'string', description: 'The message text to send.' }
    }
  }
}

Verbatim: MCP Tool Description — stop_generation (from mcp-server.mjs)

{
  name: 'stop_generation',
  description:
    'Stop the AI generation currently in progress. Uses Language Server RPC and a ' +
    'direct DOM click on the cancel button for reliability.',
  inputSchema: { type: 'object', properties: {} }
}

Technique: Defense-in-depth description — explicitly documents that two mechanisms are used (Language Server RPC + DOM click) so the LLM understands reliability semantics.


Agent Integration Example (from README)

# 1. Start server, get token from QR URL
# 2. Use MCP:
curl -k https://localhost:3000/snapshot -H "Authorization: Bearer <token>"

The README's "For agent builders" section provides a minimal 3-step integration loop:

  1. Get snapshot → understand current state
  2. Send message or click control → drive action
  3. Poll isGenerating flag → wait for completion
09

Uniqueness

Antigravity Link — Uniqueness

Differs From Seeds

Antigravity Link fits none of the 11 seed archetypes precisely. It is not a methodology framework, not a skill pack, not a CLI tool, not a methodology document. Its closest structural analog is ccmemory (also a VS Code extension bridging an external service via MCP), but the purpose is entirely different: ccmemory adds persistent memory to Claude Code; antigravity-link adds mobile remote control to an IDE. The CDP-based approach (connecting to --remote-debugging-port) is unique in the corpus — no seed framework controls another AI tool via browser automation protocols.

Distinctive Opinion

The extension embodies a "glass box" philosophy: rather than requiring API access or official extension hooks (which Google hasn't provided), it uses the same Chrome DevTools Protocol that browser DevTools uses — publicly available, read-only-safe, and leaving no permanent footprint in Antigravity.

Positioning

  • A third-party community tool for a proprietary IDE — a category that exists only because Antigravity hasn't shipped an official mobile/API layer
  • Enables the "AI agent drives another AI agent" pattern via its MCP server
  • Comparable in spirit to cursor-bridge tools or Kiro companion tools

Observable Failure Modes

  • Fragile: CDP snapshots depend on Antigravity's DOM structure — Google IDE updates can break selectors without warning
  • Anti-pattern: "strictWorkbenchOnly: false" + "includeFallbackTargets: true" increases instability by targeting non-primary CDP targets
  • HTTPS self-signed cert: Mobile browsers warn users; requires manual trust-proceed on each new device/browser

Cross-References

  • Antigravity (Google) — the parent IDE this bridges
  • The MCP server pattern mirrors ccmemory's approach of exposing IDE capabilities via MCP tools
  • The CDP+extension pattern is directly comparable to Puppeteer/Playwright-based automation tools

Note on Scope

This is the only framework in batch-06 that is a third-party companion to another framework in the same batch (antigravity), creating an interesting cross-reference: the companion extension reveals more about Antigravity's architecture than Antigravity's own (unreachable) marketing site.

04

Workflow

Antigravity Link — Workflow

Human Mobile Monitoring Workflow

  1. Start Antigravity with --remote-debugging-port=9000
  2. In VS Code/Antigravity, run Antigravity Link: Start Server
  3. Run Antigravity Link: Show QR Code
  4. Scan QR code with phone
  5. Phone browser connects to https://<LAN-IP>:3000?token=<auth-token>
  6. Extension polls CDP every 3s for snapshot updates, streams to mobile via WebSocket
  7. User can read output, send messages, stop generation, upload files from phone

Agent Automation Workflow

  1. Start Antigravity with remote debug port
  2. Start extension server
  3. Copy token from QR URL (?token=...)
  4. Use REST API or MCP tools against https://localhost:3000
# Example REST call
curl -k https://localhost:3000/snapshot -H "Authorization: Bearer <token>"
# Example send message
curl -k -X POST https://localhost:3000/send \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"message": "Now implement the login form"}'

MCP Integration Workflow

{
  "antigravity-link": {
    "command": "node",
    "args": ["/path/to/mcp-server.mjs"],
    "env": {
      "AG_BRIDGE_URL": "https://localhost:3000",
      "AG_BRIDGE_TOKEN": "<token>"
    }
  }
}

Then any MCP client (Claude Desktop, Claude Code) can use get_snapshot, send_message, stop_generation etc. to programmatically drive Antigravity.

Snapshot Polling Loop

CDP connect → inject JS observer → snapshot every 3s → 
WebSocket broadcast to all connected mobile clients

Approval Gates

None — all actions are executed immediately. The token-based auth is the only gate (must have the QR token to connect).

06

Memory Context

Antigravity Link — Memory & Context

Memory Type

None — the extension is stateless. It bridges the current live state of an Antigravity session but does not persist any session history, conversation state, or context.

Snapshot State (Ephemeral)

The only "state" is the in-memory snapshot of the active Antigravity chat session:

  • html: Cleaned outerHTML of the chat surface
  • controlsHtml: Full document.body for diagnostics
  • controlsMeta: Available controls (mode, model, stop, task, walkthrough)
  • isGenerating: Boolean
  • css, backgroundColor, color, fontFamily, themeClass, colorScheme

This snapshot is polled every 3 seconds from CDP and held in memory. It is discarded on server restart.

Persistence

  • Token: Auth token stored in extension directory (survives restarts)
  • Settings: VS Code settings.json (port, autoStart, useHttps, etc.)
  • Uploads: Files uploaded via mobile are saved to uploads/ directory in the extension's workspace

Cross-Session Handoff

None — each server restart clears all state. There is no session history or transcript persistence.

Context for Agents

An AI agent using this extension should:

  1. Call get_snapshot to understand current state before taking action
  2. Check isGenerating flag to avoid sending messages during generation
  3. Use get_content tool to extract readable text from the HTML snapshot
07

Orchestration

Antigravity Link — Orchestration

Multi-Agent

No — the extension itself is not an agent and does not orchestrate agents. It is a bridge that enables external agents (or humans via mobile) to control a single Antigravity session.

Orchestration Pattern

None — the extension is a pass-through control plane, not an orchestrator.

Multi-Window Support

The extension supports multiple Antigravity windows by tracking each CDP target:

  • get_instances lists all running windows
  • switch_instance changes which window receives commands
  • This is human/agent-driven selection, not automated coordination

Execution Mode

Event-driven — the extension responds to incoming HTTP requests and WebSocket connections. No autonomous behavior.

Isolation

None — the extension runs in the VS Code process alongside Antigravity. No isolation from the host environment.

Use as Orchestration Enabler

When used with an external AI agent (e.g., Claude Desktop via MCP), the pattern becomes:

External AI Agent (Claude/GPT) 
  → MCP tools (get_snapshot, send_message, stop_generation)
  → antigravity-link bridge (localhost:3000)
  → CDP (localhost:9000)
  → Antigravity session

This enables an external AI to meta-orchestrate an Antigravity AI — essentially one AI driving another.

08

Ui Cli Surface

Antigravity Link — UI & CLI Surface

VS Code Extension Commands

  • 4 registered commands (see Components)
  • Activation: on VS Code startup or explicit command invocation

Mobile Web UI

  • Type: Static HTML/CSS/JS served from public/ directory
  • Access: Via QR code scan → phone browser
  • Port: 3000 (configurable)
  • Protocol: HTTPS (self-signed cert for mic access) or HTTP
  • Features:
    • Live streaming snapshot of Antigravity chat (polls every 3s)
    • Send messages input
    • Stop generation chip
    • File upload button
    • Voice-to-text input (requires HTTPS for mic permission)
    • Instance switcher (multiple Antigravity windows)
    • 16-language UI with auto-detection and RTL support
    • Dark/light theme following Antigravity's theme

HTTP REST API

  • Base URL: https://localhost:3000 (configurable port)
  • Auth: Bearer token in Authorization header
  • Spec: Full OpenAPI 3.1 spec in openapi.yaml
  • 11 endpoints: /ping, /snapshot, /instances, /instance, /send, /click, /stop, /upload, /task, /walkthrough, /plan

MCP Server

  • File: mcp-server.mjs (standalone ESM Node.js script)
  • Protocol: stdio (for MCP client integration)
  • Tools: 9 tools
  • Config example (claude_desktop_config.json):
    {
      "antigravity-link": {
        "command": "node",
        "args": ["<extension-dir>/mcp-server.mjs"],
        "env": {
          "AG_BRIDGE_URL": "https://localhost:3000",
          "AG_BRIDGE_TOKEN": "<token>"
        }
      }
    }
    

Observability

  • No dedicated logging panel
  • Extension activates with VS Code notification when server starts
  • QR code display in VS Code webview panel

Related frameworks

same archetype · same primary tool · same memory type

Goose (Block/AAIF) ★ 46k

General-purpose AI agent (not just code) with security-first tool inspection, recipe-based shareable configurations, and 15+ LLM…

Vibe Kanban ★ 27k

Eliminate the overhead of planning, switching between agent terminals, and reviewing diffs by providing a single web dashboard…

1Code ★ 5.5k

Cursor-like desktop experience for Claude Code and Codex with cloud background agents, event-driven automations, and a full…

Crystal (stravu) ★ 3.1k

Manage multiple parallel AI coding sessions in isolated git worktrees from a single desktop GUI.

Maestro (RunMaestro) ★ 3.0k

Orchestrate unlimited parallel AI agent sessions with a keyboard-first desktop app including Group Chat coordination and Auto Run…

AgentsMesh ★ 2.1k

Multi-tenant workforce platform that gives every team member a squad of AI coding agents coordinated through channels, pod…