Exposes your running Antigravity instance as a local OpenAI-compatible API on localhost:11435.
Use your Antigravity subscription with any tool that speaks OpenAI — opencode, aider, continue.dev, or plain curl.
Your tool → HTTP :11435 → VS Code extension → Antigravity sidecar (ConnectRPC) → Cloud AI
The extension runs inside Antigravity's VS Code process, discovers the sidecar via process inspection, intercepts CSRF tokens from Antigravity's own traffic, and proxies your requests through the same authenticated channel Antigravity uses internally.
- Multi-Protocol API — drop-in compatible with OpenAI (
/v1/chat/completions), Anthropic (/v1/messages), and Gemini (/v1beta/models/...) - 3-Way Streaming Strategy — configurable
smart(instant low-TTFB pseudo-streaming for chat + raw for tools),raw(pure LLM completions & swarm), orcascade - Multi-Sidecar Swarm — automatic round-robin load balancing and quota pooling across multiple Google accounts
- Multimedia Input Support — images, audio, video, and files forwarded through Antigravity's media channels
- Function Calling & Tools — full support for client-side tool calling and structured outputs
- Workspace-Aware — automatically detects and applies workspace context via
x-workspace-dir/x-workspace-uriheaders
| Model ID | Description |
|---|---|
antigravity-claude-sonnet-4-6 |
Claude Sonnet 4.6 with Thinking (default) |
antigravity-claude-opus-4-6-thinking |
Claude Opus 4.6 with Thinking |
antigravity-claude-opus-5-5-high |
Claude Opus 5.5 — High thinking |
antigravity-claude-opus-5-5-medium |
Claude Opus 5.5 — Medium thinking |
antigravity-claude-opus-5-5-low |
Claude Opus 5.5 — Low thinking |
antigravity-claude-sonnet-5-5-high |
Claude Sonnet 5.5 — High thinking |
antigravity-claude-sonnet-5-5-medium |
Claude Sonnet 5.5 — Medium thinking |
antigravity-claude-sonnet-5-5-low |
Claude Sonnet 5.5 — Low thinking |
antigravity-gemini-4-argon-high |
Gemini 4 Argon — High thinking |
antigravity-gemini-4-argon-medium |
Gemini 4 Argon — Medium thinking |
antigravity-gemini-4-argon-low |
Gemini 4 Argon — Low thinking |
antigravity-gemini-4-hydrogen-xhigh |
Gemini 4 Hydrogen — XHigh thinking |
antigravity-gemini-4-hydrogen-high |
Gemini 4 Hydrogen — High thinking |
antigravity-gemini-4-hydrogen-medium |
Gemini 4 Hydrogen — Medium thinking |
antigravity-gemini-4-hydrogen-low |
Gemini 4 Hydrogen — Low thinking |
antigravity-gemini-4-carbon-high |
Gemini 4 Carbon — High thinking |
antigravity-gemini-4-carbon-medium |
Gemini 4 Carbon — Medium thinking |
antigravity-gemini-4-carbon-low |
Gemini 4 Carbon — Low thinking |
antigravity-gemini-4-carbon |
Gemini 4 Carbon |
antigravity-gemini-pro-orchestrator-g1-pro |
Orchestrator (Argon) |
antigravity-gemini-3.8-flash-high |
Gemini 3.8 Flash — High thinking |
antigravity-gemini-3.8-flash-medium |
Gemini 3.8 Flash — Medium thinking |
antigravity-gemini-3.8-flash-low |
Gemini 3.8 Flash — Low thinking |
antigravity-gemini-3.7-flash-high |
Gemini 3.7 Flash — High thinking |
antigravity-gemini-3.7-flash-medium |
Gemini 3.7 Flash — Medium thinking |
antigravity-gemini-3.7-flash-low |
Gemini 3.7 Flash — Low thinking |
antigravity-gemini-3.6-flash-high |
Gemini 3.6 Flash — High thinking |
antigravity-gemini-3.6-flash-medium |
Gemini 3.6 Flash — Medium thinking |
antigravity-gemini-3.6-flash-low |
Gemini 3.6 Flash — Low thinking |
antigravity-gemini-3.5-flash |
Gemini 3.5 Flash — High thinking |
antigravity-gemini-3.5-flash-medium |
Gemini 3.5 Flash — Medium thinking |
antigravity-gemini-3.5-flash-low |
Gemini 3.5 Flash — Low thinking |
antigravity-gemini-3-flash |
Gemini 3 Flash |
antigravity-gemini-3.1-pro-high |
Gemini 3.1 Pro — High thinking |
antigravity-gemini-3.1-pro-low |
Gemini 3.1 Pro — Low thinking |
antigravity-gpt-oss-120b |
GPT-OSS 120B Medium |
Short aliases: All models can also be referenced with intuitive short names like
gemini-3.8,gemini-3.8-flash,gemini-3.7,gemini-3.7-flash,gemini-3.6-flash,gemini-3.5-flash,gemini-3.1-pro,claude-sonnet-4-6,claude-opus-4-6-thinking, etc.
- Open Antigravity
- Go to Extensions (
Ctrl+Shift+X) - Search for "AG Local Bridge" by marcodiniz
- Click Install
- Reload Antigravity (
Ctrl+Shift+P→ Developer: Reload Window)
-
Clone into your Antigravity extensions directory:
# Windows git clone https://github.com/marcodiniz/ag-local-bridge "%USERPROFILE%\.antigravity\extensions\ag-local-bridge-1.0.0-universal" # macOS / Linux git clone https://github.com/marcodiniz/ag-local-bridge ~/.antigravity/extensions/ag-local-bridge-1.0.0-universal
-
Reload Antigravity (
Ctrl+Shift+P→ Developer: Reload Window)
Look for "AG Local Bridge" in the Output panel — you should see:
✅ Server running on http://localhost:11435
Add to ~/.config/opencode/opencode.json:
{
"provider": {
"ag-local-bridge": {
"npm": "@ai-sdk/openai-compatible",
"name": "AG Local Bridge",
"options": {
"baseURL": "http://localhost:11435/v1",
"apiKey": "local"
},
"models": {
"antigravity-claude-sonnet-4-6": {
"name": "Claude Sonnet 4.6 (Antigravity)",
"modalities": { "input": ["text", "image", "audio", "video", "file"], "output": ["text"] },
"limit": { "context": 200000, "output": 64000 }
},
"antigravity-claude-opus-4-6-thinking": {
"name": "Claude Opus 4.6 Thinking (Antigravity)",
"modalities": { "input": ["text", "image", "audio", "video", "file"], "output": ["text"] },
"limit": { "context": 200000, "output": 64000 }
},
"antigravity-gemini-3.1-pro-high": {
"name": "Gemini 3.1 Pro High (Antigravity)",
"modalities": { "input": ["text", "image", "audio", "video", "file"], "output": ["text"] },
"limit": { "context": 1048576, "output": 65535 }
},
"antigravity-gemini-3.1-pro-low": {
"name": "Gemini 3.1 Pro Low (Antigravity)",
"modalities": { "input": ["text", "image", "audio", "video", "file"], "output": ["text"] },
"limit": { "context": 1048576, "output": 65535 }
},
"antigravity-gemini-3-flash": {
"name": "Gemini 3 Flash (Antigravity)",
"modalities": { "input": ["text", "image", "audio", "video", "file"], "output": ["text"] },
"limit": { "context": 1048576, "output": 65536 }
},
"antigravity-gpt-oss-120b": {
"name": "GPT-OSS 120B Medium (Antigravity)",
"modalities": { "input": ["text", "image", "audio", "video", "file"], "output": ["text"] },
"limit": { "context": 128000, "output": 16384 }
}
}
}
}
}Then select ag-local-bridge/antigravity-claude-sonnet-4-6 as your model.
Media support: The
modalitiesfield enables image/audio/video/file input in clients that expose those attachments. Text-only requests use the faster raw inference path; requests with media use the Antigravity Cascade media channel.
# List models
curl http://localhost:11435/v1/models
# Chat completion
curl http://localhost:11435/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "antigravity-claude-sonnet-4-6",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": false
}'
# Streaming
curl http://localhost:11435/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "antigravity-gemini-3.1-pro-high",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'
# With image (base64 data URL)
curl http://localhost:11435/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "antigravity-claude-sonnet-4-6",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "What do you see?"},
{"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBOR..."}}
]}],
"stream": false
}'
# Responses API
curl http://localhost:11435/v1/responses \
-H "Content-Type: application/json" \
-d '{
"model": "antigravity-claude-sonnet-4-6",
"input": "Hello from the Responses API"
}'Base URL: http://localhost:11435/v1
API Key: anything (not validated)
| Method | Path | Description |
|---|---|---|
GET |
/v1/models |
List available models in OpenAI format |
POST |
/v1/chat/completions |
Chat completion (streaming & non-streaming) |
POST |
/v1/responses |
OpenAI Responses API adapter |
| Method | Path | Description |
|---|---|---|
POST |
/v1/messages |
Anthropic Messages API (streaming & tools) |
POST |
/v1/messages/count_tokens |
Preflight token count mock (for Claude CLI) |
| Method | Path | Description |
|---|---|---|
GET |
/v1beta/models |
List models in Gemini format |
POST |
/v1beta/models/:model:generateContent |
Gemini Native generateContent |
POST |
/v1beta/models/:model:streamGenerateContent |
Gemini Native streaming endpoint |
| Method | Path | Description |
|---|---|---|
POST |
/v1/proxy |
Forward arbitrary RPC to sidecar |
GET |
/v1/debug |
Debug info (sidecar ports, CSRF, captures) |
Media sent via OpenAI chat content parts or Responses input items is handled as follows:
- Base64 data URLs (
data:image/png;base64,...,data:audio/wav;base64,..., etc.) — decoded and forwarded inline - Remote URLs (
https://...) — downloaded, then forwarded inline - File URIs (
file:///C:/path/to/media.mp4) — read directly from disk - Responses items (
input_image,input_audio,input_file) — converted to the same media channel
The sidecar ultimately decides which model/media combinations are accepted. Unsupported media types will surface as upstream provider errors.
Pass workspace context via HTTP headers:
| Header | Description |
|---|---|
x-workspace-dir |
Absolute filesystem path (e.g. C:\code\myproject) |
x-workspace-uri |
File URI (e.g. file:///C:/code/myproject) |
When set, the bridge switches the active VS Code workspace folder before creating a Cascade, ensuring the agent operates in the correct project context.
The extension uses a 2-tier fallback strategy:
-
Tier 1 — Sidecar ConnectRPC (preferred): Discovers the Antigravity sidecar process, connects via HTTP/2 with CSRF authentication, and uses the Cascade API (
StartCascade→SendUserCascadeMessage→ pollGetCascadeTrajectory). Conversations are multiplexed and the active workspace is auto-detected. -
Tier 2 — Command Dispatch: Last resort — fires the message through
antigravity.executeCascadeAction.
| Command | Description |
|---|---|
AG Local Bridge: Start Server |
Start the HTTP server |
AG Local Bridge: Stop Server |
Stop the HTTP server |
AG Local Bridge: Show Status |
Display connection status |
AG Local Bridge: Probe Sidecar |
Test sidecar connectivity |
AG Local Bridge: List Available LM Models |
List configured models and sidecar status |
AG Local Bridge: List Available Chat Commands (Debug) |
List chat commands available for debugging |
| Setting | Default | Description |
|---|---|---|
agLocalBridge.port |
11435 |
HTTP server port |
agLocalBridge.logRequests |
false |
Log request/response details |
agLocalBridge.streamingMode |
"smart" |
Streaming strategy: 'smart' (low-TTFB Cascade pseudo-streaming for chat, Raw for tools), 'raw' (strictly GetModelResponse unary inference), or 'cascade' (forced trajectory delta streaming) |
- Antigravity installed and running
- Active Antigravity subscription (Free/Pro/Teams/Enterprise)
We use a beta → master release flow:
| Branch | Role | Publishes as |
|---|---|---|
beta |
Default / development | Pre-release |
master |
Stable releases only | Stable |
- Fork & branch off
beta(the default branch). - Open your PR against
beta— GitHub will target it automatically. - Once merged, a pre-release is published to Open VSX for beta testers.
- When a beta build is ready for general availability, the maintainer merges
beta → masterto cut a stable release.
Note:
masteris protected — direct pushes are not allowed. All changes flow throughbetafirst.
MIT