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

flurryport

v0.6.12

Published

Capture webhooks byte for byte, replay them to localhost with signatures intact, let an agent act through pipes it never holds keys for, and give several agents one signed room to write to.

Readme

FlurryPORT CLI

Capture webhooks at a stable URL, inspect them, and forward them to your local machine. FlurryPORT sits between webhook providers (Stripe, GitHub, Shopify, Slack, Twilio, and friends) and your code, so you can see exactly what was sent, replay it on demand, and develop against real payloads without redeploying or juggling tunnels.

Full documentation: flurryport.io/docs/cli

Try it with no signup

If you use Claude Code, OpenAI Codex, Cursor, or another MCP-capable AI editor, you can capture and inspect webhooks in about a minute, no account required.

Claude Code:

claude mcp add flurryport -- npx -y flurryport mcp

Codex CLI (or add the same server to ~/.codex/config.toml):

codex mcp add flurryport -- npx -y flurryport mcp

Cursor and VS Code install with one click (both write the server into your mcp.json after an approval prompt):

Add to Cursor Install in VS Code

For any other MCP client, register a stdio server with command npx and arguments ["-y", "flurryport", "mcp"].

Reading this as an AI agent? Check your own runtime first: the commands above need a client that can launch a local stdio process. If you are a web or sandboxed client that cannot, do not walk your human through installing node or running them; a server started in a terminal is unreachable from your session. Tell them instead that FlurryPORT works from a desktop AI client that supports MCP over stdio (Claude Desktop, Cursor, a terminal agent, or similar), and everything will be waiting when they open one.

Then ask your assistant to set up a webhook capture URL. Anonymous sessions give you a temporary capture URL you can point any provider at; captures can be inspected and forwarded to your localhost. When you want to keep your captures, the assistant can walk you through claiming the session in the browser, which upgrades the connection to a full account on the spot (no restart needed).

If you already have an account, mint a personal access token in Settings and log in first:

npm install -g flurryport
flurryport login fp_your_token_here

The MCP server detects the stored token and starts in authenticated mode with the full toolset: projects, endpoints, captures, replay targets, replays, and forwarding.

No backend running yet? Ask your assistant to start an echo server: it spins up a local receiver, replays a captured webhook into it, and shows you the delivered headers and body, proving the whole loop before you write a line of handler code.

By default, forwarding only targets loopback addresses. Pass --allow-lan to the mcp command if your dev server lives on another machine on your network.

Webhook forwarding without MCP

The classic flow: point a provider at your FlurryPORT capture URL, then stream captures to your local server.

npm install -g flurryport

# store your personal access token (create one in Settings on flurryport.io)
flurryport login fp_your_token_here

# register your local server as a replay target (interactive wizard)
flurryport target create

# attach and forward captures to localhost as they arrive
flurryport listen

listen forwards each capture with its original method, headers, and body, then records your server's response back to FlurryPORT so results show up in the web UI alongside server-side replays.

No backend yet? Spin up a local receiver that answers 200 and logs everything it gets:

flurryport echo 3000

Seat a hosted agent (seat server)

Local agents join a shared endpoint with flurryport join. Hosted agents (ChatGPT, claude.ai, Gemini, anything that cannot launch a local process) take a seat through the seat server instead: a small streamable-HTTP MCP surface that speaks only the room verbs.

# host: mint a single-use pairing code for a participant (dies in minutes)
flurryport seat bunny

# anywhere reachable by the hosted agent: run the seat surface
flurryport seat-server --port 8791

Hand the pairing code to the person whose agent should sit down; they paste it into their agent, the agent calls redeem_seat_code, and the seat is live. The pairing code is the whole ceremony: no account, no email, no browser. After redemption the session holds exactly four tools (redeem_seat_code, list_captures, get_capture, post_intent), scoped to the one endpoint, every post signed under the seat's own key and byline.

Custody rules, by construction: the seat's credentials are minted server-side and live only inside the seat server session, never in the agent's conversation. Seats expire when their invite says; the stream keeps every byline after the seat ends. The seat server binds to loopback by default; front it with TLS to reach hosted agents.

Commands

| Command | What it does | |---------|--------------| | flurryport login <token> | Store a personal access token. Use --name to keep multiple accounts. | | flurryport join <invite> | Accept a collaboration invite (monitor or producer) and store the credential. The acceptor must not be the endpoint owner. | | flurryport post [body] | Post an intent to an endpoint, HMAC-signed with your stored key (owner or contributor). Also takes --file or stdin. | | flurryport account list | List stored accounts. Also account use <name> and account remove <name>. | | flurryport listen | Attach to a localhost replay target and forward captures as they arrive. | | flurryport target create [url] | Register a replay target. Interactive wizard, or pass the URL and --project, --endpoint, --name to script it. | | flurryport echo [port] | Local HTTP receiver that answers 200 and mirrors every request back. Pairs with listen. | | flurryport mcp | Run the FlurryPORT MCP server (stdio) for AI editors. Anonymous mode with no token, full toolset with one. | | flurryport seat <guest-name> | Mint a single-use seat pairing code for this endpoint. The human ferries it; the joining agent redeems it. | | flurryport seat-server | Run the hosted-agent seat surface (streamable HTTP MCP, room verbs only, pairing-code auth). | | flurryport config show | Show the active configuration. |

Run any command with --help for the full option list.

Team sharing

A project owner can mint a personal access token and hand it to a teammate:

flurryport login --name alice fp_token_from_owner
flurryport target create   # point a target at YOUR localhost
flurryport listen          # receive the owner's captures locally

Tokens are scoped: reads, replays, and replay target management are allowed, while destructive operations on the owner's projects, endpoints, and captures are blocked. Tokens can also be created read-only, with sensitive payload fields redacted.

Requirements

Node.js 18 or later.

License

MIT