pipehero
Docs menu
S

Receive Slack events on localhost

Slack apps receive events via the Events API, which posts to your Request URL. During development that URL needs to be public and reachable — and it needs to pass Slack's URL verification challenge. Pipehero gives you the public URL and forwards the challenge to your app.

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

2Set the Request URL

In your Slack app config, open Event Subscriptions and enable events. Paste your Pipehero URL as the Request URL. Slack immediately sends a url_verification challenge — your local handler must echo back the challenge value, which Pipehero forwards to localhost.
https://myapp.t.pipehero.app/slack/events

3Subscribe to events

Add the bot/user events you need (message.channels, app_mention, …) and reinstall the app if prompted.

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

Slack signs `v0:{timestamp}:{body}` in `X-Slack-Signature` (with the timestamp in `X-Slack-Request-Timestamp`). Add your Slack signing secret under Signature verification — Slack is built-in — and every request gets a ✓/✗ badge.

FAQ

URL verification keeps failing — what's wrong?

Make sure your local server is running and echoes back the `challenge` field from the verification payload. Watch the request live in Pipehero to confirm your app responded 200 with the challenge.

Related

Start debugging webhooks in a minute

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

Get started free