Antigravity 2.0 is Google’s agentic coding IDE. It gives AI agents filesystem access, MCP tools, subagent orchestration, and browser automation. It’s powerful — but locked to Gemini.
I wanted to use other models. So I built a proxy.
The problem
Antigravity sends massive inline context with every request: 30+ skill descriptions, full plugin lists, user rules, agent frameworks — around 4000 tokens of boilerplate. External models can’t parse this effectively. And Antigravity Desktop requires specific response metadata (safetyRatings, index: 0, groundingMetadata) that OpenAI-format APIs don’t provide.
The solution
A TypeScript TLS proxy (~400 lines) that sits between Antigravity and your model provider:
Antigravity → Proxy (443) → OpenAI API → NVIDIA / OpenRouter
Key features
Context stripping: Removes the ~4000 tokens of inline skills/plugins/rules and injects a compact reference to agent-context.md (a ~150-line runtime definition file)
Bidirectional translation: Converts Google-format messages, tools, and streaming to OpenAI-format and back
Desktop metadata: Adds safetyRatings, groundingMetadata, and index: 0 to every response — without these, Antigravity Desktop silently crashes
429 retry: Exponential backoff (1s → 2s → 4s → 8s) for rate limits
Arg sanitization: Strips Antigravity’s internal metadata fields (toolAction, toolSummary) from tool call arguments
What works
Everything except audio and background project sync. Chat, code gen, file operations (view_file, write_to_file, list_dir, grep_search, run_command), browser automation (Chrome DevTools MCP — open browser, screenshot, console check, JS evaluation), image generation, subagent orchestration, streaming, thinking/reasoning.
The test
I asked the agent to build a landing page for Antigravity 2.0. It:
Read agent-context.md to understand the runtime
Created index.html, styles.css, and script.js with a particle system, terminal animation, and interactive UI
Opened the page in Chrome via the browser MCP tool
Took a full-page screenshot
Checked browser console for errors
Evaluated JavaScript to verify animations and counters were running
Reported results with visual feedback
All through step-3.7-flash on NVIDIA NIM. Not a single Google API call.
Setup
git clone https://github.com/12errh/antigravity-proxy
cd antigravity-proxy
.\setup.ps1
Pick NVIDIA or OpenRouter, paste your API key. The script handles admin elevation, dependencies, TLS certificates, and proxy startup.
To change models, edit proxy/models.json:
{
"claude-sonnet-4-6-thinking": "deepseek-ai/deepseek-v4-flash",
"default": "deepseek-ai/deepseek-v4-flash"
}
Supported providers
Provider
Models
NVIDIA NIM
deepseek-ai/deepseek-v4-flash, stepfun-ai/step-3.7-flash
OpenRouter
Any OpenAI-compatible model
Limitations
Audio: Not mapped yet
Background project sync: Language Server init calls to Google need a Gemini key (sidebar file tree, etc.)
Everything else works transparently.
Try it
https://github.com/12errh/antigravity-proxy
MIT license. Contributions welcome.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)