Pushary: участие человека в работе AI-агентов
Push-уведомления и участие человека в работе AI-агентов. Подтверждайте запросы с телефона.
Начать работу · Каталог Skills · Сообщить об ошибке
Начните здесь
Попробовать подтверждение без регистрации
→ подключите открытую страницу на телефоне → подтвердите запрос или отклоните его → посмотрите, продолжит агент работу или остановится.
В этой демонстрации в браузере используются опрос сервера и временное состояние, а не настоящая доставка push-уведомлений и производственный журнал.
| Что вы хотите создать | С чего начать |
|---|---|
| Уведомления и вопросы для агента, который пишет код | Инструкции по настройке ниже |
| Обязательное подтверждение выполнения инструмента в Vercel AI SDK | Рабочий пример AI SDK |
| Рабочий процесс LangGraph с ветвлением по решению человека | Рабочий пример LangGraph |
| Другой фреймворк для агентов | Все интеграции Pushary |
| Когда агенту следует остановиться и обратиться к человеку, а также как добавить такой шаг в любой фреймворк | Skill pushary-human-in-the-loop |
Skill и адаптеры распространяются по лицензии MIT. Для доставки уведомлений на телефон через хостинг требуется аккаунт Pushary; чтобы встраивать подтверждения в собственное приложение для пользователей, нужен доступ Partner.
Оба примера для фреймворков также запускаются локально с имитацией ответов и без учётных данных.
Если Pushary оказался полезен, поставьте звезду этому репозиторию.
Хотите помочь? Мы будем рады вашим сообщениям о проблемах и исправлениям.
С помощью Pushary ваш агент для написания кода может отправлять обновления о задачах и спрашивать вас о решении на телефоне. Поддерживаемые хуки среды также позволяют требовать подтверждение до выполнения действия.
Для доставки через хостинг требуется платный тариф Pushary. Вопросы и уведомления MCP работают с любым совместимым клиентом; обязательность подтверждений зависит от интеграции со средой.
Как это работает
AI Agent -> MCP Protocol -> Pushary API -> Push Notification -> Your Phone
Pushary — это MCP-сервер, который подключает вашего AI-агента для написания кода к push-уведомлениям. Агент вызывает инструменты Pushary через Model Context Protocol, а вы мгновенно получаете уведомления на любом устройстве.
Три типа вопросов — подтверждение «да/нет», выбор из нескольких вариантов и свободный текстовый ответ. Агент выбирает подходящий тип в зависимости от ситуации.
Уведомления с подробным контекстом — агент может добавить сведения об изменённых файлах, ошибках и рекомендуемых дальнейших шагах. Эти детали отображаются на отдельной странице, которую можно открыть нажатием на уведомление.
Идентификация агента — если вы запускаете несколько агентов, в каждом уведомлении указано, какой именно агент обращается к вам. Так вы всегда знаете, на какой запрос отвечаете.
Хуки разрешений — перенаправляйте запросы Claude Code на подтверждение использования инструмента в push-уведомления, чтобы разрешать или запрещать действия с телефона.
Настройка для личного использования: начните с телефона
Запустите настройку сопряжения в терминале агента:
npx pushary@latest setup
Установите Pushary на телефон, отсканируйте QR-код или откройте указанную ссылку, сравните отпечатки и подтвердите подключение. После этого настройка сконфигурирует инструменты, поддерживаемые хуки и skill для выбранного агента. Сначала копировать API-ключ не нужно. Для личных аккаунтов требуется платный тариф. Если учётные данные уже есть, они будут использованы повторно.
Проверьте настройку:
npx pushary@latest doctor
Попросите агента задать один безопасный тестовый вопрос. Убедитесь, что он приходит на нужное устройство, а ответ возвращается в ту же задачу.
Для Hermes используйте:
npx pushary@latest setup --agents hermes
Команда устанавливает нативный плагин в ~/.hermes/plugins/pushary и включает его с помощью hermes plugins enable pushary и hermes config set. После этого перезапустите Hermes командой hermes gateway restart. Плагин предоставляет инструменты для уведомлений, вопросов, ожидания, отмены, напоминаний и настройки области действия, а также инструменты для регистрации Partner и вопросов клиентов. Параметры используют snake_case; используйте skill для Hermes, а не имена параметров MCP. Нативный механизм подтверждений сохраняет сессию Hermes и постоянные разрешения.
Вырез Mac и другие способы ответить
Установите Pushary для Mac, войдите в тот же личный аккаунт и подключите агентов через приложение. Вырез поддерживает подтверждение, выбор варианта, текстовый ответ и набор вопросов, в том числе с помощью клавиатуры. Оставьте приложение запущенным, чтобы сохранялись доступность и доставка. Сначала проверьте на нём один безопасный вопрос, а затем настройте доставку на телефон на случай, если вас не будет рядом с Mac.
| Способ | Варианты ответа |
|---|---|
| Мобильное устройство | Подтверждение, выбор варианта и текстовый ответ в приложении. В поддерживаемых уведомлениях с запросом подтверждения можно разрешить или запретить действие с экрана блокировки; для выбора произвольного варианта и текстового ответа нужно открыть приложение. |
| Вырез Mac | Вопросы для вошедшего в аккаунт пользователя, на которые можно отвечать с клавиатуры, а также вопросы клиентов Partner, если они подключили Mac через телефон. |
| Slack | Кнопки, меню выбора и текстовые диалоги — если интеграция и получатель настроены. |
| Браузер | Резервная страница для принятия решения и уведомления браузера, если они разрешены. |
Доставка зависит от ваших настроек и статуса доступности. push_first учитывает доступность, push_only каждый раз запрашивает push-уведомление, notify_only оставляет запросы на подтверждение в текущем клиенте, а terminal_only отключает push-уведомления. Сам по себе успешный вызов API не гарантирует, что запрос отобразился на устройстве.
Настройка Partner: собственные клиенты
Личное сопряжение подключает вас — оператора. Интеграции Partner регистрируют клиентов вашего приложения по отдельности через ссылку подключения с заданной областью действия и адресуют запросы на принятие решений по постоянному ID клиента. Клиенты проходят регистрацию через мобильное приложение. Не направляйте их запросы на подтверждение в личный почтовый ящик Mac и не передавайте им API-ключ оператора.
Начните с руководства по интеграции Partner, затем изучите пример агента Mastra, пример AI SDK или пример LangGraph. Инструменты позволяют выбрать подтверждение, вариант ответа или свободный текст. Подтверждение действия и предоставление ответа — разные операции: текстовый ответ «да» не даёт разрешения на выполнение другого инструмента.
Резервный вариант настройки вручную
Если клиент требует вручную настроить MCP, получите ключ в панели управления Pushary и укажите его в конфигурации:
{
"mcpServers": {
"pushary": {
"url": "https://pushary.com/api/mcp/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Храните ключ в секрете. Если клиент поддерживает skills.sh, установите skill командой npx skills add Pushary/pushary-skill. При ручной настройке MCP доступны вопросы и уведомления, работающие по согласованному взаимодействию; для обязательных подтверждений нужна интеграция с поддерживаемыми хуками или средой выполнения.
Пользователи Claude Code могут вместо этого установить этот репозиторий как плагин:
/plugin marketplace add Pushary/pushary-skill
/plugin install pushary
В этом случае плагин получает PUSHARY_API_KEY из переменных окружения. Используйте только один способ установки: если установить плагин поверх хуков Claude, уже добавленных через CLI, хуки могут запускаться дважды. Перед сменой способа выполните npx pushary@latest clean.
Плагин запускает каждый хук через npx. Для хука, который передаёт на телефон предварительный просмотр ответа в реальном времени, это слишком медленно, поэтому плагин его не устанавливает. Чтобы получать предварительный просмотр в реальном времени, выполните настройку командой npx pushary@latest setup. Она устанавливает каждый хук как локальную команду.
Настройка: Lovable
Lovable — это конструктор приложений, работающий через хостинг, поэтому устанавливать его локально не нужно (npx skills add здесь не применяется). Подключите MCP-сервер через интерфейс Lovable, а затем добавьте инструкции skill в Knowledge, чтобы агент самостоятельно ими пользовался.
1. Подключите MCP-сервер. В Lovable откройте Settings -> Connectors -> Personal connectors (доступно на платных тарифах Lovable), нажмите New MCP server, укажите URL https://pushary.com/api/mcp/mcp, выберите Bearer token и вставьте API-ключ (pk_xxx.xxx).
2. Добавьте skill в Knowledge. Lovable не поддерживает установку skills через npx, поэтому вставьте инструкции skill в Settings -> Knowledge. В качестве исходного текста используйте сокращённый файл SKILL-LITE.md. Благодаря этому агент Lovable будет уведомлять вас о завершении сборки и запрашивать подтверждение перед рискованными изменениями — без необходимости каждый раз давать ему такую команду.
В Lovable доступны только уведомления и вопросы: обязательное подтверждение настроить нельзя, поскольку в этой среде нет хука разрешений. Полное руководство: инструкция для Lovable.
Настройка: Claude Chat и Cowork
Для Claude Chat или Claude Code используйте Pushary for Claude. В Chat откройте Customize > Plugins > Add > Add marketplace, добавьте https://github.com/Pushary/claude-plugin и установите Pushary for Claude. В Claude Code выполните /plugin marketplace add Pushary/claude-plugin, затем /plugin install pushary@pushary-claude-plugin.
Для Cowork доступен существующий плагин Pushary for Cowork. Добавьте https://github.com/Pushary/cowork-plugin в качестве marketplace и установите Pushary for Cowork. Cowork также поддерживает постоянные инструкции в разделе Settings > Cowork. Идентификаторы существующего плагина, marketplace и навыка pushary-cowork остаются без изменений.
Оба комплекта используют общедоступный OAuth-коннектор и один и тот же общий навык. Подключите Pushary на вкладке Connectors плагина в Chat или Cowork либо через /mcp в Claude Code и войдите в ту же учётную запись Pushary, что используете на телефоне или Mac. Для обоих комплектов не нужны CLI и API-ключ.
Если коннектор не отображается, добавьте https://pushary.com/api/mcp/mcp в разделе Customize > Connectors > Add custom connector, оставив поля OAuth Client ID и Secret пустыми. Включите Pushary в разговоре, задайте простой тестовый вопрос и убедитесь, что ответ возвращается в Claude.
Эти комплекты позволяют задавать вопросы и отправлять уведомления, но не устанавливают нативные хуки разрешений. Чтобы настроить хуки подтверждения в Claude Code, воспользуйтесь инструкциями выше. Для каждого приложения выберите только один способ установки, чтобы избежать дублирования коннекторов Pushary. Полное руководство по Claude.
Инструменты
Навык описывает следующие инструменты MCP:
| Инструмент | Описание |
|---|---|
send_notification | Отправляет push-уведомление с дополнительным контекстом: изменениями файлов, ошибками и дальнейшими шагами |
ask_user | Задаёт пользователю вопрос через push-уведомление: с ответом «да» или «нет», выбором из нескольких вариантов или свободным текстом |
wait_for_answer | Ожидает ответа пользователя на вопрос, периодически проверяя его наличие |
cancel_question | Отменяет ожидающий ответа вопрос, который больше не актуален |
list_sessions | Предоставляет доступ только для чтения к активным сеансам агента и ожидающим ответа вопросам |
propose_scope | Фиксирует границы выполнения: шаблоны файлов, соблюдение которых обеспечивается на поддерживаемых хостах, или зафиксированное обещание, если в ходе выполнения файлы не изменяются |
Полная документация по инструментам, включая параметры, примеры и рекомендации по использованию, доступна в файле skills/pushary/SKILL.md.
Человек в контуре
Агент может запросить у вас решение через push-уведомление и дождаться ответа:
отправляет push-уведомление на телефон
Вы: нажимаете «JWT tokens»
Агент: продолжает работу над реализацией JWT">
Agent: "Which auth strategy should I use?"
Options: JWT tokens / Session cookies / OAuth2 + PKCE
-> push to your phone
You: tap "JWT tokens"
Agent: proceeds with JWT implementation
Поддерживаются три типа вопросов:
-
Подтверждение — решение «да» или «нет»
-
Выбор — выбор одного из 2–6 вариантов
-
Ввод — ответ в свободной форме
Учитывайте значения answered, status и handoffAction (или nextAction) в результате работы инструмента. Проверяйте наличие ответа только по указанию инструмента. Прежде чем передать вопрос другому интерфейсу, отмените активный вопрос и учитывайте ответ, который был получен первым. Срок действия вопросов и время ожидания определяются политикой сервера. Отсутствие ответа не означает согласия, а поздний ответ не может возобновить завершённый ход агента.
Пакеты
| Пакет | Реестр | Описание |
|---|---|---|
pushary | npm | CLI Pushary: настройка, хуки разрешений и диагностика. Также публикуется под именем @pushary/agent-hooks — это тот же пакет |
hermes-plugin-pushary | PyPI | Нативный плагин Hermes Agent |
Совместимые агенты
Работает с любым агентом, поддерживающим skills.sh или Model Context Protocol:
-
Claude Code (MCP + хуки разрешений)
-
Claude Cowork (пользовательский коннектор + загрузка навыка)
-
Hermes Agent (нативный плагин или MCP)
-
Cursor (MCP)
-
Windsurf (MCP)
-
Lovable (коннектор MCP + навык через Knowledge)
-
OpenAI Codex (MCP)
-
Другие клиенты, поддерживающие удалённые MCP-серверы
Публикация записи в реестре MCP
Запись server.json не публикуется при слиянии изменений. Реестр MCP хранит отдельную запись для каждой версии. Поэтому правки в этом репозитории не попадут к пользователям, пока новая версия не будет опубликована в реестре, а агенты продолжат считывать прежний текст.
Обычный порядок действий: увеличьте значение version в server.json, слейте изменения в main, а затем синхронизируйте общедоступное зеркало навыка. Его workflow релиза опубликует новую запись в реестре.
Workflow релиза публикует пакет из общедоступного репозитория Pushary, чтобы GitHub OIDC мог подтвердить право собственности на пространство имён io.github.Pushary/pushary. После релиза проверьте workflow и результат публикации в реестре.
Запасной вариант — выполнить команды вручную из этой директории:
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
./mcp-publisher login github
./mcp-publisher publish
Проверьте, какие данные фактически отдаёт реестр: важны только они.
curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=pushary"
Эта конечная точка возвращает все версии в порядке от самой старой к самой новой. Найдите запись, в которой _meta."io.modelcontextprotocol.registry/official".isLatest имеет значение true: первая строка списка соответствует самой старой записи, а не текущей версии.
Участие в разработке
Мы рады вашему участию! Перед отправкой pull request ознакомьтесь с руководством для участников.
Безопасность
Если вы обнаружили уязвимость в системе безопасности, сообщите о ней ответственным образом. Подробности приведены в файле SECURITY.md.
Финансирование
Проект полностью финансирует RalphNex OU — эстонская компания по разработке программного обеспечения.
Лицензия
MIT — Copyright (c) 2025 RalphNex OU