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

Настройки

Pi использует файлы настроек JSON, в которых настройки проекта переопределяют глобальные настройки.

Расположение Объем
~/.pi/agent/settings.json Global (all projects)
.pi/settings.json Project (current directory)

Редактируйте напрямую или используйте /settings для общих опций.

Доверие к проекту

При интерактивном запуске pi спрашивает, прежде чем доверять папке проекта, которая содержит локальные настройки проекта, ресурсы или проект .agents/skills и не имеет сохраненного решения для этой папки или родительской папки в ~/.pi/agent/trust.json. Доверие к проекту позволяет pi загружать ресурсы .pi/settings.json и .pi, устанавливать недостающие пакеты проекта и выполнять расширения проекта.

В неинтерактивных режимах (-p, --mode json и --mode rpc) запрос доверия не отображается. Без применимого сохраненного решения о доверии они используют defaultProjectTrust из глобальных настроек: ask (по умолчанию) и never игнорируют эти ресурсы проекта, а always доверяют им. Нажмите --approve/-a или --no-approve/-na, чтобы отменить доверие проекта на один запуск.

Если никакое расширение или сохраненное решение не применимо, defaultProjectTrust управляет резервным поведением. Установите его на "ask", "always" или "never" в ~/.pi/agent/settings.json или измените его с помощью /settings.

pi config и команды пакета используют один и тот же поток доверия проекта, за исключением того, что pi update никогда не запрашивает. Нажмите --approve, чтобы доверять локальным настройкам проекта для одной команды, или --no-approve, чтобы игнорировать их.

Используйте /trust в интерактивном режиме, чтобы сохранить решение о доверии проекта для будущих сеансов, включая доверие к непосредственной родительской папке. Пишется только ~/.pi/agent/trust.json; текущий сеанс не перезагружается, поэтому перезапустите pi, чтобы изменения вступили в силу.

Все настройки

Модель и мышление

Параметр Тип По умолчанию Описание
defaultProvider string - Поставщик по умолчанию (например, "anthropic", "openai")
defaultModel string - Идентификатор модели по умолчанию
defaultThinkingLevel string - "off", "minimal", "low", "medium", "high", "xhigh", "max"
hideThinkingBlock boolean false Скрыть мыслительные блоки в выводе
showCacheMissNotices boolean false Показывать уведомления о расшифровке при значительных промахах в кэше подсказок.
thinkingBudgets object - Пользовательские бюджеты токенов на каждый уровень мышления

мышлениеБюджеты

{
  "thinkingBudgets": {
    "minimal": 1024,
    "low": 4096,
    "medium": 10240,
    "high": 32768
  }
}

Пользовательский интерфейс и дисплей

Параметр Тип По умолчанию Описание
theme string "dark" Название темы ("dark", "light" или пользовательское)
externalEditor string $VISUAL, затем $EDITOR, затем «Блокнот» в Windows или nano в другом месте. Команда внешнего редактора Ctrl+G; имеет приоритет над переменными среды
quietStartup boolean false Скрыть заголовок запуска
defaultProjectTrust string "ask" Доверительное поведение резервного проекта: "ask", "always" или "never". Только глобальная настройка
collapseChangelog boolean false Показывать сокращенный журнал изменений после обновлений
enableInstallTelemetry boolean true Отправьте анонимный пинг версии установки/обновления после первой установки или обновлений, обнаруженных в журнале изменений. Это не контролирует проверки обновлений.
enableAnalytics boolean false Согласитесь на обмен аналитическими данными. В настоящее время запрашивается только во время первоначальной экспериментальной настройки (PI_EXPERIMENTAL=1)
trackingId string - Идентификатор отслеживания Google Analytics, генерируется при включении enableAnalytics.
doubleEscapeAction string "tree" Действие для двойного выхода: "tree", "fork" или "none".
treeFilterMode string "default" Фильтр по умолчанию для /tree: "default", "no-tools", "user-only", "labeled-only", "all"
editorPaddingX number 0 Горизонтальное заполнение для редактора ввода (0-3)
outputPad number 1 Горизонтальное заполнение для сообщений пользователя, сообщений помощника и мыслей (0 или 1)
autocompleteMaxVisible number 5 Максимальное количество видимых элементов в раскрывающемся списке автозаполнения (3–20)
showHardwareCursor boolean false Покажите курсор терминала, пока TUI позиционирует его для поддержки IME.
tuiMode string "regular" Интерактивный режим TUI: "regular" или экспериментальный "fullscreen". Изменения из /settings вступают в силу немедленно; --tui-mode переопределяет этот параметр при запуске
fullscreenExitOutput string "transcript" Вывод полноэкранного выхода: "transcript" печатает окончательную расшифровку и подсказку о возобновлении, а "resume-hint" восстанавливает предыдущий экран и печатает только подсказку о возобновлении. Не имеет эффекта в обычном режиме TUI.
fullscreenScrollbar string "auto" Полоса прокрутки полноэкранной расшифровки: "auto" временно показывает ее во время прокрутки, "always" резервирует крайний правый столбец и сохраняет его видимым, а "hidden" скрывает его. Не имеет эффекта в обычном режиме TUI.

Для VS Code добавьте --wait, чтобы pi возобновил работу после выхода из редактора:

{
  "externalEditor": "code --wait"
}

Телеметрия и проверка обновлений

enableInstallTelemetry контролирует только анонимный пинг установки/обновления до https://pi.dev/api/report-install. Отказ от телеметрии не отключает проверку обновлений; Pi по-прежнему может получить https://pi.dev/api/latest-version для поиска последней версии.

Установите PI_SKIP_VERSION_CHECK=1, чтобы отключить проверку обновления версии Pi. Используйте --offline или PI_OFFLINE=1, чтобы отключить все описанные здесь сетевые операции при запуске, включая проверки обновлений, проверки обновлений пакетов и телеметрию установки/обновления.

Сеть

Параметр Тип По умолчанию Описание
httpProxy string - URL-адрес HTTP-прокси применяется как HTTP_PROXY и HTTPS_PROXY. Только глобальная настройка.
{
  "httpProxy": "http://127.0.0.1:7890"
}

Предупреждения

Параметр Тип По умолчанию Описание
warnings.anthropicExtraUsage boolean true Показывать предупреждение, когда для аутентификации подписки Anthropic может использоваться платное дополнительное использование.
{
  "warnings": {
    "anthropicExtraUsage": false
  }
}

Уплотнение

Параметр Тип По умолчанию Описание
compaction.enabled boolean true Включить автоматическое сжатие
compaction.reserveTokens number 16384 Токены зарезервированы для ответа LLM
compaction.keepRecentTokens number 20000 Последние токены, которые нужно сохранить (не суммируются)
{
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  }
}

Сводки ветвей

Параметр Тип По умолчанию Описание
branchSummary.reserveTokens number 16384 Токены, зарезервированные для суммирования ветвей
branchSummary.skipPrompt boolean false Пропустить «Обобщить ветку?» подсказка при навигации по /tree (по умолчанию нет сводки)

Повторить попытку

Параметр Тип По умолчанию Описание
retry.enabled boolean true Включить автоматическую повторную попытку на уровне агента при временных ошибках
retry.maxRetries number 3 Максимальное количество повторных попыток на уровне агента
retry.baseDelayMs number 2000 Базовая задержка для экспоненциальной задержки на уровне агента (2 с, 4 с, 8 с)
retry.provider.timeoutMs number SDK по умолчанию Тайм-аут запроса поставщика/SDK в миллисекундах
retry.provider.maxRetries number 0 Поставщик/SDK повторных попыток
retry.provider.maxRetryDelayMs number 60000 Максимальная запрашиваемая сервером задержка перед сбоем (60 с)

Когда провайдер запрашивает задержку повтора дольше, чем retry.provider.maxRetryDelayMs, запрос немедленно завершается с ошибкой, а не молча ждет. Установите его на 0, чтобы отключить ограничение.

Оставьте retry.provider.maxRetries на 0, если повторные попытки на уровне поставщика явно не требуются. Установка значения выше 0 может привести к тому, что SDK/повторные попытки поставщика будут обрабатывать ошибки превышения лимита использования до того, как Pi увидит их, что может заблокировать агент до тех пор, пока в некоторых обстоятельствах квота провайдера не будет сброшена.

{
  "retry": {
    "enabled": true,
    "maxRetries": 3,
    "baseDelayMs": 2000,
    "provider": {
      "timeoutMs": 3600000,
      "maxRetries": 0,
      "maxRetryDelayMs": 60000
    }
  }
}

Доставка сообщений

Параметр Тип По умолчанию Описание
steeringMode string "one-at-a-time" Как отправляются управляющие сообщения: "all" или "one-at-a-time".
followUpMode string "one-at-a-time" Как отправляются последующие сообщения: "all" или "one-at-a-time".
transport string "auto" Предпочтительный транспорт для поставщиков, поддерживающих несколько видов транспорта: "sse", "websocket", "websocket-cached" или "auto".
httpIdleTimeoutMs number 300000 Тайм-аут простоя заголовка/тела HTTP в миллисекундах, также используется провайдерами с явными тайм-аутами простоя потока. Установите значение 0, чтобы отключить.
websocketConnectTimeoutMs number 15000 Тайм-аут подключения/открытия WebSocket в миллисекундах для поставщиков, поддерживающих транспорты WebSocket. Установите значение 0, чтобы отключить.

Терминал и изображения

Параметр Тип По умолчанию Описание
terminal.showImages boolean true Показать изображения в терминале (если поддерживается)
terminal.imageWidthCells number 60 Предпочтительная ширина встроенного изображения в терминальных ячейках
terminal.clearOnShrink boolean false Очищать пустые строки при сжатии содержимого (может вызвать мерцание)
images.autoResize boolean true Измените размер изображения до максимального размера 2000x2000. Применяется к вложениям @file, read и изображениям, возвращаемым инструментами.
images.blockImages boolean false Заблокировать отправку всех изображений в LLM

Оболочка

Параметр Тип По умолчанию Описание
shellPath string - Пользовательский путь к оболочке (например, для Cygwin в Windows); поддерживает ведущий ~ для домашнего каталога
shellCommandPrefix string - Префикс для каждой команды bash (например, "shopt -s expand_aliases")
npmCommand string[] - Команда argv, используемая для операций поиска/установки пакета npm (например, ["mise", "exec", "node@20", "--", "npm"])
{
  "npmCommand": ["mise", "exec", "node@20", "--", "npm"]
}

npmCommand используется для всех операций менеджера пакетов npm, включая установку, удаление и установку зависимостей внутри пакетов git. Пакеты npm на уровне пользователя устанавливаются в ~/.pi/agent/npm/; Пакеты npm в рамках проекта устанавливаются в .pi/npm/. Используйте записи в стиле argv именно так, как должен быть запущен процесс. Когда настроен npmCommand, при установке зависимостей пакетов git используется простой install, чтобы избежать использования флагов, специфичных для npm, в оболочках или альтернативных менеджерах пакетов.

Сессии

Параметр Тип По умолчанию Описание
sessionDir string - Каталог, в котором хранятся файлы сеанса. Принимает абсолютные или относительные пути плюс ~.
{ "sessionDir": ".pi/sessions" }

Если несколько источников указывают каталог сеанса, приоритет имеет значение --session-dir, PI_CODING_AGENT_SESSION_DIR, а затем sessionDir в файле settings.json.

Модель Велоспорт

Параметр Тип По умолчанию Описание
enabledModels string[] - Шаблоны моделей для циклического переключения Ctrl+P (тот же формат, что и флаг --models CLI)
{
  "enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
}

Markdown

Параметр Тип По умолчанию Описание
markdown.codeBlockIndent string " " Отступы для блоков кода
markdown.mermaid string "streaming" Режим рендеринга Mermaid: "off", "final" или "streaming".

Ресурсы

Эти настройки определяют, откуда загружать расширения, навыки, подсказки и темы.

Пути в ~/.pi/agent/settings.json разрешаются относительно ~/.pi/agent. Пути в .pi/settings.json разрешаются относительно .pi. Поддерживаются абсолютные пути и ~.

Параметр Тип По умолчанию Описание
packages array [] npm/git пакеты для загрузки ресурсов из
extensions string[] [] Пути к файлам или каталогам локальных расширений
skills string[] [] Пути или каталоги локальных файлов навыков
prompts string[] [] Пути или каталоги локальных шаблонов приглашений
themes string[] [] Пути или каталоги к файлам локальной темы
enableSkillCommands boolean true Зарегистрируйте навыки как команды /skill:name

Массивы поддерживают шаблоны glob и исключения. Используйте !pattern, чтобы исключить. Используйте +path, чтобы принудительно включить точный путь, и -path, чтобы принудительно исключить точный путь.

пакеты

Строковая форма загружает все ресурсы из пакета:

{
  "packages": ["pi-skills", "@org/my-extension"]
}

Форма объекта фильтрует, какие ресурсы загружать:

{
  "packages": [
    {
      "source": "pi-skills",
      "skills": ["brave-search", "transcribe"],
      "extensions": []
    }
  ]
}

См. packages.md для получения подробной информации об управлении пакетами.

Пример

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "theme": "dark",
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  },
  "retry": {
    "enabled": true,
    "maxRetries": 3
  },
  "enabledModels": ["claude-*", "gpt-4o"],
  "warnings": {
    "anthropicExtraUsage": true
  },
  "packages": ["pi-skills"]
}

Переопределения проекта

Настройки проекта (.pi/settings.json) переопределяют глобальные настройки. Вложенные объекты объединяются:

// ~/.pi/agent/settings.json (global)
{
  "theme": "dark",
  "compaction": { "enabled": true, "reserveTokens": 16384 }
}

// .pi/settings.json (project)
{
  "compaction": { "reserveTokens": 8192 }
}

// Result
{
  "theme": "dark",
  "compaction": { "enabled": true, "reserveTokens": 8192 }
}