npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

webhook-relay-cli

v1.0.1

Published

Receive webhooks on a Cloudflare Worker and relay them to your local app — listen, replay, and a live TUI.

Downloads

340

Readme

webhook-relay

Receive webhooks on a Cloudflare Worker, then pull them down to your local app — no public tunnel, no inbound ports.

npm version downloads license node

A live terminal UI (k9s-style) to watch, inspect, replay, and auto-forward webhooks as they arrive.

webhook-relay TUI demo

provider ──POST──▶ Cloudflare Worker (stores in D1)
                          ▲
                          │ poll
                     relay CLI ──forward──▶ http://localhost:<port>

Two parts: a CLI (published to npm) and a Worker you self-host on your own Cloudflare account. Each user runs their own Worker, so the stored webhooks are yours alone.

1. Install the CLI

npm i -g webhook-relay-cli

2. Deploy the Worker (one time)

You need a free Cloudflare account. Then:

relay deploy

relay deploy logs you in (opens your browser once), creates your own D1 database, deploys the Worker to your account, and saves its URL + a token to ~/.webhook-relay/config.json. The Worker creates its own table on the first request — no migration step. Re-run it any time; it reuses your database.

cd worker
wrangler login
wrangler d1 create webhook-relay-db
# → paste the printed `database_id` into worker/wrangler.toml (it ships empty)
wrangler deploy
# → note the URL it prints, then run: relay init   (paste that URL)

The token is just a name that separates your webhook streams. Override the saved config any time with relay init.

3. Point your provider at the Worker

Configure the webhook sender (GitHub, Stripe, etc.) to POST to:

https://webhook-relay.<you>.workers.dev/webhook/<your-token>

4. Receive locally

relay tui --port 3000      # live UI: watch, inspect, replay, auto-forward

Commands

| Command | What it does | |---------|--------------| | relay deploy | Provision D1 + deploy the Worker, save its URL to config (run from a repo clone) | | relay init | Save Worker URL + token to ~/.webhook-relay/config.json | | relay status | Print the current config and its path | | relay tui --port <n> | Live TUI — auto-forwards to localhost:<n>; press s to edit worker/token | | relay listen --port <n> | Poll + forward, no UI | | relay list | List stored webhooks | | relay replay <id> --port <n> | Re-send one stored webhook to localhost | | relay purge [--yes] | Delete all stored webhooks from your Worker (irreversible) |

Most commands accept --worker <url> / --token <t> to override the saved config.

License

MIT — see LICENSE.