pipehero
Docs menu
C

Receive Clerk webhooks on localhost

Clerk fires webhooks for user and session lifecycle events so you can sync your database. Pipehero gives you a public URL to receive them locally and an inspector to see exactly what Clerk sends.

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 endpoint in Clerk

In the Clerk Dashboard go to Webhooks → Add Endpoint and set the Endpoint URL to your Pipehero URL. Subscribe to events like user.created and session.created.
https://myapp.t.pipehero.app/webhooks/clerk

3Grab the signing secret

Clerk (via Svix) shows a signing secret starting with whsec_ for the endpoint.

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

Clerk uses Svix signatures (`svix-id`, `svix-timestamp`, `svix-signature`; base64 over `{id}.{timestamp}.{body}`). Add your `whsec_…` signing secret under Signature verification — Clerk is built-in — to get a ✓/✗ badge on every event.

FAQ

How do I sync users to my DB locally?

Point Clerk at your Pipehero URL, then watch user.created/updated/deleted in the live tail and replay them into your handler as you build the sync.

Related

Start debugging webhooks in a minute

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

Get started free