pi-anthropic-vertex

September 12, 2026 ยท View on GitHub

npm

Anthropic Claude models on Google Cloud Vertex AI for pi.

Note

Red Hat engineers: if you rely on this extension and it's broken and you need an urgent fix, reach out to me on Red Hat Slack. If I can't respond quickly, fork the repo, fix it yourself, and open a PR, I'll get to it eventually. Code must be clean and well understood. Vibe-coded PRs will be closed immediately.

Built-in support is coming. There is an open PR to add a native anthropic-vertex provider to pi, which would make this extension unnecessary. Multiple issues have requested this: #5082, #5300, #4449, #1155. If you want this to land, leave a ๐Ÿ‘ on the PR. Until then, this extension is the only shipped solution.

This extension started from a comment on #1155.

Compatibility

Extensionpi
0.1.160.85.1
0.1.150.85.1
0.1.140.85.1
0.1.130.81.1 - 0.82.0
0.1.120.80.10
0.1.110.80.3
0.1.100.80.0 - 0.80.2
0.1.90.78.0 - 0.79.4
0.1.80.75.5 - 0.78.0
0.1.70.75.4
0.1.60.75.1
0.1.50.74.1
0.1.40.72.0 - 0.73.1
0.1.30.72.0 - 0.73.0
0.1.20.67.1 - 0.71.0
0.1.00.66.1

Prerequisites

  • Google Cloud project with Vertex AI API enabled
  • Claude models enabled in Model Garden
  • gcloud CLI installed and authenticated

How it works

This extension injects an AnthropicVertex client into pi's built-in anthropic-messages streaming implementation. All message transformation, prompt caching, tool call normalization, thinking block replay, partial JSON streaming, usage tracking, and beta feature negotiation are handled by pi's battle-tested internals, nothing is reimplemented.

Other Vertex AI extensions (pi-vertex-claude, pi-vertex, pi-anthropic-vertex) reimplement the Anthropic streaming protocol from scratch at 500-1500 lines, losing features like prompt caching, tool call adjacency enforcement, aborted message filtering, and partial JSON parsing. This extension delegates to pi's built-in and inherits everything for free.

Model definitions are pulled at runtime from pi's built-in Anthropic provider via getModels("anthropic"), so new Claude models are picked up automatically when pi updates.

Install

pi install npm:@twogiants/pi-anthropic-vertex

Or install from git:

pi install git:github.com/twoGiants/pi-anthropic-vertex

Setup

Authenticate with Google Cloud:

gcloud auth application-default login

Set your project using one of these methods:

Option 1: Environment variable

export GOOGLE_CLOUD_PROJECT=your-project-id
export GOOGLE_CLOUD_LOCATION=us-east5  # optional, defaults to us-east5

Also recognizes ANTHROPIC_VERTEX_PROJECT_ID, GOOGLE_CLOUD_PROJECT_ID, and CLOUD_ML_REGION for compatibility with existing Claude Code setups.

Option 2: Pi auth (recommended for PI WEB)

Use /login anthropic-vertex inside pi and enter your project ID, or configure ~/.pi/agent/auth.json directly:

{
  "anthropic-vertex": {
    "type": "api_key",
    "key": "your-project-id",
    "env": {
      "GOOGLE_CLOUD_LOCATION": "us-east5"
    }
  }
}

This works in non-interactive environments like PI WEB where shell profile env vars may not be available.

Usage

pi --provider anthropic-vertex --model claude-opus-4-6
pi --provider anthropic-vertex --model claude-sonnet-4-6

All Claude models available on Vertex AI are registered automatically.

License

MIT