Pensado para agentes · MCP · CLI · OpenAPI

El plano de control de sus agentes de webhooks

Vea y opere todas las máquinas skillhook en un solo lugar: webhooks, tareas de agentes, las preguntas a la espera de respuesta, estado de salud y estadísticas, con reproducción, ejecuciones remotas y URL de webhook alojadas que retienen las entregas mientras una máquina duerme.

Un comando en una máquina con skillhook instalado; el panel muestra el código.

Las máquinas consultan

La nube nunca llama a una máquina.

72 h

Una entrega alojada espera a una máquina dormida.

56 herramientas

Las mismas operaciones por MCP, REST y la CLI.

RFC 9457

Cada error tiene un código y un id de solicitud.

Cómo funciona

Un paquete en la máquina, una conexión saliente

skillhook convierte una máquina en un endpoint de webhooks que ejecuta Agent Skills. Skillhook Cloud es donde informan todas esas máquinas.

01
Instale skillhook y vincule
npm install -g @meterapp/skillhook y, después, el comando de vinculación que muestra el panel. La máquina mantiene un long-poll saliente hacia la nube y no abre ningún puerto. El modo observación informa; el modo control permite que la nube ponga comandos en cola, y las listas de permitidos y denegados de la propia máquina tienen la última palabra.
02
Entra un webhook, sale un agente
Un emisor envía a la URL propia de la máquina o a una alojada. La máquina comprueba la firma, ejecuta el SKILL.md de la skill con Claude Code, Codex o un comando de shell, e informa de la tarea: estado, resultado, coste, salida y la pregunta en la que se detuvo, si la hay.
03
Ver y actuar: panel, API, MCP, CLI
Todas las máquinas de la organización en un solo lugar. Responda al agente, reenvíe una entrega, ejecute o pruebe una skill, consulte una comprobación de estado fallida y su solución. Cada acción es un comando que la máquina recoge en su próxima sincronización; si la máquina está sin conexión, el comando espera hasta 10 minutos.

Lo que verá

La vista general, tal como la muestra el panel

Las últimas 24 horas en todas las máquinas y, después, lo que primero necesita a una persona.

Datos de ejemplo
Máquinas en línea
3/3
Todas las máquinas están sondeando
Necesita a una persona
1
Hay agentes esperando a una persona
Tareas
42
39 correctas · 2 fallidas · $4.12
Entregas
118
116 aceptadas · 2 rechazadas
Tareas
Las más recientes primero, todas las máquinas.
triagemac-mini

Webhook de GitHub · esperando 4 min · «¿Cerrar también las dos incidencias duplicadas?»

Necesita a una persona
deploybuild-box

Webhook de CI · 2 min 14 s · $0.31

CorrectaCompletada
nightly-reportbuild-box

Programación · en ejecución desde hace 38 s

En ejecución

URL de webhook alojadas

Una URL para una máquina que no siempre está despierta

Una máquina en un portátil, detrás de un NAT o dormida por la noche no tiene una dirección a la que un emisor pueda llegar. Una URL de webhook alojada en este servicio acepta el webhook en su nombre.

La entrega se cifra con AES-256-GCM en cuanto llega y espera hasta 72 horas a la siguiente sincronización de la máquina. La máquina verifica la firma del emisor con su propio secreto: la nube nunca guarda secretos de webhooks, y una entrega se elimina en cuanto la máquina confirma su recepción.

La verificación de URL de Slack se responde al instante, de modo que una aplicación de Slack puede apuntar a una máquina que aún no está despierta.

Tres pasos
Del panel a la primera entrega.
Actívela

URL alojadas, la skill, activar. El panel muestra la URL; activarla de nuevo crea una nueva y la anterior deja de funcionar.

Pegue la URL en el emisor

GitHub, Sentry, Slack, Zapier o cualquier cosa que envíe JSON. El secreto del emisor permanece en la máquina, igual que con una URL directa.

Las entregas esperan mientras la máquina duerme

Cada una se cifra al llegar y se retiene hasta 72 horas. En su siguiente sincronización, la máquina la recoge, comprueba la firma y ejecuta la skill.

Historial y reproducción de webhooks

Cada webhook, conservado y reproducible

Cada solicitud que recibe una máquina queda registrada: aceptada, rechazada con el motivo y el estado HTTP, omitida por un filtro o deduplicada. El registro se conserva mientras exista la organización; el cuerpo, la parte que necesita un reenvío, se conserva durante el periodo del plan: 7 días en Free, hasta 365 días en Enterprise.

Busque por el id de entrega del emisor, el motivo, la ruta, la dirección o un intervalo de tiempo. Reproduzca desde el panel, la API, el servidor MCP o la CLI: a través de la skill tal como está ahora, saltándose las comprobaciones que falló y sus filtros.

O en otro lugar: el mismo cuerpo en otra máquina o a través de otra skill, como una ejecución nueva. Y desde la CLI, envíe un webhook guardado a cualquier URL: un servidor de staging, una skill reescrita, una prueba.

Cuatro pasos
De un webhook fallido a una skill corregida.
Encuéntrelo

Entregas y, después, el id que muestra el emisor o el motivo que dio la máquina; un intervalo de tiempo acota la búsqueda. list_deliveries {q, since, until} hace lo mismo para un agente.

Lea el motivo

El resultado, el código HTTP, el motivo, las cabeceras censuradas y el cuerpo, mostrado como texto y nunca renderizado.

Reprodúzcalo

A través de la skill tal como está ahora; force para saltarse una comprobación que falló, skip_filters para saltarse los filtros when. Un botón en el panel, una llamada en la API o MCP, un comando en el terminal.

O ejecútelo en otro lugar

En otra máquina o a través de otra skill, desde la página de la entrega o con replay_delivery {machine, skill}; o envíe con skillhook send el cuerpo guardado a cualquier URL desde el terminal.

Lo que la gente ejecuta con él

Entra un webhook, sale una tarea, y una persona solo donde hace falta

Nuestro propio bucle de autorreparación y seis playbooks completos, cada uno con el prompt que lo configura con su agente y el SKILL.md que ejecuta. Presentados con honestidad: sin testimonios ni cifras inventadas.

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

Los agentes son clientes de primera clase

Todo lo que hace el panel, como operaciones que un agente puede llamar

Un único catálogo sirve al servidor MCP alojado, a la API REST y a la CLI, de modo que un agente ve lo que ve una persona y actúa de la misma forma: mediante comandos que la máquina sigue comprobando.

El servidor alojado en /api/mcp: Streamable HTTP, sin estado, una clave bearer. A una clave se le ofrecen las herramientas que permite su ámbito, y describe_cloud indica a un agente por dónde empezar.
POST https://skillhook.dev/api/mcp
skillhook 0.7.0 ejecuta todo el catálogo desde un terminal: máquinas, tareas, respuestas, reproducciones, estadísticas. Inicie sesión una vez; la clave se queda en ~/.skillhook/.env y nunca se imprime.
skillhook cloud answer_job <job> "yes" --option yes
Cada ruta REST y cada operación del catálogo, con sus esquemas, en un solo documento. Genere un cliente o impórtelo en Postman o en un framework de agentes.
GET https://skillhook.dev/openapi.json
Qué es el servicio y cómo usarlo, escrito para modelos; llms-full.txt es la versión larga. agents.md es la guía de operación para un agente que tiene una clave.
curl https://skillhook.dev/llms.txt
El repositorio de skillhook es el plugin. Registra dos servidores MCP, esta máquina y la organización, y una skill que enseña al agente a clasificar incidencias y operar la flota.
/plugin install skillhook@meterapp-skillhook
Un GPT personalizado importa openapi.json con autenticación Bearer y obtiene cada operación como una acción. Pronto llegarán conectores de chat con inicio de sesión, para claude.ai y ChatGPT.
Import https://skillhook.dev/openapi.json

Lo que necesita a una persona

Los agentes preguntan; la nube se asegura de que alguien lo oiga

Los agentes se detienen y preguntan. Una skill que necesita una decisión termina su ejecución con una pregunta; la bandeja de entrada del panel la muestra con sus opciones como botones, se envía una alerta, y la respuesta se entrega a la ejecución en espera o reanuda con ella la sesión del agente.

Responda desde el panel, la API, el servidor MCP o la CLI. Cada alerta se abre una vez por causa; descártela a mano desde el panel o con dismiss_alert.

Cuatro alertas
Cada una nombra la máquina, la tarea o la comprobación a la que se refiere.
Un agente necesita a una personaneeds_human

Una skill terminó su ejecución con una pregunta. La tarea espera en la bandeja de entrada hasta que una persona, o un agente con una clave, la responda.

Una máquina se quedó sin conexiónmachine_offline

Una máquina dejó de consultar. Los comandos en cola para ella esperan 10 minutos; las entregas alojadas esperan 72 horas.

Una tarea fallójob_failed

Una tarea falló. Su tipo de fallo, su salida y sus artefactos están en la tarea; reprodúzcala cuando la causa esté corregida.

Una comprobación de estado está fallandohealth_failing

Una comprobación de estado de una máquina falla. La comprobación indica la solución.

CanalesSlackWebhooks firmados (Standard Webhooks)Correo electrónico

Precios

Gratis para un par de máquinas, un plan cuando la flota crece

Todos los planes incluyen el producto completo: panel, API, servidor MCP y CLI. Se diferencian en cuántas máquinas, personas, URL alojadas y entregas admiten.

Free
Una persona, un par de máquinas

0 US$

  • 2 máquinas, 3 personas
  • 3 URL de webhook alojadas, 1.000 entregas alojadas al mes
  • Reproducción, ejecuciones remotas y respuestas a agentes
Pro
Un equipo y su flota

29 US$ / mes

  • 10 máquinas, 10 personas
  • 25 URL de webhook alojadas, 50.000 entregas alojadas al mes
  • Todo lo de Free
Business
Muchas máquinas, muchos emisores

99 US$ / mes

  • 50 máquinas, 50 personas
  • 250 URL de webhook alojadas, 500.000 entregas alojadas al mes
  • Todo lo de Pro

Preguntas frecuentes

Lo primero que pregunta la gente

Vincule una máquina y vea su primer webhook

Gratis para 2 máquinas; un plan cuando la flota crece. Nada que instalar en el lado de la nube.