TL;DR
- pi это монорепозиторий под лицензией MIT, в котором обвязка для кодинг-агента поставляется пятью отдельными пакетами: слой API моделей, цикл агента, библиотека терминального UI, сам кодинг-агент и пакет телеметрии. Можно взять один кирпич или все пять.
- CLI с первого дня это полноценный кодинг-агент: четыре инструмента по умолчанию, история сессий в виде дерева с fork и resume, живой счётчик стоимости, и он читает AGENTS.md или CLAUDE.md, которые уже лежат в вашем репозитории.
- Главная ценность в SDK: createAgentSession плюс рантайм модели плюс менеджер сессий дают рабочего агента примерно в десять строк TypeScript, а defineTool добавляет типизированный кастомный инструмент без отдельного процесса и протокола.
- Цена такой прозрачности это ручная работа: нет встроенных запросов разрешений, изоляция на вас, версия до 1.0 (v0.84) и примерно сотня открытых issues.
- Оставьте свою ежедневную обвязку, а pi используйте как испытательный стенд, который показывает, что эта обвязка скрывает. Строить на нём продукты стоит, только если вы готовы сами отвечать за ограничители.
Что говорят источники
pi это монорепозиторий: один репозиторий с пятью пакетами, которые публикуются отдельно, и каждый закрывает свой слой обвязки s2. pi-ai это единый API к провайдерам моделей (OpenAI, Anthropic, Google и другие за одним интерфейсом): он занимается потоковой передачей ответов, блоками рассуждений с уровнями thinking и динамическим обнаружением моделей, которые предлагает каждый провайдер s2. pi-agent-core это сам цикл агента: состояние диалога и цикл, в котором агент отправляет сообщение, читает вызовы инструментов, выполняет их и возвращает результаты s2. pi-tui это библиотека отрисовки в терминале с дифференциальным рендерингом, то есть перерисовывается только то, что изменилось на экране s2. pi-coding-agent собирает эти кирпичи в CLI, который вы устанавливаете, а pi-telemetry позволяет подключить собственные метрики использования без зависимости от вендора s3.
Цифры внедрения подтверждают замысел: 92 123 звезды, 11 400 форков и более 5 700 коммитов, всё под лицензией MIT, которая разрешает использование, изменение и распространение, в том числе внутри коммерческого продукта s1. Темп релизов держался всё лето: три релиза за первые две недели августа, а v0.84.2 вышел 14-го s4.
Установка занимает одну команду, npm install -g --ignore-scripts @earendil-works/pi-coding-agent, и флаг ignore-scripts здесь важен: он не даёт зависимостям запускать свои install-скрипты, а это один из самых используемых векторов атак на npm s3. После подключения к провайдеру через команду login нижняя панель показывает текущую папку, сессию, потраченные токены и стоимость в реальном времени, так что каждый запрос оценивается в момент отправки, а не в конце месяца s3.
Сессии это отличительная особенность. Каждый диалог сохраняется как JSONL в вашей домашней папке, с разбивкой по проектам, а история это дерево, а не линия: fork возвращает в любую точку и открывает новую ветку, tree переключает между ветками, а resume открывает любую прошлую сессию даже спустя недели, потому что всё хранится локально s3. Модель по умолчанию получает только четыре инструмента: read, write, edit и bash, то есть очень мало по сравнению с агентами на рынке, и это сделано намеренно s3. Конфигурация построена по той же логике: глобальный settings.json в домашней папке, проектный, который его переопределяет, и система доверия, которая спрашивает разрешение, прежде чем применять локальные настройки папки, открытой впервые. CLI также подгружает AGENTS.md или CLAUDE.md вашего проекта как контекст, так что существующие инструкции работают без переписывания s3.
Со стороны SDK createAgentSession принимает ModelRuntime и SessionManager и возвращает рабочего агента. SessionManager определяет, как хранятся данные: в памяти для одноразового скрипта, на диске, чтобы находить свои диалоги между запусками, а сессии, созданные через SDK, имеют ту же структуру, что и собственные сессии CLI s8. Список опций createAgentSession также позволяет выбрать точный набор открытых инструментов и даже весь системный промпт через ResourceLoader, если хочется начать с чистого листа s8. Кастомные инструменты создаются через defineTool: имя, описание, типизированная схема параметров и функция execute, которые передаются в createAgentSession через customTools. Для модели инструмент выглядит точно так же, как read или bash, типизированная схема даёт автодополнение в редакторе, а агент получает уже проверенные входные данные. Это тот же механизм, что и MCP-сервер, только всё живёт в вашем файле, без отдельного процесса и протокола посередине s8.
Сам CLI настраивается четырьмя механизмами, все они лежат в папках вашего проекта или домашней папке: extensions (TypeScript-модули, которые регистрируют инструменты, slash-команды, горячие клавиши или элементы UI и загружаются при старте из папки extensions), skills (пакеты возможностей по стандарту Agent Skills, их вызывает модель или вы вручную, поэтому существующие skills можно использовать как есть), шаблоны промптов и темы, которые перезагружаются прямо во время работы CLI s3. Философию README формулирует одной строкой: подстраивайте pi под свои рабочие процессы, а не наоборот, без форка и без вмешательства во внутренности s3. Там, где крупные обвязки встраивают в продукт суб-агентов, plan mode и разрешения, pi намеренно их не включает: их предлагается писать как extensions или ставить из сообщества s3.
Ограничения проект описывает сам. Встроенных запросов разрешений нет: по умолчанию агент может выполнить bash-команду, ничего не спрашивая. Официальное руководство по контейнеризации признаёт это и предлагает три схемы изоляции, в том числе Docker, но настроить одну из них, прежде чем выпускать агента на важную машину, это ваша задача s5. Вторая цена это зрелость: v0.84, а не 1.0, около сотни открытых issues и API, всё ещё помеченные как экспериментальные, например клиент удалённых сессий, добавленный за последние недели s7. Те же кирпичи уже обслуживают другой продукт: pi-chat применяет их для автоматизации диалогов s6.
Вердикт: оставить, попробовать или пропустить
| Часть pi | Решение | Почему |
|---|---|---|
| CLI как учебный стенд рядом с вашей ежедневной обвязкой | Оставить | Локальные древовидные сессии, живая стоимость, четыре инструмента: видны все слои, которые скрывает готовая обвязка |
| SDK (createAgentSession + defineTool) для агентных продуктов | Пробовать сейчас | Десять строк до рабочего агента, типизированные кастомные инструменты без возни с MCP, провайдер можно менять |
| CLI как единственный ежедневный ассистент | Пока пропустить | Нет запросов разрешений, изоляция на вас, API до 1.0 ещё меняются |
| Extensions для ограничителей (подтверждение bash, политики) | Пробовать | Задуманное место для слоя разрешений; версионируется вместе с проектом |
| Папка skills | Оставить | Стандарт Agent Skills, ваши существующие skills загружаются без изменений |
| Экспериментальные API (клиент удалённых сессий) | Пропустить | Помечены как экспериментальные, до 1.0 могут измениться |
Сделайте в понедельник
- Установите CLI командой
npm install -g --ignore-scripts @earendil-works/pi-coding-agent, запуститеpi, подключите провайдера командой login и понаблюдайте за панелью стоимости во время одной реальной задачи. - Откройте репозиторий, в котором уже есть AGENTS.md или CLAUDE.md, и проверьте, что pi его подхватывает; сравните первые ответы агента с вашей обычной обвязкой на одном и том же промпте.
- Проведите один диалог, затем сделайте
forkот более раннего узла и пойдите в другом направлении; загляните в~/.pi/agent/sessions/, чтобы увидеть JSONL-файлы и папки проектов. - Напишите
our-agent.tsна двадцать строк: импортируйте createAgentSession, передайте ModelRuntime и SessionManager в памяти, спросите, что находится в текущей папке, и запустите черезnpx tsx. - Добавьте один defineTool, который читает что-то из вашей системы (внутренний API, представление базы данных, CSV), и передайте его в customTools; убедитесь, что агент вызывает его сам на подходящий вопрос.
- Перед любым запуском с bash на важной для вас машине выберите одну из трёх схем изоляции из руководства по контейнеризации и настройте её.
- Набросайте первый extension, который перехватывает вызовы bash и просит подтверждение для разрушительных команд; храните его в папке extensions вашего проекта под контролем версий.
- Один раз просмотрите список открытых issues, чтобы знать, какие части ещё будут меняться, прежде чем строить на них.
Что читать дальше
- Прочитайте документацию SDK, чтобы увидеть полный список опций createAgentSession: набор инструментов, системный промпт через ResourceLoader, менеджеры сессий s8.
- Изучите три схемы изоляции в руководстве по контейнеризации, прежде чем выпускать что-либо, что запускает bash на машине пользователя s5.
- Посмотрите на pi-chat, чтобы увидеть, как те же пять пакетов собраны для автоматизации диалогов, а не для кодинга s6.
- Просмотрите папку packages и прочитайте pi-agent-core отдельно: это самая компактная читаемая версия цикла, который выполняет любая готовая обвязка s2.
- Следите за страницей релизов: v0.84.0 и v0.84.2 вышли в течение двух недель августа, так что ждите заметок об изменениях, которые затрагивают extensions s4.
- Используйте открытые issues как карту того, что остаётся экспериментальным, начиная с клиента удалённых сессий s7.
- Переиспользуйте skills, которые вы уже написали для других инструментов: папка skills в pi следует стандарту Agent Skills s3.
Источники
- pi: the agent toolkit (repository), Earendil Works. Зачем читать: README со списком пакетов, числом звёзд и форков и лицензией MIT.
- pi monorepo packages, Earendil Works. Зачем читать: пять пакетов рядом, самый быстрый способ увидеть, за какой слой отвечает каждый.
- pi-coding-agent package README, Earendil Works. Зачем читать: команда установки, инструменты по умолчанию, сессии и четыре механизма расширения.
- pi releases, Earendil Works. Зачем читать: темп релизов и changelog линейки v0.84.
- pi containerization guide (isolation patterns), Earendil Works. Зачем читать: три схемы изоляции, которые нужно применить, прежде чем включать bash там, где это важно.
- pi-chat: the same bricks applied to conversation automation, Earendil Works. Зачем читать: второй продукт из тех же пакетов, помогает оценить их переиспользуемость.
- pi open issues, Earendil Works. Зачем читать: актуальный список того, что нестабильно или экспериментально в текущей версии.
- pi-coding-agent SDK documentation (createAgentSession options), Earendil Works. Зачем читать: точные названия опций createAgentSession, defineTool и менеджеров сессий.
FAQ
Может ли pi уже сегодня заменить мой ежедневный кодинг-агент?
Не как готовая замена. В нём нет запросов разрешений, изоляция на вас, а версия до 1.0 с примерно сотней открытых issues. Оставьте текущую обвязку для работы и запускайте pi рядом.
Нужен ли MCP, чтобы дать pi кастомный инструмент?
Нет. defineTool принимает имя, описание, типизированную схему параметров и функцию execute, а инструмент передаётся в createAgentSession через customTools. Он ведёт себя как встроенный инструмент, без отдельного процесса и протокола.
Будут ли работать мои AGENTS.md, CLAUDE.md и skills?
Да. CLI автоматически загружает AGENTS.md или CLAUDE.md из вашего проекта, а его папка skills следует стандарту Agent Skills, так что существующие skills загружаются без изменений.
Почему по умолчанию только четыре инструмента?
read, write, edit и bash это весь набор по умолчанию, гораздо меньше, чем у агентов на рынке, и проект подаёт это как осознанный выбор. Всё остальное добавляется намеренно через customTools или extension.
AIDive