Skip to main content

Providers & Models

Pi supports multiple LLM providers through both API keys and OAuth subscriptions. Each provider offers different models with varying capabilities for vision, reasoning, and context windows.

Supported Providers

Pi maintains a registry of tool-capable models, updated with every release.

Subscription-Based (OAuth)

Anthropic Claude

Pro/Max subscription
pi
/login anthropic

OpenAI Codex

ChatGPT Plus/Pro subscription (GPT-5.x models)
pi
/login openai-codex

GitHub Copilot

Copilot subscription
pi
/login github-copilot

Google Gemini CLI

Gemini 2.0/2.5 via Cloud Code Assist
pi
/login google-gemini-cli

Google Antigravity

Free Gemini 3, Claude, GPT-OSS via Google Cloud
pi
/login google-antigravity

API Key-Based

ProviderEnvironment VariableModels
AnthropicANTHROPIC_API_KEYClaude 3.5 Sonnet, Opus, Haiku
OpenAIOPENAI_API_KEYGPT-4o, GPT-4o mini, o1
Google GeminiGEMINI_API_KEYGemini 1.5/2.0 Pro, Flash
Google VertexGOOGLE_CLOUD_PROJECT + ADCGemini via Vertex AI

Authentication

Quick Start with OAuth

1

Start Pi

pi
2

Login

/login
Select your provider from the interactive list.
3

Authenticate

Follow the OAuth flow in your browser. Pi will automatically save your credentials to ~/.pi/agent/auth.json.
4

Select Model

/model
Choose from available models for your provider.

Using API Keys

Set environment variables before starting Pi:
# Anthropic
export ANTHROPIC_API_KEY=sk-ant-...

# OpenAI
export OPENAI_API_KEY=sk-...

# Google Gemini
export GEMINI_API_KEY=AI...

# Then start Pi
pi

Special Authentication Cases

Vertex AI uses Application Default Credentials:
# Local development
gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT="my-project"
export GOOGLE_CLOUD_LOCATION="us-central1"

# Production (service account)
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"
export GOOGLE_CLOUD_PROJECT="my-project"
export GOOGLE_CLOUD_LOCATION="us-central1"

pi --provider google-vertex
See Google ADC documentation.
Azure requires resource name or base URL:
export AZURE_OPENAI_API_KEY="your-key"
export AZURE_OPENAI_BASE_URL="https://your-resource.openai.azure.com/openai/v1"
# Or
export AZURE_OPENAI_RESOURCE_NAME="your-resource"

# Optional: API version (defaults to v1)
export AZURE_OPENAI_API_VERSION="v1"

# Optional: Model to deployment mapping
export AZURE_OPENAI_DEPLOYMENT_NAME_MAP="gpt-4o=my-deployment,gpt-4o-mini=prod"

pi --provider azure-openai
Bedrock uses AWS credentials:
# Option 1: AWS Profile
export AWS_PROFILE="my-profile"
export AWS_REGION="us-east-1"

# Option 2: Access Keys
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"

# Option 3: Bearer Token
export AWS_BEARER_TOKEN_BEDROCK="..."
export AWS_REGION="us-east-1"

pi --provider amazon-bedrock

Model Selection

Interactive Selection

Press Ctrl+L or use /model to open the model selector:
┌─ Select Model ────────────────────────────────────┐
│ > claude-sonnet                                   │
│                                                   │
│ anthropic/claude-sonnet-4-20250514               │
│ anthropic/claude-opus-4-5                        │
│ anthropic/claude-3-5-haiku-20241022              │
│ openai/gpt-4o                                    │
│ openai/gpt-4o-mini                               │
│ google/gemini-2.5-flash                          │
└───────────────────────────────────────────────────┘

Command Line Selection

pi --provider anthropic --model claude-sonnet-4

Cycling Models

Configure models to cycle with Ctrl+P:
# Specific models
pi --models "claude-sonnet-4,claude-haiku,gpt-4o"

# All models from a provider
pi --models "anthropic/*"

# Glob patterns
pi --models "*sonnet*,*haiku*"

# With thinking levels
pi --models "sonnet:high,haiku:low,gpt-4o:medium"
In Pi, press:
  • Ctrl+P: Next model
  • Shift+Ctrl+P: Previous model

Listing Available Models

# List all models
pi --list-models

# Search models
pi --list-models sonnet
pi --list-models "vision"
pi --list-models "reasoning"

Model Capabilities

Vision Support

Models with input: ["text", "image"] can process images:
# Check if model supports vision
pi --list-models --model gpt-4o | grep input

# Use with images
pi --model gpt-4o @screenshot.png "What's in this image?"

Reasoning/Thinking

Models with reasoning: true support extended thinking:
pi --model gpt-5-mini --thinking high
Thinking levels:
  • minimal: Fast responses
  • low, medium: Balanced
  • high, xhigh: Deep reasoning

Default Models

Set default model in ~/.pi/agent/settings.json:
{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium"
}
Or use /settings command in Pi.

Switching Providers Mid-Session

Pi supports switching models and providers during a conversation:
# In Pi:
> "Explain quantum computing" 
> (Using claude-sonnet-4)
> /model
> (Switch to gpt-4o)
> "Simplify that explanation"
> (Using gpt-4o, sees full conversation history)
Thinking blocks from one provider are converted to text with <thinking> tags when sent to other providers.

Cost & Token Tracking

Pi tracks token usage and costs automatically:
┌─ Footer ──────────────────────────────────────────┐
│ ~/project  session-name                           │
│ 1.2M / 200K tokens (cached: 800K)                │
│ $0.15 total ($0.03 this turn)                    │
│ anthropic/claude-sonnet-4                         │
└───────────────────────────────────────────────────┘
View detailed stats:
/session  # Shows total tokens, cost, cache usage

Environment Variables Reference

# Anthropic
ANTHROPIC_API_KEY=sk-ant-...
ANTHROPIC_OAUTH_TOKEN=...  # Alternative to API key

# OpenAI
OPENAI_API_KEY=sk-...

# Azure OpenAI
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_BASE_URL=https://resource.openai.azure.com/openai/v1
AZURE_OPENAI_RESOURCE_NAME=...  # Alternative to base URL
AZURE_OPENAI_API_VERSION=v1
AZURE_OPENAI_DEPLOYMENT_NAME_MAP=model=deployment,model2=deployment2

# Google
GEMINI_API_KEY=AI...
GOOGLE_CLOUD_PROJECT=my-project  # For Vertex/Gemini CLI
GOOGLE_CLOUD_LOCATION=us-central1
GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

# Amazon Bedrock
AWS_PROFILE=my-profile
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_BEARER_TOKEN_BEDROCK=...
AWS_REGION=us-east-1

# Other Providers
GROQ_API_KEY=gsk_...
CEREBRAS_API_KEY=...
XAI_API_KEY=...
OPENROUTER_API_KEY=...
AI_GATEWAY_API_KEY=...
ZAI_API_KEY=...
MISTRAL_API_KEY=...
MINIMAX_API_KEY=...
KIMI_API_KEY=...

# GitHub Copilot
COPILOT_GITHUB_TOKEN=ghp_...
GH_TOKEN=ghp_...  # Alternative
GITHUB_TOKEN=ghp_...  # Alternative

# Advanced
PI_CACHE_RETENTION=long  # Extend cache: Anthropic 1h, OpenAI 24h
PI_AI_ANTIGRAVITY_VERSION=1.23.0  # Override Antigravity version

Troubleshooting

# Clear saved credentials
rm ~/.pi/agent/auth.json

# Re-authenticate
pi
/login
# Check available models
pi --list-models

# Ensure you're authenticated
pi
/login provider-name
Enable the model in VS Code first:
  1. Open VS Code
  2. Open Copilot Chat
  3. Click model selector
  4. Select the model (shows warning icon)
  5. Click “Enable”
  6. Try again in Pi
# Switch to different provider
/model

# Or use slower model from same provider
pi --model claude-haiku  # Cheaper, higher limits

Build docs developers (and LLMs) love