Pushary

Notificações push e aprovações com intervenção humana para agentes de IA: faça uma pergunta durante a execução e receba a resposta direto na tela de bloqueio do celular.

Documentação

Pushary Agent Skill

Notificações push e humano-no-circuito para agentes de IA. Aprove pelo seu celular.
Começar  ·  Diretório de skills  ·  Reportar um bug

MIT License skills.sh npm PyPI Smithery Glama score

Comece aqui

Experimente uma aprovação sem se cadastrar → conecte uma página aberta no celular → aprove ou recuse → veja o agente continuar ou parar. Esta demonstração no navegador usa polling e estado temporário, não entrega push real nem o ledger de produção.

O que você quer construirComece com
Notificações e perguntas para um agente de codificaçãoAs instruções de configuração abaixo
Uma aprovação de ferramenta obrigatória no Vercel AI SDKExemplo executável com AI SDK
Um fluxo LangGraph que ramifica com base em uma decisão humanaExemplo executável com LangGraph
Outro framework de agentesTodas as integrações Pushary

A skill e os adaptadores são licenciados sob MIT. A entrega hospedada no celular exige uma conta Pushary; incorporar aprovações para seus próprios usuários exige acesso Partner. Os dois exemplos de framework também rodam localmente com respostas simuladas e sem credenciais.

Se o Pushary ajudou você, dê uma estrela neste repositório. Quer ajudar? Issues públicas e patches são bem-vindos.


O Pushary permite que seu agente de codificação envie atualizações de tarefas e peça uma decisão no seu celular. Hooks de host compatíveis também impõem aprovações antes de uma ação ser executada.

A entrega hospedada exige um plano Pushary pago. Perguntas e notificações via MCP funcionam com qualquer cliente compatível; aprovações obrigatórias dependem da integração do host.

Como Funciona

AI Agent  ->  MCP Protocol  ->  Pushary API  ->  Push Notification  ->  Your Phone

O Pushary é um servidor MCP que conecta seu agente de codificação de IA a notificações push. O agente chama as ferramentas do Pushary pelo Model Context Protocol, e você recebe notificações instantaneamente em qualquer dispositivo.

Três tipos de pergunta - confirmações sim/não, múltipla escolha e texto livre. Seu agente escolhe o tipo certo para cada situação.

Notificações com contexto rico - os agentes podem incluir alterações de arquivos, detalhes de erros e próximos passos sugeridos em uma página de detalhes que você vê ao tocar na notificação.

Identificação do agente - quando você executa vários agentes, cada notificação mostra qual agente está perguntando, para você sempre saber a quem está respondendo.

Hooks de permissão - encaminhe os prompts de aprovação de ferramentas do Claude Code por notificações push para que você possa aprovar ou negar pelo celular.


Configuração pessoal: celular primeiro

Execute a configuração de pareamento no terminal do seu agente:

npx pushary@latest setup

Instale o Pushary no seu celular, escaneie o QR ou abra o link impresso, compare as impressões digitais e aprove. A configuração então ajusta as ferramentas do agente selecionado, hooks compatíveis e a skill. Você não precisa copiar uma chave de API primeiro. Contas pessoais exigem um plano pago. Credenciais existentes são reutilizadas.

Verifique a configuração:

npx pushary@latest doctor

Peça ao seu agente uma pergunta de teste inofensiva. Confirme se o dispositivo pretendido a recebe e se a resposta retorna para a mesma tarefa.

Especificamente para o Hermes:

npx pushary@latest setup --agents hermes

Isso instala o plugin nativo no interpretador do Hermes e o configura. O plugin fornece ferramentas de notificação, pergunta, espera, cancelamento e escopo, além de ferramentas de inscrição Partner e perguntas de clientes. Seus parâmetros usam snake_case; use a skill do Hermes, não os nomes de parâmetros MCP. O transporte de aprovação nativo preserva a sessão do Hermes e as aprovações permanentes.

Notch do Mac e outras superfícies de resposta

Instale o Pushary para Mac, entre com a mesma conta pessoal e conecte seus agentes pelo aplicativo. O notch oferece controles de confirmação, escolha, texto e conjuntos de perguntas com suporte a teclado. Mantenha o aplicativo em execução para presença e entrega; verifique uma pergunta inofensiva lá e, depois, use o fallback do celular quando estiver longe do Mac.

SuperfícieRespostas
CelularConfirmação, escolha e texto no aplicativo. Notificações de confirmação compatíveis expõem aprovar/negar na tela de bloqueio; escolhas arbitrárias e texto abrem o aplicativo.
Notch do MacPerguntas de conta pessoal, incluindo resposta por teclado. Nenhuma caixa de entrada de cliente Partner é fornecida atualmente.
SlackBotões, menus de escolha e modais de texto quando a integração e o destinatário estão configurados.
NavegadorFallback de página de decisão e notificações do navegador quando a permissão está habilitada.

A entrega segue suas configurações e presença. push_first usa presença, push_only solicita push a cada vez, notify_only mantém decisões no cliente atual e terminal_only evita push. Uma chamada de API bem-sucedida por si só não prova que um dispositivo exibiu a solicitação.

Configuração Partner: seus próprios clientes

O pareamento pessoal conecta você, o operador. Integrações Partner inscrevem cada cliente do seu aplicativo por meio de um link de conexão com escopo e endereçam decisões usando seu ID de cliente estável. Os clientes usam o fluxo de inscrição móvel; não encaminhe as aprovações deles para sua caixa de entrada pessoal no Mac nem compartilhe uma chave de API do operador.

Comece com o guia de integração Partner e depois um exemplo de agente Mastra, exemplo com AI SDK ou exemplo com LangGraph. As ferramentas escolhem confirmação, escolha ou texto. Aprovar uma ação e fornecer uma resposta são operações diferentes; uma resposta em texto dizendo "sim" não é permissão para executar outra ferramenta.

Fallbacks de navegador e manuais

Para pareamento no navegador:

npx pushary@latest setup --connect browser

Para um cliente que precisa de configuração MCP manual, obtenha sua chave no painel do Pushary e configure:

{
  "mcpServers": {
    "pushary": {
      "url": "https://pushary.com/api/mcp/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Mantenha a chave privada. Instale a skill com npx skills add Pushary/pushary-skill se o cliente suportar skills.sh. O MCP manual fornece perguntas e notificações cooperativas; aprovações obrigatórias exigem os hooks de host/integração de runtime compatíveis.

Usuários do Claude Code podem alternativamente instalar este repositório como um plugin:

/plugin marketplace add Pushary/pushary-skill
/plugin install pushary

Esse caminho lê PUSHARY_API_KEY do ambiente. Escolha um único caminho de instalação: instalar o plugin sobre hooks do Claude instalados via CLI pode executar hooks duas vezes. Use npx pushary@latest clean antes de trocar de caminho.


Configuração: Lovable

Lovable é um construtor de aplicativos hospedado, então não há etapa de instalação local (npx skills add não se aplica). Você conecta o servidor MCP na interface do Lovable e depois cola a skill no Knowledge do Lovable para que o agente a use por conta própria.

1. Conecte o servidor MCP. No Lovable, vá em Settings -> Connectors -> Personal connectors (planos Lovable pagos), clique em New MCP server, defina a URL como https://pushary.com/api/mcp/mcp, escolha Bearer token e cole sua chave de API (pk_xxx.sk_xxx).

2. Adicione a skill ao Knowledge. O Lovable não pode instalar skills via npx, então cole as orientações da skill em Settings -> Knowledge. Use a versão condensada SKILL-LITE.md como fonte. Isso faz o agente do Lovable notificar você quando um build termina e perguntar antes de mudanças arriscadas, sem você precisar solicitar a cada vez.

O Lovable recebe apenas notificações e perguntas (sem gate obrigatório, pois não tem hook de permissão). Passo a passo completo: Guia do Lovable.


Configuração: Claude Chat e Cowork

Para Claude Chat ou Claude Code, use o Pushary para Claude. No Chat, abra Customize > Plugins > Add > Add marketplace, adicione https://github.com/Pushary/claude-plugin e instale Pushary for Claude. No Claude Code, execute /plugin marketplace add Pushary/claude-plugin e depois /plugin install pushary@pushary-claude-plugin.

Para o Cowork, o plugin Pushary for Cowork existente continua disponível. Adicione https://github.com/Pushary/cowork-plugin como marketplace e instale Pushary for Cowork. O Cowork também suporta instruções permanentes em Settings > Cowork. Os identificadores de skill existentes do plugin, marketplace e pushary-cowork são preservados.

Ambos os pacotes usam o conector OAuth público e a mesma skill compartilhada. Conecte o Pushary pela aba Connectors do plugin no Chat ou Cowork, ou /mcp no Claude Code, e entre com a mesma conta Pushary usada no seu celular ou Mac. Nenhuma CLI ou chave de API é necessária para nenhum dos pacotes.

Se o conector estiver ausente, adicione https://pushary.com/api/mcp/mcp em Customize > Connectors > Add custom connector e deixe os campos OAuth Client ID e Secret vazios. Habilite o Pushary na conversa, faça uma pergunta de teste inofensiva e verifique se sua resposta retorna ao Claude.

Esses pacotes fornecem perguntas e notificações e não instalam hooks de permissão nativos. Para hooks de aprovação no Claude Code, use a configuração do Claude Code acima. Escolha um caminho de instalação por aplicativo para evitar conectores Pushary duplicados. Guia completo do Claude.


Ferramentas

A skill orienta estas ferramentas MCP:

FerramentaDescrição
send_notificationEnvia uma notificação push com contexto rico opcional (alterações de arquivos, erros, próximos passos)
ask_userPergunta ao usuário via push - sim/não, múltipla escolha ou texto livre
wait_for_answerLong-poll pela resposta do usuário a uma pergunta
cancel_questionCancela uma pergunta pendente que não é mais relevante
list_sessionsVisualização somente leitura das suas sessões de agente ativas e perguntas pendentes
propose_scopeRatifica o limite de uma execução: globs de arquivos, aplicados em hosts compatíveis, ou uma promessa registrada quando a execução não altera arquivos

Documentação completa das ferramentas com parâmetros, exemplos e diretrizes de uso está em skills/pushary/SKILL.md.

Humano no Circuito

O agente pode pedir decisões via push e esperar sua resposta:

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

Suporta três tipos de pergunta:

  • Confirm - decisões binárias sim/não
  • Select - escolha entre 2 a 6 opções
  • Input - resposta em texto livre

Leia answered, status e handoffAction (ou nextAction) do resultado da ferramenta. Faça polling apenas conforme orientado; cancele uma pergunta ativa antes de passá-la para outra superfície e honre qualquer resposta vencedora. Expiração e esperas seguem a política do servidor. Silêncio não é aprovação, e uma resposta atrasada não pode reiniciar uma rodada do agente já encerrada.

Pacotes

PacoteRegistroDescrição
pusharynpmA CLI do Pushary: configuração, hooks de permissão e doctor. Também publicada como @pushary/agent-hooks, o mesmo pacote
hermes-plugin-pusharyPyPIPlugin nativo do Hermes Agent

Agentes Compatíveis

Funciona com qualquer agente que suporte skills.sh ou o Model Context Protocol:

Publicando a entrada no registro MCP

server.json não é publicado ao fazer merge. O registro MCP serve um registro por versão, então uma edição aqui não alcança ninguém até que a nova versão seja enviada ao registro, e o texto antigo continua sendo o que todo agente lê.

Caminho do dia a dia: aumente version em server.json, faça merge em main e depois sincronize o espelho público da skill. O workflow de release dele publica a nova entrada no registro. O fluxo de trabalho de release publica a partir do repositório público Pushary para que o GitHub OIDC possa comprovar a propriedade do namespace io.github.Pushary/pushary. Verifique o fluxo de trabalho e o resultado do registro após o release.

Fallback manual, a partir deste diretório:

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

Verifique o que o registro realmente serve, que é o único número que importa:

curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=pushary"

Esse endpoint retorna todas as versões, da mais antiga para a mais recente. Leia a entrada cujo _meta."io.modelcontextprotocol.registry/official".isLatest é true; a primeira linha da lista é o registro mais antigo, não o atual.

Contribuindo

Contribuições são bem-vindas! Por favor, leia o guia de contribuição antes de enviar um pull request.

Segurança

Se você descobrir uma vulnerabilidade de segurança, por favor, reporte-a de forma responsável. Veja SECURITY.md para detalhes.

Financiamento

Este projeto é totalmente financiado pela RalphNex OU, uma agência de desenvolvimento de software estoniana.

Licença

MIT - Copyright (c) 2025 RalphNex OU