Open source · MIT

Lure

A webhook trap: the whole incoming request is visible, you choose the answer, replay reaches localhost.

v1.0.0 The whole request, not a hunch
Node 24TypeScriptnode:sqliteSSEDockerApple HIG
Lure

A request is a route, not a log line

Public webhook bins put someone else's payload (signatures, tokens, customer emails) on a server you do not own, under retention rules you do not set. Tunnels show the traffic only while the tunnel is up, and they remember nothing.

Lure runs on your machine. The screen shows all three stages at once: what arrived, what we answered, where it was forwarded and how that ended. The one that broke is always a specific one, and until now it had to be hunted in three different places. Replay reaches localhost: the service is already there.

What is inside

A three-stage pipeline

One row per request, the stages side by side. A click opens it in place: headers, the body raw and parsed, a ready curl.

Live feed without WebSocket

Server-Sent Events: the server sends only the id, the browser fetches the row itself and gets it in the language of its own tab.

You choose the answer

Status, content type, body and a delay up to 30 seconds. Half of a sender's bugs only show up on a 500 and on a timeout.

Forward and replay

Every incoming request can go on whole, and any recorded one can be replayed to any address. The outcome lands in the row's third stage.

Signatures masked

Authorization, *-signature, *-secret and Cookie show as sha256…6677 until you ask to see them. The toggle is pure CSS.

Zero runtime dependencies

node:http, node:sqlite, node:crypto and TypeScript with no build step: Node 24 runs the typed code directly. 21 tests on node:test.

Screenshots

The pipeline: arrived, answered, forwarded — and where it broke
The pipeline: arrived, answered, forwarded — and where it broke
An open request: headers, body, curl, replay
An open request: headers, body, curl, replay
Traps: each with its own address and history
Traps: each with its own address and history
Settings: the answer, forwarding, retention
Settings: the answer, forwarding, retention
The pipeline in the dark theme
The pipeline in the dark theme
An open request in the dark theme
An open request in the dark theme

Installation

git clone https://github.com/dripips/lure.git cd lure docker compose up -d

Have a project or idea?

Write to me and we will talk the task through.