Skip to main content
webhook-it logo

webhook-it

Stable public URLs for webhooks, forwarded in real time to your localhost — through an interactive terminal dashboard.

Runs 100% on your machine. The only external piece is the ngrok tunnel.

The webhook-it interactive dashboard

Everything a webhook workflow needs

webhook-it does the full cycle — receive, persist, respond, forward — with history and replay built in.

🔗

A stable public URL

Create an endpoint once — its URL is yours until you delete it. Register it with Stripe or GitHub without worrying it expires overnight.

Real-time forwarding

Webhooks land on your localhost with every header and body byte intact — signatures included. No copy-pasting into Postman.

History & replay

Every event is saved to a local SQLite database. Replay the exact same payload — same bytes, same signature — with a single keypress.

⌨️

CLI-first dashboard

An interactive terminal dashboard. Watch webhooks arrive live, like tail -f — and never leave your terminal.

📦

Project config

Commit a .webhook-it.json and a teammate provisions every endpoint with one command: wi apply.

🔒

100% local

No account, no cloud, no server to pay for. Everything runs on your machine; the only external piece is the tunnel.

How it works

One running process hosts both the dashboard and the daemon. No IPC, no background service.

1

Start the daemon

Press u in the dashboard to bring up the local daemon and an ngrok tunnel. Your public URL appears in the header.

2

Receive & forward

A webhook hits your stable URL. webhook-it saves it and forwards it to localhost — method, headers and body untouched.

3

Inspect & replay

Watch events arrive live in the Events pane. When your handler breaks, fix it and press r to replay.

Ready to stop copy-pasting payloads?

Build the binary, open the dashboard, and watch your first webhook arrive in under five minutes.