Antigravity (Google One AI) — Onboarding with OmniRoute
OmniRoute Antigravity (Google One AI) Onboarding Guide
Section titled “OmniRoute Antigravity (Google One AI) Onboarding Guide”What you get: Access to Gemini 3.1 Pro, Gemini 3.7 Flash, Claude Sonnet 4.6, and other models through your Google One AI Pro subscription — routed through OmniRoute as a unified gateway.
Official references:
- Google Antigravity — product homepage
- Antigravity Plans & Pricing — subscription tiers
- Antigravity Docs: Plans — baseline quota details
- Google One AI Plans — Google One subscription comparison
- Antigravity CLI Blog — CLI announcement
1. Antigravity vs Antigravity CLI (agy)
Section titled “1. Antigravity vs Antigravity CLI (agy)”Both providers share the same Google backend — identical OAuth client, token refresh, endpoints, and Google accounts. The difference is what models you see.
See Antigravity CLI announcement for Google’s official comparison.
| Aspect | antigravity (IDE) |
agy (CLI) |
|---|---|---|
| Google product | Antigravity 2.0 / Antigravity IDE | Antigravity CLI |
| Backend | Same Google Cloud Code API | Same Google Cloud Code API |
| OAuth / Token | Same client, same refresh | Same client, same refresh |
| Model catalog | Static curated list (OmniRoute hardcoded) | Live-probed from Google via :fetchAvailableModels |
| Claude models | Sonnet 4.6, Opus 4.6 (4 variants each) | Sonnet 4.6, Opus 4.6 (4 variants each) |
| Gemini naming | Clean labels (Low/Medium/High) | Upstream IDs (extra-low/low/agent) |
| Extra models | gpt-oss-120b-medium |
May include additional models from Google |
| Default use case | IDE integration (VS Code, JetBrains) | CLI / API access |
| Quota | Shared with agy (same Google account) | Shared with antigravity (same Google account) |
Available models (verified via experiment, 2026-07-29):
- Gemini: 3.6 Flash, 3.5 Flash, 3.1 Pro, 3 Flash, 2.5 Flash (various thinking levels)
- Claude: Sonnet 4.6, Opus 4.6 (each with default/low/medium/high variants)
- Other: GPT-OSS 120B Medium
- Claude Sonnet 5 is NOT available — only 4.6 variants are supported
Why the model catalog differs: Google’s CLI is “optimized for speed and low overhead” and “co-optimized with Gemini models” (per Google’s official blog). The Web/IDE product is “optimized for comprehensiveness.” The CLI uses :fetchAvailableModels to dynamically discover models, while the IDE uses a static curated list.
In practice: Use agy/ prefix for Gemini models (e.g. agy/gemini-3.7-flash-high). Use antigravity/ for the static curated list. Both hit the same Google backend, but expose different model naming. The quota is shared — using either provider counts against the same Google account’s limits.
2. Google One AI Pro: Quota System
Section titled “2. Google One AI Pro: Quota System”See Antigravity Docs: Plans for official quota details and Changes to Antigravity Plans for the latest pricing updates.
Google Antigravity uses a dual-layer quota based on “Work Done” (computational weight), not message count.
The Two Layers
Section titled “The Two Layers”| Layer | What it is | Refresh cycle |
|---|---|---|
| 5-hour sprint | Immediate pool of “work done” | Resets 5 hours after first request in a session |
| 7-day baseline | Weekly hard cap | Overrides 5-hour refresh if hit; locks out until next 7-day period |
How “Work Done” is calculated: Agent-heavy tasks (e.g. “Refactor this entire repository”) drain quota much faster than simple tasks (e.g. “Fix this function”). There is no real-time dashboard showing consumption.
Plan Tiers
Section titled “Plan Tiers”| Plan | Price | Quota | Weekly limit |
|---|---|---|---|
| Free | $0 | Meaningful quota, refreshed weekly | Yes |
| AI Pro | $19.99/mo | High quota, 5-hour rolling refresh | Yes (overrides 5-hour if hit) |
| AI Ultra 5x | $99.99/mo | 5x Pro quota | No weekly limit |
| AI Ultra 20x | $199.99/mo | 20x Pro quota | No weekly limit |
Gemini vs Non-Gemini Models
Section titled “Gemini vs Non-Gemini Models”- Gemini models (Flash + Pro): Share a single rate limit, drawn down by API pricing. If Flash is 8x cheaper than Pro, you get 8x more Flash tokens.
- Non-Gemini models (Claude, GPT-OSS): Have separate rate limits. May remain available even when Gemini is locked out.
AI Credits (Overage)
Section titled “AI Credits (Overage)”See Google One AI credits for how credits work.
When baseline quota is exhausted:
- Never: Wait for quota to refresh; shows “Baseline model quota reached”
- Always: Auto-use AI credits; switches back to baseline when it refreshes
Credits are purchased separately and deducted at standard API pricing.
Key Details
Section titled “Key Details”- Quota is account-level shared — the same Google account in Antigravity IDE, CLI, and OmniRoute shares one quota pool
- Each Google account has its own independent quota — multiple accounts = multiple quota pools
- AI Pro users have reported 7-day lockouts instead of 5-hour resets when weekly baseline is hit (Google confirmed this is by design for high demand)
When your account is exhausted: OmniRoute automatically retries with the next available account in the combo route. No manual intervention needed.
3. How to Get a projectId
Section titled “3. How to Get a projectId”Every antigravity/agy connection needs a Google Cloud Code projectId. Without it, the /v1internal:models endpoint returns 404.
Method A: Automatic (Recommended)
Section titled “Method A: Automatic (Recommended)”OmniRoute handles this automatically. When you add a new Google account via Dashboard OAuth:
- OmniRoute refreshes the token
- Calls
loadCodeAssistto discover the projectId - If no project exists, calls
onboardUserto create one - Retries
loadCodeAssistto get the newly created projectId - Saves it to the database
This works for most accounts — no manual steps needed.
Method B: Manual via agy CLI
Section titled “Method B: Manual via agy CLI”If automatic discovery fails (see Section 5 for when this happens):
# Install agy CLI (if not already)npm install -g @anthropic-ai/agy
# Login with your Google accountagy login
# Select the account that needs onboarding# This triggers Cloud Code registration and assigns a projectIdAfter agy login succeeds, refresh the token in OmniRoute Dashboard. The projectId will be discovered automatically.
How to verify
Section titled “How to verify”Check the database:
# Inside OmniRoute containernode -e "const db=require('better-sqlite3')('/app/data/storage.sqlite'); \ console.log(JSON.stringify(db.prepare(\ 'SELECT email,project_id FROM provider_connections WHERE provider=\"agy\"'\ ).all(), null, 2))"Or check the logs:
podman logs omniroute 2>&1 | grep "projectId discovered"4. OAuth Redirect URI
Section titled “4. OAuth Redirect URI”The Problem
Section titled “The Problem”Google OAuth requires a valid redirect URI. OmniRoute’s default uses http://127.0.0.1:20128/callback (loopback). This works for local builds but fails for remote deployments (e.g., a server accessed via LAN IP).
Google rejects redirect URIs that:
- Use IP addresses (must be a domain ending in
.com,.org, etc.) - Don’t match the registered redirect URIs in the OAuth client config
The Solution
Section titled “The Solution”Option A: Use the built-in OAuth flow (default)
- Works when you access OmniRoute from
localhostor127.0.0.1 - No configuration needed
Option B: Custom OAuth credentials
- Set
ANTIGRAVITY_OAUTH_CLIENT_TYPE=webin your environment - Provide your own Google OAuth credentials:
GOOGLE_OAUTH_CLIENT_ID=your-client-idGOOGLE_OAUTH_CLIENT_SECRET=your-client-secret
- Register
https://your-domain.com/callbackas an authorized redirect URI in Google Cloud Console
Option C: Use agy CLI for initial login
- Run
agy loginon the machine that will access OmniRoute - The OAuth flow completes locally, tokens are stored
- Import the connection into OmniRoute via Dashboard
Limitations
Section titled “Limitations”- Custom OAuth credentials require a domain name (Google does not accept IP addresses as redirect URIs)
- If you don’t have a domain, use Option A or C instead
5. Troubleshooting: When Automatic Setup Fails
Section titled “5. Troubleshooting: When Automatic Setup Fails”OmniRoute handles projectId discovery and onboarding automatically for most accounts. When it fails, the root cause is usually one of these:
Account region is blocked
Section titled “Account region is blocked”Symptom: agy login returns “Eligibility check failed: Your current account is not eligible for Antigravity, because it is not currently available in your location.”
Root cause: Google accounts have a backend “Country Association” field set at registration time. The agy CLI and Cloud Code API check this field strictly — unlike web Gemini which only checks your current IP.
To check or change your account’s associated region, visit Google Country Association Form.
Why web Gemini works but agy doesn’t:
- Web Gemini / Google One: checks current IP only (proxy passes)
- agy CLI / Cloud Code API: reads backend Country Association field (proxy doesn’t help)
Fix:
- Visit Google Country Association Form while on a US IP
- Submit region change request (select “I live in a different country”)
- Wait 1-24 hours for Google to process + email notification
- Then
agy loginshould succeed
Account has no Cloud Code project
Section titled “Account has no Cloud Code project”Symptom: Logs show loadCodeAssist returned no project id and onboardUser failed (400).
Root cause: The account has never been registered with Google Cloud Code, and the automatic onboarding failed.
Fix: Run agy login manually to trigger Cloud Code registration, then refresh the token in OmniRoute Dashboard.
Token expired or revoked
Section titled “Token expired or revoked”Symptom: 401 errors in logs, or “Token has expired” messages.
Fix: Refresh the token in Dashboard → Providers → agy → Click refresh icon. If the refresh token itself is revoked, you’ll need to re-authenticate via OAuth.
Decision Flowchart
Section titled “Decision Flowchart”Account not working?│├─ Does it have a projectId in the database?│ ├─ YES → Problem is elsewhere (token expired, rate limit, etc.)│ └─ NO ↓│├─ Is the account's Country Association set to a restricted region?│ ├─ YES → Change region at Google Country Association Form│ │ (https://policies.google.com/country-association-form)│ │ Wait 1-24 hours, then retry│ └─ NO ↓│├─ Does the account have Google One AI Pro subscription?│ ├─ NO → Subscribe first at one.google.com│ └─ YES ↓│├─ Try automatic discovery (refresh token in Dashboard)│ ├─ Works → Done│ └─ Still fails ↓│└─ Manual: Run `agy login` on the machine ├─ Works → Refresh token in Dashboard, projectId discovered └─ Fails → Check error message, likely region or subscription issueQuick Reference
Section titled “Quick Reference”| Task | Command / URL |
|---|---|
| Change account region | Google Country Association Form |
| agy CLI login | agy login |
| Check projectId in DB | SELECT email,project_id FROM provider_connections WHERE provider='agy' |
| Check logs | podman logs omniroute 2>&1 | grep projectId |
| Refresh token | Dashboard → Providers → agy → Click refresh icon |
Last updated: 2026-07-31. Based on OmniRoute v3.8.50.
HagiCode
HagiCode is an agentic coding workspace: structured workflows, multi-agent execution, and Hero Dungeon views turn ideas into shipped software.
Turn ideas into polished, usable software with a smarter, faster, and more enjoyable agentic coding workflow.

- SmartStructured workflows turn intent into an executable path from idea to shipped change.
- EfficientMulti-agent workflows keep research, implementation, and review moving in parallel.
- FunHero Dungeon interfaces make long coding sessions visual, collaborative, and rewarding.