The control plane for your webhook agents
See and run every skillhook machine in one place: webhooks, agent jobs, the questions agents are waiting on, health and stats, with replay, remote runs and hosted webhook URLs that hold deliveries while a machine sleeps.
One command on a machine with skillhook installed; the dashboard shows the code.
Machines pull
The cloud never calls a machine.
72 h
A hosted delivery waits for a sleeping machine.
43 tools
The same operations over MCP, REST and the CLI.
RFC 9457
Every error has a code and a request id.
How it works
One package on the machine, one link out
skillhook makes a machine a webhook endpoint that runs Agent Skills. Skillhook Cloud is where every one of those machines reports.
What you see
The overview, as the dashboard shows it
The last 24 hours across every machine, then what needs a person first.
Hosted webhook URLs
A URL for a machine that is not always awake
A machine on a laptop, behind a NAT or asleep at night has no address a sender can reach. A hosted webhook URL on this service accepts the webhook on its behalf.
The delivery is sealed with AES-256-GCM the moment it arrives and waits up to 72 hours for the machine's next sync. The machine verifies the sender's signature with its own secret: the cloud never holds webhook secrets, and a delivery is deleted once the machine has acknowledged it.
Slack's URL verification is answered at once, so a Slack app can point at a machine that is not awake yet.
Webhook history and replay
Every webhook, kept and replayable
Every request a machine received is on record: accepted, rejected with the reason and the HTTP status, skipped by a filter, deduplicated. The record stays as long as the organisation does; the body, the part a replay needs, stays for the plan's window: 7 days on Free, up to 365 days on Enterprise.
Search by the sender's delivery id, the reason, the path, the address or a time window. Replay from the dashboard, the API, the MCP server or the CLI: through the skill as it is now, past the checks it failed, past its filters.
Or somewhere else: the same body on another machine or through another skill, as a fresh run. And from the CLI, send a stored webhook to any URL: a staging server, a rewritten skill, a test.
What people run on it
A webhook in, a job out, a person only where one is needed
Our own self-heal loop and six worked playbooks, each with the prompt that sets it up with your agent and the SKILL.md it runs. Labelled honestly: no testimonials, no invented numbers.
Agents are the first-class client
Everything the dashboard does, as operations an agent can call
One catalogue serves the hosted MCP server, the REST API and the CLI, so an agent sees what a person sees and acts the same way: through commands the machine still checks.
What needs a person
Agents ask; the cloud makes sure someone hears
Agents stop and ask. A skill that needs a decision ends its run with a question; the dashboard's inbox lists it with its choices as buttons, an alert goes out, and the answer is delivered to the waiting run or resumes the agent's session with it.
Answer from the dashboard, the API, the MCP server or the CLI. Each alert opens once for its cause; dismiss it by hand from the dashboard or with dismiss_alert.
Pricing
Free for a couple of machines, a plan when the fleet grows
Every plan has the whole product: dashboard, API, MCP server and CLI. They differ in how many machines, people, hosted URLs and deliveries they hold.
FAQ
Questions people ask first
Pair a machine, see its first webhook
Free for 2 machines; a plan when the fleet grows. Nothing to install on the cloud side.