pipehero
Docs menu
G

Receive GitHub webhooks on localhost

Whether you're building a GitHub App, an Action, or a bot, you need real delivery payloads on your machine. Pipehero exposes localhost, captures every delivery (even while you're mid-restart), and lets you replay them.

1Install Pipehero and start a tunnel

Install the CLI, log in, then expose your local port. You get a stable public URL like myapp.t.pipehero.app.
curl -fsSL pipehero.app/install | sh
pipehero login
pipehero start myapp --port 3000

2Add the webhook to your repo or App

In your repository go to Settings → Webhooks → Add webhook (or your GitHub App's settings). Set the Payload URL to your Pipehero URL and Content type to application/json.
https://myapp.t.pipehero.app/webhooks/github

3Set a secret and choose events

Set a webhook Secret and select the events (push, pull_request, issues, …). GitHub uses that secret to sign each delivery.

4Inspect & replay

Every request shows up live in the dashboard (and the local panel at localhost:4140) with headers and body. Hit Replay to re-send it to your localhost — no need to re-trigger the event at the provider. Requests that arrive while your CLI is offline are captured and can be replayed later.

5Verify the signature

GitHub signs the raw body with HMAC-SHA256 (hex) and sends it as `X-Hub-Signature-256: sha256=…`. Add the same secret under Signature verification (GitHub is built-in) to get a ✓/✗ badge on every delivery.

FAQ

Can I replay a delivery to my local handler?

Yes — open the request in Pipehero and hit Replay. It forwards the exact payload and headers to your localhost, so you don't have to re-trigger the event on GitHub.

Does this work for GitHub Apps and Actions?

Yes. Point the App's webhook URL (or an Action that posts to a URL) at your Pipehero endpoint.

Related

Start debugging webhooks in a minute

Free plan, no credit card. Expose localhost, inspect and replay every webhook.

Get started free