HookShot
Open Source v1.0

Webhook inspector
in real time

Create a unique URL, receive any HTTP request, watch it live. Configure responses, protect history with a PIN, and debug integrations — all self-hosted.

Node 20+ React 18 SQLite → Postgres Docker ready

What you get

Live capture

Method, path, headers, body, IP, size and timestamp. Everything appears instantly via SSE — no refresh needed.

Custom response

Configure status, content-type, headers and body per webhook. Your sender gets exactly the response you want.

PIN + JWT auth

Per-webhook PIN (bcrypt) issues a scoped JWT. Your history stays private — even if the URL leaks.

Auto retention

Configurable purge of old requests. SQLite in dev, PostgreSQL in prod — zero code changes.

Docker included

Single command: docker compose up --build. PostgreSQL + app, auto-migrated.

Dark mode UI (works in light too)

Master-detail layout built with React + Tailwind. Responsive, fast, and easy on the eyes.

Local tunnel without ngrok

The @hookshot_cli/cli forwards received webhooks directly to your local port — zero dependencies, instant setup.

1. Create a webhook

npx @hookshot_cli/cli create --pin 1234
token: abc123 → http://localhost:3000/h/abc123

2. Start the tunnel

npx @hookshot_cli/cli listen --token abc123 --pin 1234 --target http://localhost:8080

3. Watch it work

hookshot listen
16:45:14 POST /order → 200 18ms
16:45:16 POST /payment → 200 42ms
16:45:20 GET /health → 200 5ms

Get in touch

Questions, ideas, or looking for a customized solution?

No spam. I'll reply to your email.