Perplexity запустила pplx — поисковый ИИ-инструмент для терминала
Компания Perplexity выпустила pplx — официальный консольный клиент для своего Search API. Инструмент возвращает подтверждённые результаты поиска и извлечённый текст страниц — всё в формате JSON. Согласно документации, он рассчитан как на людей, так и на кодинг-агентов в равной степени. Это не чат-клиент: здесь нет диалогового режима, выбора модели или синтезированного ответа. В отличие от веб-версии Perplexity, pplx не пытается дать готовый ответ на естественном языке — он просто возвращает структурированные данные.
Инструмент предлагает ровно две команды. pplx search web выполняет поиск в интернете в реальном времени. pplx content fetch загружает страницу по URL и возвращает очищенный текст без лишней разметки. Это минималистичный, но законченный набор для интеграции поисковых возможностей Perplexity в скрипты, пайплайны и автономных агентов.
Контракт использования заслуживает отдельного внимания. Согласно официальной спецификации pplx-cli Agent Skill, успешное выполнение означает код возврата 0 и ровно один JSON-объект в стандартном выводе (stdout). Поиск возвращает структуру с полями {hits: [{url, title, domain, snippet, …}], total, saved_to?}. Каждый hit содержит URL, заголовок, домен, сниппет и дополнительные метаданные, что позволяет сразу обрабатывать результаты без парсинга HTML.
Любая ошибка завершается кодом 1 с пустым stdout. Единственный JSON-объект с описанием ошибки уходит в stderr в формате {«error»:{«code»,»message»,»command»,»hint»?}}. Документированные коды ошибок включают AUTHENTICATION, UNKNOWN_ARGUMENT, ARGUMENT_ERROR и BAD_REQUEST. Спецификация предупреждает, что список не исчерпывающий, поэтому вызывающему коду следует разветвляться по значению error.code, а не полагаться на фиксированный набор. Такой подход упрощает отладку при автоматическом использовании — например, агент может по коду AUTHENTICATION инициировать перевыпуск токена.
Анализ скрипта install.sh раскрывает детали установки. Скрипт загружает manifest.json из последнего релиза, извлекает тег и версию, после чего привязывает все последующие загрузки к этому тегу. Это сделано намеренно — чтобы избежать состояния гонки при одновременной публикации нового релиза. Если бы тег не фиксировался, пользователь мог бы получить manifest от одной версии, а бинарник — от другой.
Затем скрипт загружает SHA256SUMS и бинарник под целевую платформу, проверяет контрольную сумму и устанавливает файл в ~/.local/bin/pplx. Права суперпользователя (sudo) не требуются. Чек об установке записывается в ~/.config/pplx/pplx-receipt.json — но только после того, как установленный бинарник успешно запустится хотя бы один раз. Таким образом, в системе не остаётся «мусорных» записей о неудавшихся установках.
Поддержка платформ ограничена тремя конфигурациями: macOS на Apple Silicon, Linux x86_64 и Linux arm64. Любая другая комбинация завершается ошибкой с соответствующим сообщением. Сборок для Windows или Intel-версии macOS не предусмотрено. Это означает, что разработчики на Windows пока не могут использовать pplx напрямую — им потребуется WSL или контейнер.
Наиболее интересная для агентов возможность — управление токенами вывода. Флаг —output-dir сохраняет полный набор результатов в JSON-файл. Флаг —stdout-preview[=
Спецификация прямо предупреждает о подводном камне: —stdout-preview не работает без указания директории для сохранения. Урезание происходит только тогда, когда результат также сохраняется через —output-dir или переменную окружения $PPLX_OUTPUT_DIR. При использовании в одиночку флаг возвращает полный вывод, а каждый hit может занимать несколько килобайт. Это важно помнить при настройке автоматизированных пайплайнов.
Сохранённые результаты поиска попадают в {dir}/web/{rand}.json, а результаты загрузки страниц — в {dir}/fetch/{rand}.json. Файлы записываются только после успешного запроса. Переменная PPLX_OUTPUT_DIR задаёт рабочий каталог по умолчанию, чтобы флаг —output-dir не приходилось повторять в каждом вызове. Это удобно при интеграции в CI/CD-конвейеры или долгоживущие агентские процессы.
Для команды content fetch спецификация добавляет проверку корректности, а не стоимости. Документация рекомендует проверять поля error и is_paywall в выводе перед тем, как доверять содержимому. Флаг —html добавляет поле raw_html с «сырым» HTML, полученным через живой краулер, а —no-cache форсирует загрузку без кэша. Это гарантирует, что агент всегда работает со свежими данными, даже если страница недавно запрашивалась.
Источники: perplexityai/perplexity-cli, pplx-cli SKILL.md, api-platform-developers, Perplexity API pricing, Rate limits and usage tiers, Search API quickstart.
Michal Sutter — специалист по науке о данных со степенью магистра в области Data Science Университета Падуи. Обладая глубокими знаниями в статистическом анализе, машинном обучении и инженерии данных, Michal специализируется на преобразовании сложных наборов данных в практические инсайты.
По материалам MarkTechPost
