Pi の設定、拡張、プラットフォーム設定、API リファレンス。

Providers

Pi は、環境変数または認証ファイルを介して OAuth および API key プロバイダーを介してサブスクリプションベースのプロバイダーをサポートします。組み込みカタログは pi に同梱されています。構成されたプロバイダーは、新しいカタログを更新し、オフラインで使用するためにそれらを ~/.pi/agent/models-store.json にキャッシュすることがあります。

目次

定期購入

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

  • ChatGPT Plus/Pro (Codex)
  • Claude Pro/Max
  • GitHub Copilot
  • xAI (Grok/X subscription)
  • OpenRouter (OAuth-minted API key billed from OpenRouter credits)
  • Radius

認証情報をクリアするには、/logout を使用します。トークンは ~/.pi/agent/auth.json に保存され、期限切れになると自動更新されます。 OpenRouter は代わりに、自動的に期限切れにならないユーザー制御の API key を作成します。

OpenAI Codex

  • ChatGPT Plus または Pro サブスクリプションが必要です
  • OpenAI による公式承認: Codex for OSS

Claude Pro/Max

Anthropic サブスクリプション認証は Claude Pro/Max アカウントで有効です。サードパーティツールからの利用は extra usage から消費され、Claude プランの上限ではなくトークン単位で課金されます。

GitHub Copilot

  • github.com の場合は Enter を押すか、GitHub Enterprise Server ドメインを入力してください
  • 「モデルがサポートされていません」というメッセージが表示された場合は、VS Code で有効にします。Copilot Chat → モデル セレクター → モデルの選択 → 「有効にする」

xAI (Grok/X subscription)

  • /login xai を実行し、サブスクリプションを使用 を選択します
  • XAI_API_KEYAPI key を使用して引き続き利用可能です

OpenRouter

  • /login openrouter を実行し、OpenRouter でサインイン を選択して OpenRouter PKCE 認証フローを開きます
  • 認証により、OpenRouter クレジットから請求されるユーザー制御の OpenRouter API key が作成されます
  • リモート/ヘッドレス マシン (例: SSH 上) では、ブラウザはループバック コールバックに到達できません。代わりに、最終的なリダイレクト URL (または認証コード) をログイン プロンプトに貼り付けます。
  • OPENROUTER_API_KEYAPI key を使用して引き続き利用可能です

Radius

Radius は動的な pi-messages ゲートウェイです。 /login radius は OAuth トークンを auth.json に保管します。ゲートウェイ カタログは個別に更新され、models-store.json にキャッシュされます。カスタム Radius ゲートウェイは、"oauth": "radius" およびゲートウェイ baseUrl を使用して models.json で宣言できます。

API キー

環境変数または認証ファイル

対話モードで /login を使用し、プロバイダーを選択して API key を auth.json に保存するか、環境変数を介して資格情報を設定します。

export ANTHROPIC_API_KEY=sk-ant-...
pi
プロバイダー 環境変数 auth.jsonキー
Anthropic ANTHROPIC_API_KEY anthropic
Ant Ling ANT_LING_API_KEY ant-ling
Azure OpenAI Responses AZURE_OPENAI_API_KEY azure-openai-responses
OpenAI OPENAI_API_KEY openai
DeepSeek DEEPSEEK_API_KEY deepseek
NVIDIA NIM NVIDIA_API_KEY nvidia
Google Gemini GEMINI_API_KEY google
Amazon Bedrock AWS_BEARER_TOKEN_BEDROCK amazon-bedrock
Mistral MISTRAL_API_KEY mistral
Groq GROQ_API_KEY groq
Cerebras CEREBRAS_API_KEY cerebras
Cloudflare AI Gateway CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID) cloudflare-ai-gateway
Cloudflare Workers AI CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) cloudflare-workers-ai
xAI XAI_API_KEY xai
OpenRouter OPENROUTER_API_KEY openrouter
Vercel AI Gateway AI_GATEWAY_API_KEY vercel-ai-gateway
ZAI Coding Plan (Global) ZAI_API_KEY zai
ZAI Coding Plan (China) ZAI_CODING_CN_API_KEY zai-coding-cn
OpenCode Zen OPENCODE_API_KEY opencode
OpenCode Go OPENCODE_API_KEY opencode-go
Radius RADIUS_API_KEY radius
Hugging Face HF_TOKEN huggingface
Fireworks FIREWORKS_API_KEY fireworks
Together AI TOGETHER_API_KEY together
Baseten BASETEN_API_KEY baseten
Kimi For Coding KIMI_API_KEY kimi-coding
MiniMax MINIMAX_API_KEY minimax
MiniMax (China) MINIMAX_CN_API_KEY minimax-cn
Qwen Token Plan (existing catalog) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan
Qwen Token Plan (Individual) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan-individual
Qwen Token Plan (China) QWEN_TOKEN_PLAN_CN_API_KEY qwen-token-plan-cn
Xiaomi MiMo XIAOMI_API_KEY xiaomi
Xiaomi MiMo Token Plan (China) XIAOMI_TOKEN_PLAN_CN_API_KEY xiaomi-token-plan-cn
Xiaomi MiMo Token Plan (Amsterdam) XIAOMI_TOKEN_PLAN_AMS_API_KEY xiaomi-token-plan-ams
Xiaomi MiMo Token Plan (Singapore) XIAOMI_TOKEN_PLAN_SGP_API_KEY xiaomi-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": "..." },
  "qwen-token-plan":  { "type": "api_key", "key": "sk-sp-..." },
  "qwen-token-plan-individual": { "type": "api_key", "key": "sk-sp-..." },
  "qwen-token-plan-cn": { "type": "api_key", "key": "sk-sp-..." },
  "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": "..." }
}

qwen-token-plan-individual は同じ国際エンドポイントを使用し、QWEN_TOKEN_PLAN_API_KEYqwen-token-plan ただし、ピッカーは個人サブスクリプション用に文書化されたモデルに制限されます。既存の プロバイダーは、下位互換性を確保するために、より広範なカタログを保持しています。 auth.jsonを使用する場合は、 選択したプロバイダーの資格情報。環境変数は両方の国際プロバイダーによって共有されます。

ファイルは 0600 権限 (ユーザー読み取り/書き込みのみ) で作成されます。認証ファイルの資格情報は環境変数よりも優先されます。

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

{
  "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 がプロジェクト シェル環境とは異なるプロバイダー設定を使用する必要がある場合にこれを使用します。

キーの解決

key フィールドは、コマンドの実行、環境補間、およびリテラルをサポートします。

  • シェル コマンド: 開始時の "!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_BAR です。 BAR がリテラルテキストの場合は、${FOO}_BAR を使用します。環境変数が欠落していると、値が未解決になります。
  • エスケープ: "$" はリテラルの "
    quot;
    を出力します。"$!" はコマンド実行をトリガーせずにリテラルの "!" を出力します。
    { "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 の後にここに保存され、自動的に管理されます。

クラウドプロバイダー

Azure OpenAI

export AZURE_OPENAI_API_KEY=...
export AZURE_OPENAI_BASE_URL=https://your-resource.ai.azure.com
# also supported: https://your-resource.cognitiveservices.azure.com
# also supported: https://your-resource.openai.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

Amazon Bedrock

/login amazon-bedrock を使用して Bedrock API key を保存するか、以下の環境から取得できる AWS 認証情報ソースのいずれかを設定します。

# 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) もサポートします。

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

プロンプト キャッシュは、ID に認識可能なモデル名 (ベース モデルおよびシステム定義の推論プロファイル) が含まれるClaude モデルに対して自動的に有効になります。アプリケーション推論プロファイル (ARN にモデル名が含まれていない) の場合、AWS_BEDROCK_FORCE_CACHE=1 を設定してキャッシュ ポイントを有効にします。

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

Bedrock API プロキシに接続している場合は、次の環境変数を使用できます。

# 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 AI Gateway

CLOUDFLARE_API_KEY/loginで設定できます。アカウント ID とゲートウェイ スラグは、環境変数として、または auth.json の API key 資格情報の env オブジェクトに設定できます。

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ゲートウェイを介してOpenAI、Anthropic、Workers AIにルーティングします。 Workers AI は、統合された API (/compat) およびプレフィックス付きモデル ID (workers-ai/@cf/...) を使用します。 OpenAI は、gpt-5.1 などのネイティブ OpenAI モデル ID を持つ OpenAI パススルー ルート (/openai) を使用します。 Anthropic は、claude-sonnet-4-5 などのネイティブ Anthropic モデル ID を持つ Anthropic パススルー ルート (/anthropic) を使用します。

AI ゲートウェイの認証では、CLOUDFLARE_API_KEYcf-aig-authorization として使用されます。アップストリーム認証は次のいずれかになります。

モード 認証のリクエスト アップストリーム認証
ワーカーAI Cloudflareトークンのみ Cloudflareネイティブ
統合請求 Cloudflareトークンのみ Cloudflareはアップストリーム認証を処理し、クレジットを差し引きます
保存されたBYOK Cloudflareトークンのみ Cloudflareは、AIゲートウェイダッシュボードに保存されているプロバイダーキーを挿入します
インラインBYOK CloudflareトークンとアップストリームのAuthorizationヘッダー リクエストは上流プロバイダーキーを提供します

通常の pi の使用の場合は、統合請求または保存された BYOK をお勧めします。インライン BYOK では、たとえば models.json プロバイダー/モデルのオーバーライドを介して、Cloudflare AI Gateway プロバイダーの追加のアップストリーム Authorization ヘッダーを構成する必要があります。

Cloudflare Workers AI

CLOUDFLARE_API_KEY/loginで設定できます。 CLOUDFLARE_ACCOUNT_ID は、環境変数として、または auth.json の API key 認証情報の env オブジェクトに設定できます。

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 を自動的に設定します。

Google Vertex AI

アプリケーションのデフォルト認証情報を使用します。

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

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

llama.cpp

Pi は、llama.cpp ルーターサーバーをサポートします。 /login llama.cpp で設定し、/llama でロードされたモデルを管理し、/model でロードされたモデルを選択します。

サーバーのセットアップ、モデルのディレクトリのレイアウト、環境変数、およびコマンドの使用法については、llama.cpp を参照してください。

カスタム Provider

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 key または OAuth トークン)
  3. 環境変数
  4. models.json からのカスタムプロバイダーキー