コンテンツにスキップ

プロバイダー

Pi は OAuth 経由のサブスクリプションベースプロバイダーと、環境変数または auth ファイル経由の API キープロバイダーをサポートします。各プロバイダーについて、pi は利用可能なすべてのモデルを把握します。リストは pi の各リリースで更新されます。

対話モードで /login を使用し、プロバイダーを選択:

  • ChatGPT Plus/Pro (Codex)
  • Claude Pro/Max
  • GitHub Copilot

/logout で認証情報をクリア。トークンは ~/.pi/agent/auth.json に保存され、期限切れ時に自動更新。

  • ChatGPT Plus または Pro サブスクリプションが必要
  • OpenAI 公式推奨:Codex for OSS

Anthropic サブスクリプション認証は Claude Pro/Max アカウントで有効。サードパーティハーネス使用は extra usage から課金され、トークン単位で請求、Claude プラン上限にはカウントされません。

  • Enter で github.com、または GitHub Enterprise Server ドメインを入力
  • “model not supported” の場合、VS Code で有効化:Copilot Chat → モデルセレクター → モデル選択 → “Enable”

対話モードで /login を使用してプロバイダーを選択し API キーを auth.json に保存するか、環境変数で認証情報を設定:

Terminal window
export ANTHROPIC_API_KEY=sk-ant-...
pi
プロバイダー環境変数auth.json キー
AnthropicANTHROPIC_API_KEYanthropic
Ant LingANT_LING_API_KEYant-ling
Azure OpenAI ResponsesAZURE_OPENAI_API_KEYazure-openai-responses
OpenAIOPENAI_API_KEYopenai
DeepSeekDEEPSEEK_API_KEYdeepseek
NVIDIA NIMNVIDIA_API_KEYnvidia
Google GeminiGEMINI_API_KEYgoogle
MistralMISTRAL_API_KEYmistral
GroqGROQ_API_KEYgroq
CerebrasCEREBRAS_API_KEYcerebras
Cloudflare AI GatewayCLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID)cloudflare-ai-gateway
Cloudflare Workers AICLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID)cloudflare-workers-ai
xAIXAI_API_KEYxai
OpenRouterOPENROUTER_API_KEYopenrouter
Vercel AI GatewayAI_GATEWAY_API_KEYvercel-ai-gateway
ZAIZAI_API_KEYzai
ZAI Coding Plan (China)ZAI_CODING_CN_API_KEYzai-coding-cn
OpenCode ZenOPENCODE_API_KEYopencode
OpenCode GoOPENCODE_API_KEYopencode-go
Hugging FaceHF_TOKENhuggingface
FireworksFIREWORKS_API_KEYfireworks
Together AITOGETHER_API_KEYtogether
Kimi For CodingKIMI_API_KEYkimi-coding
MiniMaxMINIMAX_API_KEYminimax
MiniMax (China)MINIMAX_CN_API_KEYminimax-cn
Xiaomi MiMoXIAOMI_API_KEYxiaomi
Xiaomi MiMo Token Plan (China)XIAOMI_TOKEN_PLAN_CN_API_KEYxiaomi-token-plan-cn
Xiaomi MiMo Token Plan (Amsterdam)XIAOMI_TOKEN_PLAN_AMS_API_KEYxiaomi-token-plan-ams
Xiaomi MiMo Token Plan (Singapore)XIAOMI_TOKEN_PLAN_SGP_API_KEYxiaomi-token-plan-sgp

環境変数と auth.json キーの参照:packages/ai/src/env-api-keys.tsconst envMap

認証情報を ~/.pi/agent/auth.json に保存:

{
"anthropic": { "type": "api_key", "key": "sk-ant-..." },
"ant-ling": { "type": "api_key", "key": "..." },
"openai": { "type": "api_key", "key": "sk-..." },
"deepseek": { "type": "api_key", "key": "sk-..." },
"nvidia": { "type": "api_key", "key": "nvapi-..." },
"google": { "type": "api_key", "key": "..." },
"opencode": { "type": "api_key", "key": "..." },
"opencode-go": { "type": "api_key", "key": "..." },
"together": { "type": "api_key", "key": "..." },
"xiaomi": { "type": "api_key", "key": "..." },
"xiaomi-token-plan-cn": { "type": "api_key", "key": "..." },
"xiaomi-token-plan-ams": { "type": "api_key", "key": "..." },
"xiaomi-token-plan-sgp": { "type": "api_key", "key": "..." }
}

ファイルは 0600 権限(ユーザー読み書きのみ)で作成。Auth ファイルの認証情報は環境変数より優先。

API キー認証情報にはプロバイダースコープの環境値も含められます。Cloudflare アカウント ID、Azure OpenAI 設定、Vertex プロジェクト/ロケーション、Bedrock 設定、PI_CACHE_RETENTIONHTTP_PROXY/HTTPS_PROXY などを解決する際、これらはプロセス環境変数より先に使用されます。

{
"cloudflare-ai-gateway": {
"type": "api_key",
"key": "$CLOUDFLARE_API_KEY",
"env": {
"CLOUDFLARE_API_KEY": "...",
"CLOUDFLARE_ACCOUNT_ID": "account-id",
"CLOUDFLARE_GATEWAY_ID": "gateway-id"
}
}
}

pi がプロジェクト shell 環境とは異なるプロバイダー設定を使う場合に使用。

key フィールドはコマンド実行、環境変数補間、リテラルをサポート:

  • Shell コマンド: 先頭の "!command" で値全体をコマンドとして実行し stdout を使用(プロセス存続中キャッシュ)
    { "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" }
    { "type": "api_key", "key": "!op read 'op://vault/item/credential'" }
  • 環境変数補間: "$ENV_VAR" または "${ENV_VAR}" で命名変数の値を使用
    { "type": "api_key", "key": "$MY_ANTHROPIC_KEY" }
    { "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }
    $FOO_BAR は変数 FOO_BARBAR がリテラルなら ${FOO}_BAR を使用。欠落した環境変数は未解決。
  • エスケープ: "$$" はリテラル "$""$!" はリテラル "!"(コマンド実行なし)
    { "type": "api_key", "key": "$$literal-dollar-prefix" }
    { "type": "api_key", "key": "$!literal-bang-prefix" }
  • リテラル値: 直接使用。MY_API_KEY のような純粋な大文字列はリテラル;環境変数には $MY_API_KEY を使用
    { "type": "api_key", "key": "sk-ant-..." }
    { "type": "api_key", "key": "public" }

OAuth 認証情報も /login 後ここに保存され自動管理されます。

Terminal window
export AZURE_OPENAI_API_KEY=...
export AZURE_OPENAI_BASE_URL=https://your-resource.openai.azure.com
# also supported: https://your-resource.cognitiveservices.azure.com
# root endpoints are auto-normalized to /openai/v1
# or use resource name instead of base URL
export AZURE_OPENAI_RESOURCE_NAME=your-resource
# Optional
export AZURE_OPENAI_API_VERSION=2024-02-01
export AZURE_OPENAI_DEPLOYMENT_NAME_MAP=gpt-4=my-gpt4,gpt-4o=my-gpt4o
Terminal window
# Option 1: AWS Profile
export AWS_PROFILE=your-profile
# Option 2: IAM Keys
export AWS_ACCESS_KEY_ID=AKIA...
export AWS_SECRET_ACCESS_KEY=...
# Option 3: Bearer Token
export AWS_BEARER_TOKEN_BEDROCK=...
# Optional region (defaults to us-east-1)
export AWS_REGION=us-west-2

ECS タスクロール(AWS_CONTAINER_CREDENTIALS_*)と IRSA(AWS_WEB_IDENTITY_TOKEN_FILE)もサポート。

Terminal window
pi --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0

認識可能なモデル名を含む Claude モデル(ベースモデルとシステム定義推論プロファイル)では prompt caching が自動有効。アプリケーション推論プロファイル(ARN にモデル名なし)では AWS_BEDROCK_FORCE_CACHE=1 で cache points を有効化:

Terminal window
export AWS_BEDROCK_FORCE_CACHE=1
pi --provider amazon-bedrock --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123

Bedrock API プロキシに接続する場合:

Terminal window
# Set the URL for the Bedrock proxy (standard AWS SDK env var)
export AWS_ENDPOINT_URL_BEDROCK_RUNTIME=https://my.corp.proxy/bedrock
# Set if your proxy does not require authentication
export AWS_BEDROCK_SKIP_AUTH=1
# Set if your proxy only supports HTTP/1.1
export AWS_BEDROCK_FORCE_HTTP1=1

CLOUDFLARE_API_KEY/login で設定可能。アカウント ID と gateway slug は環境変数または auth.json の API キー認証情報の env オブジェクトで設定。

Terminal window
export CLOUDFLARE_API_KEY=... # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
export CLOUDFLARE_GATEWAY_ID=... # create at dash.cloudflare.com → AI → AI Gateway
pi --provider cloudflare-ai-gateway --model "claude-sonnet-4-5"

Cloudflare AI Gateway 経由で OpenAI、Anthropic、Workers AI にルーティング。Workers AI は Unified API(/compat)とプレフィックス付きモデル ID(workers-ai/@cf/...)。OpenAI は OpenAI passthrough(/openai)とネイティブ OpenAI モデル ID(例:gpt-5.1)。Anthropic は Anthropic passthrough(/anthropic)とネイティブ Anthropic モデル ID(例:claude-sonnet-4-5)。

AI Gateway 認証は CLOUDFLARE_API_KEYcf-aig-authorization として使用。上流認証モード:

モードリクエスト認証上流認証
Workers AICloudflare トークンのみCloudflare ネイティブ
Unified billingCloudflare トークンのみCloudflare が上流認証とクレジット控除
Stored BYOKCloudflare トークンのみAI Gateway ダッシュボードに保存されたプロバイダーキーを注入
Inline BYOKCloudflare トークン + 上流 Authorization ヘッダーリクエストが上流プロバイダーキーを提供

通常の pi 使用では unified billing または stored BYOK を推奨。Inline BYOK には Cloudflare AI Gateway プロバイダー用の追加 Authorization ヘッダー設定が必要(例:models.json の provider/モデルオーバーライド)。

CLOUDFLARE_API_KEY/login で設定可能。CLOUDFLARE_ACCOUNT_ID は環境変数または auth.jsonenv オブジェクトで設定。

Terminal window
export CLOUDFLARE_API_KEY=... # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
pi --provider cloudflare-workers-ai --model "@cf/moonshotai/kimi-k2.6"

Pi は prefix caching 割引のため x-session-affinity を自動設定。

Application Default Credentials を使用:

Terminal window
gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT=your-project
export GOOGLE_CLOUD_LOCATION=us-central1

または GOOGLE_APPLICATION_CREDENTIALS をサービスアカウントキーファイルに設定。

models.json 経由: Ollama、LM Studio、vLLM、またはサポート API(OpenAI Completions、OpenAI Responses、Anthropic Messages、Google Generative AI)を話す任意のプロバイダーを追加。models.md を参照。

拡張経由: カスタム API 実装または OAuth フローが必要なプロバイダーには拡張を作成。custom-provider.mdexamples/extensions/custom-provider-gitlab-duo を参照。

プロバイダーの認証情報解決時:

  1. CLI --api-key フラグ
  2. auth.json エントリ(API キーまたは OAuth トークン)
  3. 環境変数
  4. models.json のカスタムプロバイダーキー