Feito para agentes · MCP · CLI · OpenAPI

O plano de controle dos seus agentes de webhook

Veja e opere todas as máquinas skillhook em um só lugar: webhooks, tarefas de agentes, as perguntas que os agentes aguardam, integridade e estatísticas, com reexecução, execuções remotas e URLs de webhook hospedadas que guardam as entregas enquanto uma máquina dorme.

Um comando em uma máquina com o skillhook instalado; o painel mostra o código.

As máquinas buscam

A nuvem nunca chama uma máquina.

72 h

Uma entrega hospedada espera por uma máquina que dorme.

56 ferramentas

As mesmas operações por MCP, REST e CLI.

RFC 9457

Todo erro tem um código e um ID de requisição.

Como funciona

Um pacote na máquina, uma conexão de saída

O skillhook transforma uma máquina em um endpoint de webhook que executa Agent Skills. O Skillhook Cloud é onde cada uma dessas máquinas se reporta.

01
Instalar o skillhook e parear
npm install -g @meterapp/skillhook e depois o comando de pareamento que o painel mostra. A máquina mantém um long-poll de saída para a nuvem e não abre nenhuma porta. O modo de observação reporta; o modo de controle permite que a nuvem enfileire comandos, e as listas de permissão e bloqueio da própria máquina têm a última palavra.
02
Webhook entra, agente trabalha
Um remetente envia para a URL da própria máquina ou para uma URL hospedada. A máquina verifica a assinatura, executa o SKILL.md da skill com Claude Code, Codex ou um comando de shell e reporta a tarefa: status, resultado, custo, saída e a pergunta em que parou, se houver.
03
Ver e agir: painel, API, MCP, CLI
Todas as máquinas da organização em um só lugar. Responda ao agente, reenvie uma entrega, execute ou teste uma skill, leia uma verificação de integridade com falha e a correção sugerida. Cada ação é um comando que a máquina recebe na próxima sincronização; ele aguarda até 10 minutos por uma máquina offline.

O que você vê

A visão geral, como o painel a mostra

As últimas 24 horas em todas as máquinas e, em seguida, o que precisa de uma pessoa primeiro.

Dados de exemplo
Máquinas online
3/3
Todas as máquinas estão consultando o serviço
Precisa de uma pessoa
1
Agentes estão esperando por uma pessoa
Tarefas
42
39 concluídas · 2 com falha · $4.12
Entregas
118
116 aceitas · 2 rejeitadas
Tarefas
Mais recentes primeiro, todas as máquinas.
triagemac-mini

Webhook do GitHub · aguardando há 4 min · “Fechar também as duas issues duplicadas?”

Precisa de uma pessoa
deploybuild-box

Webhook da CI · 2 min 14 s · $0.31

Bem-sucedidaConcluído
nightly-reportbuild-box

Agendamento · em execução há 38 s

Em execução

URLs de webhook hospedadas

Uma URL para uma máquina que nem sempre está acordada

Uma máquina em um notebook, atrás de um NAT ou dormindo à noite não tem um endereço que um remetente consiga alcançar. Uma URL de webhook hospedada neste serviço aceita o webhook em nome dela.

A entrega é selada com AES-256-GCM no momento em que chega e espera até 72 horas pela próxima sincronização da máquina. A máquina verifica a assinatura do remetente com o próprio segredo: a nuvem nunca guarda segredos de webhook, e uma entrega é excluída assim que a máquina confirma o recebimento.

A verificação de URL do Slack é respondida na hora, então um app do Slack pode apontar para uma máquina que ainda não está acordada.

Três passos
Do painel à primeira entrega.
Ativar

URLs hospedadas, a skill, ativar. O painel mostra a URL; ativar de novo gera uma nova, e a antiga deixa de funcionar.

Colar a URL no remetente

GitHub, Sentry, Slack, Zapier, qualquer coisa que envie JSON. O segredo do remetente fica na máquina, como acontece com uma URL direta.

As entregas esperam enquanto a máquina dorme

Cada uma é selada ao chegar e guardada por até 72 horas. Na próxima sincronização, a máquina a recolhe, verifica a assinatura e executa a skill.

Histórico e reexecução de webhooks

Cada webhook, guardado e reexecutável

Cada requisição que uma máquina recebeu fica registrada: aceita, rejeitada com o motivo e o status HTTP, ignorada por um filtro, deduplicada. O registro permanece enquanto a organização existir; o corpo, a parte de que um reenvio precisa, permanece pelo período do plano: 7 dias no Free, até 365 dias no Enterprise.

Pesquise pelo ID de entrega do remetente, pelo motivo, pelo caminho, pelo endereço ou por um intervalo de tempo. Reexecute pelo painel, pela API, pelo servidor MCP ou pela CLI: pela skill como ela está agora, ignorando as verificações em que falhou, ignorando seus filtros.

Ou em outro lugar: o mesmo corpo em outra máquina ou por outra skill, como uma nova execução. E, pela CLI, envie um webhook armazenado para qualquer URL: um servidor de staging, uma skill reescrita, um teste.

Quatro passos
De um webhook com falha a uma skill corrigida.
Encontrar

Entregas e, depois, o ID que o remetente mostra ou o motivo que a máquina deu; um intervalo de tempo restringe a busca. list_deliveries {q, since, until} faz o mesmo para um agente.

Ler o motivo

O resultado, o status HTTP, o motivo, os cabeçalhos com dados ocultados e o corpo, exibido como texto e nunca renderizado.

Reexecutar

Pela skill como ela está agora; force para ignorar uma verificação em que falhou, skip_filters para ignorar os filtros when. Um botão no painel, uma chamada na API ou no MCP, um comando no terminal.

Ou executar em outro lugar

Em outra máquina ou por outra skill, pela página da entrega ou com replay_delivery {machine, skill}; ou, pelo terminal, use skillhook send para enviar o corpo armazenado a qualquer URL.

O que as pessoas executam nele

Um webhook entra, uma tarefa sai, uma pessoa só onde é necessária

Nosso próprio loop de autocorreção e seis playbooks completos, cada um com o prompt que o configura com o seu agente e o SKILL.md que ele executa. Rotulados com honestidade: sem depoimentos, sem números inventados.

Our own use
A Sentry alert posts to a hosted URL. The machine collects it, the skill finds the cause, lands a small tested fix through a pull request, checks it in production, and asks a person only for what is theirs.
Trigger: A Sentry alert, and a sweep every three hoursLands alone: A small fix with a test that failed before itAsks a person for: Migrations, environment, billing, the loop itself
A worked playbook
Notes become actionable tasks. Your agent starts authorized work, reports what it completed and what is still running, and pauses for your input or approval. See an illustrative ten-task recap and the Granola notes and follow-ups playbook.
Trigger: Granola's note.generated webhookBefore sending: Approve the draft and exact recipientsAsks a person when: An owner or a due date is unclear
A worked playbook
Every new issue gets a run. A small, well-specified one gets a fix on a branch and a pull request; the rest get a triage comment with findings and questions. Design questions go to a person, and nothing merges without one.
Trigger: GitHub's issues webhook, action openedMerges: Nothing without a personAsks a person for: Design questions, with the options as buttons
A worked playbook
A customer writes in. The skill looks at the logs, Sentry and the database before it drafts an answer; it replies through Intercom when the answer is certain, and otherwise leaves an internal note and asks a person in the inbox: send the draft, edit it, or escalate.
Trigger: Intercom's conversation webhooksReplies alone when: The answer is certain from what it foundOtherwise: An internal note, and the draft as a choice in the inbox
A worked playbook
A dispute arrives with a deadline. The skill collects the customer, the invoices, the access and usage logs, the correspondence and the delivery records, writes the evidence up, submits it through the API when it is complete, and asks a person first when it is thin or the amount is large.
Trigger: Stripe's charge.dispute.created eventSubmits alone when: The evidence is complete and the amount smallAsks a person when: The evidence is thin or the amount is large
A worked playbook
A new lead gets a first reply with real context about what they asked. Every later message in the thread gets an answer, deduplicated by message id, the CRM is updated, and a person is asked before any pricing exception, promise or legal question. It stops when a person says so.
Trigger: A form, CRM or inbound-email webhookDeduplicated by: The message id, in skillhook and in the CRMAsks a person before: Pricing exceptions, promises and legal questions
A worked playbook
Every webhook a machine received is on record in the cloud, with the reason when it did not run. Filter them, replay one through the skill as it is now, run its body on another machine or skill, send it to any other location from the CLI, and test a SKILL.md before it is saved.
On record: Every delivery, with its outcome and reasonBody kept: 7 to 365 days, by planReplay: As the skill is now; force and skip_filters when needed

Agentes são clientes de primeira classe

Tudo o que o painel faz, como operações que um agente pode chamar

Um único catálogo atende o servidor MCP hospedado, a API REST e a CLI, então um agente vê o que uma pessoa vê e age da mesma forma: por meio de comandos que a máquina ainda verifica.

O servidor hospedado em /api/mcp: Streamable HTTP, sem estado, uma chave bearer. Uma chave recebe as ferramentas que seu escopo permite, e describe_cloud diz a um agente por onde começar.
POST https://skillhook.dev/api/mcp
O skillhook 0.7.0 executa o catálogo inteiro a partir de um terminal: máquinas, tarefas, respostas, reexecuções, estatísticas. Entre uma vez; a chave fica em ~/.skillhook/.env e nunca é exibida.
skillhook cloud answer_job <job> "yes" --option yes
Todas as rotas REST e todas as operações do catálogo, com seus schemas, em um único documento. Gere um cliente ou importe-o no Postman ou em um framework de agentes.
GET https://skillhook.dev/openapi.json
O que é o serviço e como usá-lo, escrito para modelos; llms-full.txt é a versão longa. agents.md é o guia de operação para um agente que tem uma chave.
curl https://skillhook.dev/llms.txt
O repositório do skillhook é o plugin. Ele registra dois servidores MCP, esta máquina e a organização, e uma skill que ensina o agente a fazer a triagem e operar a frota.
/plugin install skillhook@meterapp-skillhook
Um GPT personalizado importa openapi.json com autenticação Bearer e recebe todas as operações como ações. Conectores de chat com login, para claude.ai e ChatGPT, estão a caminho.
Import https://skillhook.dev/openapi.json

O que precisa de uma pessoa

Os agentes perguntam; a nuvem garante que alguém ouça

Os agentes param e perguntam. Uma skill que precisa de uma decisão termina a execução com uma pergunta; a caixa de entrada do painel a lista com as opções como botões, um alerta é enviado, e a resposta é entregue à execução que aguarda ou retoma a sessão do agente com ela.

Responda pelo painel, pela API, pelo servidor MCP ou pela CLI. Cada alerta é aberto uma vez por causa; dispense-o manualmente pelo painel ou com dismiss_alert.

Quatro alertas
Cada um indica a máquina, a tarefa ou a verificação a que se refere.
Um agente precisa de uma pessoaneeds_human

Uma skill terminou a execução com uma pergunta. A tarefa espera na caixa de entrada até que uma pessoa, ou um agente com uma chave, a responda.

Uma máquina ficou offlinemachine_offline

Uma máquina parou de consultar. Os comandos enfileirados para ela esperam 10 minutos; as entregas hospedadas esperam 72 horas.

Uma tarefa falhoujob_failed

Uma tarefa falhou. O tipo de falha, a saída e os artefatos estão na tarefa; reexecute-a assim que a causa for corrigida.

Uma verificação de integridade está falhandohealth_failing

Uma verificação de integridade em uma máquina falha. A verificação indica a correção.

CanaisSlackWebhooks assinados (Standard Webhooks)E-mail

Preços

Grátis para algumas máquinas, um plano quando a frota cresce

Todos os planos têm o produto inteiro: painel, API, servidor MCP e CLI. Eles diferem em quantas máquinas, pessoas, URLs hospedadas e entregas comportam.

Free
Uma pessoa, algumas máquinas

US$ 0

  • 2 máquinas, 3 pessoas
  • 3 URLs de webhook hospedadas, 1.000 entregas hospedadas por mês
  • Reexecução, execuções remotas e respostas a agentes
Pro
Uma equipe e sua frota

US$ 29 / mês

  • 10 máquinas, 10 pessoas
  • 25 URLs de webhook hospedadas, 50.000 entregas hospedadas por mês
  • Tudo do Free
Business
Muitas máquinas, muitos remetentes

US$ 99 / mês

  • 50 máquinas, 50 pessoas
  • 250 URLs de webhook hospedadas, 500.000 entregas hospedadas por mês
  • Tudo do Pro

Perguntas frequentes

O que as pessoas perguntam primeiro

Pareie uma máquina e veja o primeiro webhook dela

Grátis para 2 máquinas; um plano quando a frota cresce. Nada para instalar do lado da nuvem.