Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>Antigravity Model BridgeNew to Visual Studio Code? Get it now.
Antigravity Model Bridge

Antigravity Model Bridge

lutfi

|
12 installs
| (1) | Free
Unofficial: use Gemini and Claude models from your Google Antigravity account inside native Copilot Chat.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Antigravity Model Bridge

A lightweight VS Code Language Model Provider for the Google Antigravity backend.

Install License: MIT

Pick Gemini 3.7 Flash, Gemini 3.1 Pro, Claude Sonnet 4.6, Claude Opus 4.6 or GPT-OSS 120B from the standard model picker and keep using native chat and Agent mode. Requests run on your Antigravity account rather than Copilot premium requests.

Unofficial. Not affiliated with, endorsed by, or supported by Google. This talks to undocumented v1internal endpoints, so it can break when Antigravity updates. Use a Google account you are willing to risk.

Highlights

  • Native integration — the models appear in the standard model picker, in Chat and Agent mode.
  • Automatic model discovery with a curated default, so the picker shows the newest generation of each line instead of every internal alias.
  • Full tool calling — built-in, extension and MCP tools are forwarded to the backend, with schemas rewritten to survive its strict validator.
  • Native reasoning display — the model's thinking appears in Copilot Chat's own collapsible block.
  • Multi-turn reasoning continuity — thought signatures are replayed so tool-using conversations survive past the first turn.
  • Separate quota buckets in the status bar: Gemini Pro, Gemini Flash, and Claude/GPT refill on different clocks.
  • Thinking Effort control in the picker, next to the model, offering only the tiers the backend can serve.
  • Multiple accounts, switched manually.

Tool execution, confirmation, workspace trust and permissions remain handled by VS Code.

Get started

  1. Install the extension.
  2. Run Antigravity: Sign in with Google from the Command Palette. A browser opens and the callback returns to http://localhost:51121/oauth-callback.
    • The port is not configurable — it is the redirect URI registered with the OAuth client, and Google rejects any other. If it is busy, close whatever holds it and retry.
  3. Open Chat and pick an Antigravity model from the model picker.

Credentials live in VS Code SecretStorage and refresh automatically, including refresh-token rotation. Signing out removes only this extension's copy.

Model selection

Discovery returns every model the backend can route to, including inline-autocomplete models (Tab_*), internal numeric aliases (Chat_20706), server-side routing aliases (*tiered*), image models, duplicate display names, and every past generation — 27 entries in practice.

The default latest narrows that to what Antigravity itself offers as a choice: every Gemini 3 generation of Flash and Pro, plus Claude and GPT-OSS. Older Gemini and Flash Lite are excluded — the backend can route to them, but Antigravity does not list them.

Set antigravity.modelSelection to all to see everything the backend can route to, or list ids in antigravity.hiddenModels to remove specific entries.

Effort tiers

Antigravity addresses each effort tier as its own model id, so discovery reports "Gemini 3.7 Flash (High)", "(Medium)" and "(Low)" as three separate models.

By default they are folded into one entry with a Thinking Effort control beside the model in the picker, the way Copilot's own models work. Only the tiers the backend actually routes are offered — Gemini 3.1 Pro shows High and Low but no Medium, because no such model id exists.

antigravity.reasoningEffort sets the starting value; whatever is chosen in the picker wins for that request. Set antigravity.effortSelection to tiers to go back to one picker row per tier.

Requirements

  • VS Code 1.108.0 or later
  • A Google account with Antigravity access (the free tier is enough)

Runs in the local UI extension host so it can reach the loopback OAuth port. With Remote-SSH, keep the extension installed locally rather than installing a second copy on the remote host.

Common commands

  • Antigravity: Manage — accounts, quota, logs and settings in one place
  • Antigravity: Sign in with Google
  • Antigravity: Show Auth Status
  • Antigravity: Refresh Models and Quota
  • Antigravity: Open Logs

Diagnostics and privacy

Structured logging follows VS Code's log level, adjustable through Developer: Set Log Level…. Every request, auth flow and discovery call carries an operationId so retries and endpoint fallbacks can be traced.

Logs exclude prompts, reasoning, tool arguments and results, credentials and tokens — keeping only counts, sizes, transport decisions and redacted error text.

Configuration

Under Settings → Extensions → Antigravity:

  • antigravity.modelSelection — latest (default) or all
  • antigravity.effortSelection — setting (default) or tiers, see above
  • antigravity.hiddenModels — model ids to omit from the picker
  • antigravity.reasoningEffort — starting value for the picker's Thinking Effort control
  • antigravity.showThinking — show the model's reasoning (on by default)
  • antigravity.projectId — override project discovery, if you see 403s naming a project
  • antigravity.endpoint — pin generation traffic to one gateway host
  • antigravity.showStatusBar — show remaining quota

Proxies come from http.proxy or HTTPS_PROXY/HTTP_PROXY, with NO_PROXY respected.

Reasoning

Reasoning is shown by default, rendered as Copilot Chat's own collapsible Thinking… block. LanguageModelThinkingPart is present in the VS Code runtime but absent from @types/vscode, so it is feature-detected: builds that lack it fall back to a markdown blockquote above the answer. Turn it off with antigravity.showThinking.

Not every model returns its reasoning. Gemini Pro and Claude send thought text and get a block; Gemini Flash reports thought tokens in usage but sends no thought parts, so nothing renders even though it is thinking. The log distinguishes the two — thoughtTokens>0 with thoughtParts=0 means the gateway withheld the text, which is a backend behaviour rather than a fault in this extension.

Develop locally

npm install
cp src/api/credentials.example.ts src/api/credentials.ts   # then fill in the values
npm run check          # typecheck + tests + bundle
npm run package:vsix

Press F5 for an Extension Development Host.

The OAuth client credentials are deliberately not in this repository — see src/api/credentials.example.ts for what to put there and where it comes from. The build refuses to run without it rather than producing an extension that cannot authenticate.

How it works

The gateway speaks a Gemini dialect for every model family, Claude included; Anthropic-style messages arrays are rejected outright. Most of the work lives in src/translate/:

  • schema.ts — the backend validates tool schemas with protobuf JSON, which hard-fails on any unrecognised key. Since VS Code and MCP servers emit their own annotations (enumDescriptions, markdownDescription, …), schemas pass through an allowlist of the fields the Schema proto defines rather than a denylist of known-bad ones.
  • toGemini.ts — a functionResponse is paired to its call by name, not by id, so the message walk records callId → toolName on the way past the call.
  • thinking.ts — Gemini selects effort from the tier baked into the model id; only Claude takes a numeric budget, capped strictly below maxOutputTokens.
  • api/agent-metadata.ts — requests carry the agent envelope: requestType, a five-segment requestId, telemetry labels and an FNV-1a session id, in the field order the real client uses.

License

MIT. Antigravity, Gemini and Google Cloud are trademarks of Google LLC.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft