Настройка, расширение, параметры платформы и справочник API для Pi.

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

  • Нажмите Enter для github.com или введите свой домен GitHub Enterprise Server.
  • Если вы получаете сообщение «модель не поддерживается», включите ее в VS Code: Чат Copilot → выбор модели → выберите модель → «Включить».

xAI (Grok/X subscription)

  • Нажмите /login xai, затем выберите Использовать подписку.
  • XAI_API_KEY остается доступным через Используйте API key

OpenRouter

  • Запустите /login openrouter, затем выберите Войти с помощью OpenRouter, чтобы открыть поток авторизации OpenRouter PKCE.
  • Авторизация создает управляемый пользователем OpenRouter API key, оплата которого осуществляется за счет ваших кредитов OpenRouter.
  • На удаленных/безголовых машинах (например, выше SSH) браузер не может связаться с обратным вызовом обратной связи; вместо этого вставьте окончательный URL-адрес перенаправления (или код авторизации) в приглашение для входа в систему.
  • OPENROUTER_API_KEY остается доступным через Используйте API key

Radius

Radius — это динамический шлюз pi-messages. /login radius хранит токены OAuth в auth.json; каталог шлюзов обновляется независимо и кэшируется в models-store.json. Пользовательские шлюзы Radius можно объявить в models.json с помощью "oauth": "radius" и шлюза baseUrl.

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: const envMap в packages/ai/src/env-api-keys.ts.

Файл аутентификации

Сохраните учетные данные в ~/.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_KEY, что и qwen-token-plan, но ограничивает выбор моделями, документированными для индивидуальных подписок. Существующие Поставщик сохраняет свой более широкий каталог для обратной совместимости. При использовании auth.json сохраните учетные данные выбранного вами провайдера; переменная среды используется обоими международными поставщиками.

Файл создается с разрешениями 0600 (только чтение/запись пользователя). Учетные данные файла аутентификации имеют приоритет над переменными среды.

Учетные данные API key также могут включать значения среды на уровне provider. Эти значения используются раньше переменных среды процесса при разрешении ключа учетных данных, заголовков provider/model и конфигурации provider, например идентификаторов учетных записей Cloudflare, настроек Azure OpenAI, проекта/расположения Vertex, настроек Bedrock, PI_CACHE_RETENTION и HTTP_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 должен использовать настройки поставщика, отличные от настроек среды оболочки проекта.

Ключевое разрешение

Поле 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; используйте ${FOO}_BAR, когда 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, чтобы сохранить API key Bedrock, или настройте один из указанных ниже источников учетных данных 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

Кэширование подсказок включается автоматически для моделей 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. Идентификатор учетной записи и пул шлюза можно установить как переменные среды или в объекте env учетных данных API key в auth.json.

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"

Маршруты к OpenAI, Anthropic и Workers AI через Cloudflare AI Gateway. Рабочий ИИ использует унифицированные идентификаторы моделей API (/compat) и префиксы (workers-ai/@cf/...). OpenAI использует транзитный маршрут OpenAI (/openai) с собственными идентификаторами моделей OpenAI, такими как gpt-5.1. Anthropic использует транзитный маршрут Anthropic (/anthropic) с собственными идентификаторами моделей Anthropic, такими как claude-sonnet-4-5.

Аутентификация AI Gateway использует CLOUDFLARE_API_KEY вместо cf-aig-authorization. Аутентификация восходящего потока может быть одной из:

Режим Запросить авторизацию Авторизация восходящего потока
Рабочие ИИ Только токен Cloudflare Cloudflare-родной
Единый биллинг Только токен Cloudflare Cloudflare обрабатывает входящую аутентификацию и списывает кредиты
Сохранено BYOK Только токен Cloudflare Cloudflare внедряет ключи провайдера, хранящиеся на панели управления AI Gateway
Встроенный BYOK Токен Cloudflare плюс восходящий заголовок Authorization Запрос предоставляет ключ вышестоящего поставщика.

Для обычного использования Pi отдайте предпочтение единому выставлению счетов или сохраненному BYOK. Для встроенного BYOK требуется настроить дополнительный восходящий заголовок Authorization для поставщика Cloudflare AI Gateway, например, через переопределение поставщика/модели models.json.

Cloudflare Workers AI

CLOUDFLARE_API_KEY можно установить с помощью /login. CLOUDFLARE_ACCOUNT_ID можно установить как переменную среды или в объекте env учетных данных API key в auth.json.

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

Pi автоматически устанавливает x-session-affinity для prefix caching скидок.

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.md и examples/extensions/custom-provider-gitlab-duo.

Порядок разрешения

При разрешении учетных данных для поставщика:

  1. CLI --api-key флаг
  2. Запись auth.json (токен API key или OAuth)
  3. Переменная среды
  4. Пользовательские ключи поставщика от models.json