Webhook buttons will turn a button into a receiver: an HTTP endpoint you can register with GitHub, Stripe, Linear, or any other service that fires webhooks. When the endpoint receives a POST, the button is pressed with the request body and headers available as arguments. This is the inverse of an HTTP API button. HTTP API buttons send requests; webhook buttons receive them.Documentation Index
Fetch the complete documentation index at: https://docs.buttons.sh/llms.txt
Use this file to discover all available pages before exploring further.
Blocked on
buttons serve — a long-running server mode. Not just a flag: it needs an HTTP listener, a router, signature verification, retry/ack semantics, and a way to run in the background (launchd, systemd, Docker).
What’s changing when serve lands
--webhookflag onbuttons create--secretflag for HMAC signature verification (required for production)- Request body injected as
BUTTONS_ARG_BODY, headers asBUTTONS_ARG_HEADER_<NAME> buttons servesub-command that exposes all webhook buttons on one port- Per-button path routing:
/webhooks/<button-name>