Für Agents gebaut · MCP · CLI · OpenAPI

Die Steuerzentrale für Ihre Webhook-Agents

Sehen und bedienen Sie jede skillhook-Maschine an einem Ort: Webhooks, Agent-Jobs, die Fragen, auf deren Antwort Agents warten, Zustand und Statistiken, dazu Replay, Remote-Ausführungen und gehostete Webhook-URLs, die Zustellungen festhalten, während eine Maschine schläft.

Ein Befehl auf einer Maschine mit installiertem skillhook; das Dashboard zeigt den Code.

Maschinen fragen ab

Die Cloud ruft nie eine Maschine auf.

72 h

Eine gehostete Zustellung wartet auf eine schlafende Maschine.

56 Tools

Dieselben Operationen über MCP, REST und die CLI.

RFC 9457

Jeder Fehler hat einen Code und eine Request-ID.

So funktioniert es

Ein Paket auf der Maschine, eine ausgehende Verbindung

skillhook macht eine Maschine zu einem Webhook-Endpunkt, der Agent Skills ausführt. Skillhook Cloud ist der Ort, an den jede dieser Maschinen berichtet.

01
skillhook installieren und koppeln
npm install -g @meterapp/skillhook, dann der Kopplungsbefehl, den das Dashboard zeigt. Die Maschine hält einen ausgehenden Long-Poll zur Cloud und öffnet keinen Port. Im Beobachtungsmodus berichtet sie nur; im Steuermodus darf die Cloud Befehle einreihen, und die Allow- und Deny-Listen der Maschine haben das letzte Wort.
02
Webhook rein, Agent raus
Ein Absender sendet an die eigene URL der Maschine oder an eine gehostete. Die Maschine prüft die Signatur, führt die SKILL.md des Skills mit Claude Code, Codex oder einem Shell-Befehl aus und meldet den Job: Status, Ergebnis, Kosten, Ausgabe und gegebenenfalls die Frage, bei der er angehalten hat.
03
Sehen und handeln: Dashboard, API, MCP, CLI
Alle Maschinen der Organisation an einem Ort. Antworten Sie dem Agenten, spielen Sie eine Zustellung erneut ab, führen Sie einen Skill aus oder testen Sie ihn, lesen Sie einen fehlschlagenden Health-Check und die zugehörige Lösung. Jede Aktion ist ein Befehl, den die Maschine bei ihrer nächsten Synchronisierung abholt; auf eine Maschine, die offline ist, wartet er bis zu 10 Minuten.

Was Sie sehen

Die Übersicht, wie das Dashboard sie zeigt

Die letzten 24 Stunden über alle Maschinen, dann zuerst das, was eine Person braucht.

Beispieldaten
Maschinen online
3/3
Jede Maschine fragt ab
Braucht eine Person
1
Agents warten auf eine Person
Jobs
42
39 erfolgreich · 2 fehlgeschlagen · $4.12
Zustellungen
118
116 angenommen · 2 abgelehnt
Jobs
Neueste zuerst, alle Maschinen.
triagemac-mini

Webhook von GitHub · wartet seit 4 Min. · „Die beiden doppelten Issues ebenfalls schließen?“

Braucht eine Person
deploybuild-box

Webhook von CI · 2 Min. 14 s · $0.31

ErfolgreichAbgeschlossen
nightly-reportbuild-box

Zeitplan · läuft seit 38 s

Läuft

Gehostete Webhook-URLs

Eine URL für eine Maschine, die nicht immer wach ist

Eine Maschine auf einem Laptop, hinter einem NAT oder nachts im Ruhezustand hat keine Adresse, die ein Absender erreichen kann. Eine gehostete Webhook-URL auf diesem Dienst nimmt den Webhook stellvertretend an.

Die Zustellung wird beim Eintreffen sofort mit AES-256-GCM versiegelt und wartet bis zu 72 Stunden auf die nächste Synchronisierung der Maschine. Die Maschine prüft die Signatur des Absenders mit ihrem eigenen Secret: Die Cloud hält nie Webhook-Secrets, und eine Zustellung wird gelöscht, sobald die Maschine sie bestätigt hat.

Die URL-Verifizierung von Slack wird sofort beantwortet, sodass eine Slack-App auf eine Maschine zeigen kann, die noch nicht wach ist.

Drei Schritte
Vom Dashboard zur ersten Zustellung.
Einschalten

Gehostete URLs, der Skill, ein. Das Dashboard zeigt die URL; erneutes Einschalten erzeugt eine neue, und die alte funktioniert nicht mehr.

URL beim Absender einfügen

GitHub, Sentry, Slack, Zapier, alles, was JSON sendet. Das Secret des Absenders bleibt auf der Maschine, wie bei einer direkten URL.

Zustellungen warten, während die Maschine schläft

Jede wird beim Eintreffen versiegelt und bis zu 72 Stunden aufbewahrt. Bei ihrer nächsten Synchronisierung holt die Maschine sie ab, prüft die Signatur und führt den Skill aus.

Webhook-Verlauf und Replay

Jeder Webhook, aufbewahrt und erneut ausführbar

Jede Anfrage, die eine Maschine erhalten hat, wird protokolliert: angenommen, abgelehnt mit Grund und HTTP-Status, von einem Filter übersprungen, dedupliziert. Der Eintrag bleibt so lange erhalten wie die Organisation; die Payload, die ein Replay benötigt, bleibt für den Zeitraum des Tarifs erhalten: 7 Tage bei Free, bis zu 365 Tage bei Enterprise.

Suchen Sie nach der Zustellungs-ID des Absenders, dem Grund, dem Pfad, der Adresse oder einem Zeitfenster. Führen Sie erneut aus über das Dashboard, die API, den MCP-Server oder die CLI: durch den Skill in seinem jetzigen Stand, an den Prüfungen vorbei, die fehlgeschlagen sind, an seinen Filtern vorbei.

Oder woanders: derselbe Body auf einer anderen Maschine oder durch einen anderen Skill, als neue Ausführung. Und über die CLI senden Sie einen gespeicherten Webhook an eine beliebige URL: einen Staging-Server, einen umgeschriebenen Skill, einen Test.

Vier Schritte
Von einem fehlgeschlagenen Webhook zu einem korrigierten Skill.
Finden

Zustellungen, dann die ID, die der Absender anzeigt, oder der Grund, den die Maschine angegeben hat; ein Zeitfenster grenzt es ein. list_deliveries {q, since, until} tut dasselbe für einen Agent.

Den Grund lesen

Das Ergebnis, der HTTP-Status, der Grund, die geschwärzten Header und der Body, als Text angezeigt und nie gerendert.

Erneut ausführen

Durch den Skill in seinem jetzigen Stand; force an einer fehlgeschlagenen Prüfung vorbei, skip_filters an den when-Filtern vorbei. Ein Button im Dashboard, ein Aufruf über die API oder MCP, ein Befehl im Terminal.

Oder woanders ausführen

Auf einer anderen Maschine oder durch einen anderen Skill, von der Seite der Zustellung oder mit replay_delivery {machine, skill}; oder mit skillhook send den gespeicherten Body aus dem Terminal an eine beliebige URL senden.

Was Leute damit betreiben

Ein Webhook rein, ein Job raus, eine Person nur dort, wo es eine braucht

Unsere eigene Self-Heal-Schleife und sechs ausgearbeitete Playbooks, jeweils mit dem Prompt, der es mit Ihrem Agent einrichtet, und der SKILL.md, die es ausführt. Ehrlich gekennzeichnet: keine Testimonials, keine erfundenen Zahlen.

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

Agents sind der wichtigste Client

Alles, was das Dashboard tut, als Operationen, die ein Agent aufrufen kann

Ein Katalog bedient den gehosteten MCP-Server, die REST-API und die CLI, sodass ein Agent sieht, was eine Person sieht, und genauso handelt: über Befehle, die die Maschine weiterhin prüft.

Der gehostete Server unter /api/mcp: Streamable HTTP, zustandslos, ein Bearer-Schlüssel. Einem Schlüssel werden die Tools angeboten, die sein Scope erlaubt, und describe_cloud sagt einem Agent, wo er anfangen soll.
POST https://skillhook.dev/api/mcp
skillhook 0.7.0 führt den ganzen Katalog aus einem Terminal aus: Maschinen, Jobs, Antworten, Replays, Statistiken. Einmal anmelden; der Schlüssel bleibt in ~/.skillhook/.env und wird nie ausgegeben.
skillhook cloud answer_job <job> "yes" --option yes
Jede REST-Route und jede Operation des Katalogs, mit ihren Schemas, in einem Dokument. Erzeugen Sie einen Client oder importieren Sie es in Postman oder ein Agent-Framework.
GET https://skillhook.dev/openapi.json
Was der Dienst ist und wie man ihn nutzt, geschrieben für Modelle; llms-full.txt ist die lange Fassung. agents.md ist die Betriebsanleitung für einen Agent, der einen Schlüssel hat.
curl https://skillhook.dev/llms.txt
Das skillhook-Repository ist das Plugin. Es registriert zwei MCP-Server, diese Maschine und die Organisation, und einen Skill, der dem Agent beibringt, die Flotte zu sichten und zu betreiben.
/plugin install skillhook@meterapp-skillhook
Ein Custom GPT importiert openapi.json mit Bearer-Authentifizierung und erhält jede Operation als Action. Chat-Connectors mit Anmeldung für claude.ai und ChatGPT kommen bald.
Import https://skillhook.dev/openapi.json

Was eine Person braucht

Agents fragen; die Cloud sorgt dafür, dass es jemand hört

Agents halten an und fragen. Ein Skill, der eine Entscheidung braucht, beendet seine Ausführung mit einer Frage; der Posteingang des Dashboards listet sie mit ihren Auswahlmöglichkeiten als Buttons, eine Warnung geht hinaus, und die Antwort wird an die wartende Ausführung zugestellt oder setzt die Sitzung des Agents damit fort.

Beantworten Sie sie über das Dashboard, die API, den MCP-Server oder die CLI. Jede Warnung öffnet sich einmal pro Ursache; verwerfen Sie sie manuell im Dashboard oder mit dismiss_alert.

Vier Warnungen
Jede nennt die Maschine, den Job oder die Prüfung, um die es geht.
Ein Agent braucht eine Personneeds_human

Ein Skill hat seine Ausführung mit einer Frage beendet. Der Job wartet im Posteingang, bis eine Person oder ein Agent mit einem Schlüssel ihn beantwortet.

Eine Maschine ist offline gegangenmachine_offline

Eine Maschine fragt nicht mehr ab. Für sie eingereihte Befehle warten 10 Minuten; gehostete Zustellungen warten 72 Stunden.

Ein Job ist fehlgeschlagenjob_failed

Ein Job ist fehlgeschlagen. Art des Fehlers, Ausgabe und Artefakte stehen beim Job; führen Sie ihn erneut aus, sobald die Ursache behoben ist.

Eine Zustandsprüfung schlägt fehlhealth_failing

Eine Zustandsprüfung auf einer Maschine schlägt fehl. Die Prüfung nennt die Lösung.

KanäleSlackSignierte Webhooks (Standard Webhooks)E-Mail

Preise

Kostenlos für ein paar Maschinen, ein Tarif, wenn die Flotte wächst

Jeder Tarif enthält das ganze Produkt: Dashboard, API, MCP-Server und CLI. Sie unterscheiden sich darin, wie viele Maschinen, Personen, gehostete URLs und Zustellungen sie umfassen.

Free
Eine Person, ein paar Maschinen

0 $

  • 2 Maschinen, 3 Personen
  • 3 gehostete Webhook-URLs, 1.000 gehostete Zustellungen pro Monat
  • Replay, Remote-Ausführungen und Antworten an Agents
Pro
Ein Team und seine Flotte

29 $ / Monat

  • 10 Maschinen, 10 Personen
  • 25 gehostete Webhook-URLs, 50.000 gehostete Zustellungen pro Monat
  • Alles aus Free
Business
Viele Maschinen, viele Absender

99 $ / Monat

  • 50 Maschinen, 50 Personen
  • 250 gehostete Webhook-URLs, 500.000 gehostete Zustellungen pro Monat
  • Alles aus Pro

FAQ

Fragen, die zuerst gestellt werden

Koppeln Sie eine Maschine, sehen Sie ihren ersten Webhook

Kostenlos für 2 Maschinen; ein Tarif, wenn die Flotte wächst. Auf der Cloud-Seite ist nichts zu installieren.