npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

antigravity-claude-proxy

v1.2.10

Published

Proxy server to use Antigravity's Claude models with Claude Code CLI

Readme

Antigravity Claude Proxy

npm version npm downloads License: MIT

A proxy server that exposes an Anthropic-compatible API backed by Antigravity's Cloud Code, letting you use Claude and Gemini models with Claude Code CLI.

Antigravity Claude Proxy Banner

How It Works

┌──────────────────┐     ┌─────────────────────┐     ┌────────────────────────────┐
│   Claude Code    │────▶│  This Proxy Server  │────▶│  Antigravity Cloud Code    │
│   (Anthropic     │     │  (Anthropic → Google│     │  (daily-cloudcode-pa.      │
│    API format)   │     │   Generative AI)    │     │   sandbox.googleapis.com)  │
└──────────────────┘     └─────────────────────┘     └────────────────────────────┘
  1. Receives requests in Anthropic Messages API format
  2. Uses OAuth tokens from added Google accounts (or Antigravity's local database)
  3. Transforms to Google Generative AI format with Cloud Code wrapping
  4. Sends to Antigravity's Cloud Code API
  5. Converts responses back to Anthropic format with full thinking/streaming support

Prerequisites

  • Node.js 18 or later
  • Antigravity installed (for single-account mode) OR Google account(s) for multi-account mode

Installation

Option 1: npm (Recommended)

# Run directly with npx (no install needed)
npx antigravity-claude-proxy start

# Or install globally
npm install -g antigravity-claude-proxy
antigravity-claude-proxy start

Option 2: Clone Repository

git clone https://github.com/badri-s2001/antigravity-claude-proxy.git
cd antigravity-claude-proxy
npm install
npm start

Quick Start

1. Add Account(s)

You have two options:

Option A: Use Antigravity (Single Account)

If you have Antigravity installed and logged in, the proxy will automatically extract your token. No additional setup needed.

Option B: Add Google Accounts via OAuth (Recommended for Multi-Account)

Add one or more Google accounts for load balancing.

Desktop/Laptop (with browser)

# If installed via npm
antigravity-claude-proxy accounts add

# If using npx
npx antigravity-claude-proxy accounts add

# If cloned locally
npm run accounts:add

This opens your browser for Google OAuth. Sign in and authorize access. Repeat for multiple accounts.

Headless Server (Docker, SSH, no desktop)

# If installed via npm
antigravity-claude-proxy accounts add --no-browser

# If using npx
npx antigravity-claude-proxy accounts add -- --no-browser

# If cloned locally
npm run accounts:add -- --no-browser

This displays an OAuth URL you can open on another device (phone/laptop). After signing in, copy the redirect URL or authorization code and paste it back into the terminal.

Manage accounts

# List all accounts
antigravity-claude-proxy accounts list

# Verify accounts are working
antigravity-claude-proxy accounts verify

# Interactive account management
antigravity-claude-proxy accounts

2. Start the Proxy Server

# If installed via npm
antigravity-claude-proxy start

# If using npx
npx antigravity-claude-proxy start

# If cloned locally
npm start

The server runs on http://localhost:8080 by default.

3. Verify It's Working

# Health check
curl http://localhost:8080/health

# Check account status and quota limits
curl "http://localhost:8080/account-limits?format=table"

Using with Claude Code CLI

Configure Claude Code

Create or edit the Claude Code settings file:

macOS: ~/.claude/settings.json Linux: ~/.claude/settings.json Windows: %USERPROFILE%\.claude\settings.json

Add this configuration:

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "test",
    "ANTHROPIC_BASE_URL": "http://localhost:8080",
    "ANTHROPIC_MODEL": "claude-opus-4-5-thinking",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-5-thinking",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5-thinking",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-sonnet-4-5",
    "CLAUDE_CODE_SUBAGENT_MODEL": "claude-sonnet-4-5-thinking"
  }
}

Or to use Gemini models:

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "test",
    "ANTHROPIC_BASE_URL": "http://localhost:8080",
    "ANTHROPIC_MODEL": "gemini-3-pro-high",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "gemini-3-pro-high",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "gemini-3-flash",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "gemini-2.5-flash-lite",
    "CLAUDE_CODE_SUBAGENT_MODEL": "gemini-3-flash"
  }
}

Load Environment Variables

Add the proxy settings to your shell profile:

macOS / Linux:

echo 'export ANTHROPIC_BASE_URL="http://localhost:8080"' >> ~/.zshrc
echo 'export ANTHROPIC_API_KEY="test"' >> ~/.zshrc
source ~/.zshrc

For Bash users, replace ~/.zshrc with ~/.bashrc

Windows (PowerShell):

Add-Content $PROFILE "`n`$env:ANTHROPIC_BASE_URL = 'http://localhost:8080'"
Add-Content $PROFILE "`$env:ANTHROPIC_API_KEY = 'test'"
. $PROFILE

Windows (Command Prompt):

setx ANTHROPIC_BASE_URL "http://localhost:8080"
setx ANTHROPIC_API_KEY "test"

Restart your terminal for changes to take effect.

Run Claude Code

# Make sure the proxy is running first
antigravity-claude-proxy start

# In another terminal, run Claude Code
claude

Note: If Claude Code asks you to select a login method, add "hasCompletedOnboarding": true to ~/.claude.json (macOS/Linux) or %USERPROFILE%\.claude.json (Windows), then restart your terminal and try again.


Available Models

Claude Models

| Model ID | Description | |----------|-------------| | claude-sonnet-4-5-thinking | Claude Sonnet 4.5 with extended thinking | | claude-opus-4-5-thinking | Claude Opus 4.5 with extended thinking | | claude-sonnet-4-5 | Claude Sonnet 4.5 without thinking |

Gemini Models

| Model ID | Description | |----------|-------------| | gemini-3-flash | Gemini 3 Flash with thinking | | gemini-3-pro-low | Gemini 3 Pro Low with thinking | | gemini-3-pro-high | Gemini 3 Pro High with thinking |

Gemini models include full thinking support with thoughtSignature handling for multi-turn conversations.


Multi-Account Load Balancing

When you add multiple accounts, the proxy automatically:

  • Sticky account selection: Stays on the same account to maximize prompt cache hits
  • Smart rate limit handling: Waits for short rate limits (≤2 min), switches accounts for longer ones
  • Automatic cooldown: Rate-limited accounts become available after reset time expires
  • Invalid account detection: Accounts needing re-authentication are marked and skipped
  • Prompt caching support: Stable session IDs enable cache hits across conversation turns

Check account status anytime:

curl "http://localhost:8080/account-limits?format=table"

API Endpoints

| Endpoint | Method | Description | |----------|--------|-------------| | /health | GET | Health check | | /account-limits | GET | Account status and quota limits (add ?format=table for ASCII table) | | /v1/messages | POST | Anthropic Messages API | | /v1/models | GET | List available models | | /refresh-token | POST | Force token refresh |


Testing

Run the test suite (requires server running):

# Start server in one terminal
npm start

# Run tests in another terminal
npm test

Individual tests:

npm run test:signatures    # Thinking signatures
npm run test:multiturn     # Multi-turn with tools
npm run test:streaming     # Streaming SSE events
npm run test:interleaved   # Interleaved thinking
npm run test:images        # Image processing
npm run test:caching       # Prompt caching

Troubleshooting

"Could not extract token from Antigravity"

If using single-account mode with Antigravity:

  1. Make sure Antigravity app is installed and running
  2. Ensure you're logged in to Antigravity

Or add accounts via OAuth instead: antigravity-claude-proxy accounts add

401 Authentication Errors

The token might have expired. Try:

curl -X POST http://localhost:8080/refresh-token

Or re-authenticate the account:

antigravity-claude-proxy accounts

Rate Limiting (429)

With multiple accounts, the proxy automatically switches to the next available account. With a single account, you'll need to wait for the rate limit to reset.

Account Shows as "Invalid"

Re-authenticate the account:

antigravity-claude-proxy accounts
# Choose "Re-authenticate" for the invalid account

Safety, Usage, and Risk Notices

Intended Use

  • Personal / internal development only
  • Respect internal quotas and data handling policies
  • Not for production services or bypassing intended limits

Not Suitable For

  • Production application traffic
  • High-volume automated extraction
  • Any use that violates Acceptable Use Policies

Warning (Assumption of Risk)

By using this software, you acknowledge and accept the following:

  • Terms of Service risk: This approach may violate the Terms of Service of AI model providers (Anthropic, Google, etc.). You are solely responsible for ensuring compliance with all applicable terms and policies.

  • Account risk: Providers may detect this usage pattern and take punitive action, including suspension, permanent ban, or loss of access to paid subscriptions.

  • No guarantees: Providers may change APIs, authentication, or policies at any time, which can break this method without notice.

  • Assumption of risk: You assume all legal, financial, and technical risks. The authors and contributors of this project bear no responsibility for any consequences arising from your use.

Use at your own risk. Proceed only if you understand and accept these risks.


Legal

  • Not affiliated with Google or Anthropic. This is an independent open-source project and is not endorsed by, sponsored by, or affiliated with Google LLC or Anthropic PBC.

  • "Antigravity", "Gemini", "Google Cloud", and "Google" are trademarks of Google LLC.

  • "Claude" and "Anthropic" are trademarks of Anthropic PBC.

  • Software is provided "as is", without warranty. You are responsible for complying with all applicable Terms of Service and Acceptable Use Policies.


Credits

This project is based on insights and code from:


License

MIT


Star History

Star History Chart