# bubenshchykov/ngrok

Expose your localhost to the web. Node wrapper for ngrok.

Repository: https://github.com/bubenshchykov/ngrok
Canonical: https://ross.abutalabs.com/products/bubenshchykov-ngrok
Homepage: https://ngrok.com
Language: JavaScript
License Family: other
Topics: ngrok, tunneling, tunnel, webhook, localhost
Last push: 2025-06-19T01:58:31+00:00

## Health v2 (maintenance only)
Score: 44/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 27, release rhythm 35, longevity 100
- inputs: {"age_days": 4677, "days_push": 441, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2415, forks 319 (observed 2026-08-28T04:06:50.225508+00:00)

## What it is
A Node.js wrapper around the ngrok client binary that lets developers programmatically open tunnels exposing localhost servers to the public internet. It provides an async API for connecting, disconnecting, and managing tunnels, and can also be installed globally as a CLI.

## Use cases
- expose my localhost to the internet for testing
- receive stripe webhooks on my local dev machine
- share a local dev server with a teammate via a public url
- programmatically start and stop ngrok tunnels from node
- test a webhook integration without deploying
- demo a locally running app to a client

## When to choose
- you develop in Node.js and want to manage ngrok tunnels from code
- you need a public HTTPS URL for local webhook development
- you want ngrok available as both a library and a global CLI in one npm package

## When to avoid
- you need a self-hosted tunneling solution without ngrok accounts or usage limits
- your project is not JavaScript/Node.js based
- you need production-grade ingress rather than development tunnels

## Facets
- artifact type: library
- maturity: active
- function: networking, developer-tools, cli, webhook
- domain: developer-tools, web-development, networking
- platform: cross-platform, cli
- tags: ngrok, tunneling, localhost, webhook-testing, public-url, node-wrapper, command-line, nodejs

## Member repositories
- bubenshchykov/ngrok (main) score 44

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:50.225508+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:33:10.966568+00:00, confidence not recorded.
  - readme: https://github.com/bubenshchykov/ngrok (fetched 2026-08-28T04:06:50.225508+00:00, sha b4150ace5059)
  - homepage: https://ngrok.com (fetched 2026-08-29T10:14:12.706835+00:00, sha 2a1a2d02999c)
  - site_page: https://ngrok.com/docs/start (fetched 2026-08-29T10:14:12.709560+00:00, sha cf6e4723c2f3)
  - site_page: https://ngrok.com/docs/share-localhost/webhooks (fetched 2026-08-29T10:14:12.713119+00:00, sha a849ef5b3b04)
  - site_page: https://ngrok.com/docs/using-ngrok-with/using-mcp (fetched 2026-08-29T10:14:12.714769+00:00, sha 4c9e7b049fbd)
  - site_page: https://ngrok.com/docs/gateway/examples/minecraft (fetched 2026-08-29T10:14:12.716548+00:00, sha 22443c449b2f)
  - site_page: https://ngrok.com/docs/gateway/examples/ephemeral-workloads (fetched 2026-08-29T10:14:12.718573+00:00, sha 5bba11482c28)
  - site_page: https://ngrok.com/docs/gateway/ssh-rdp (fetched 2026-08-29T10:14:12.720789+00:00, sha 771538708695)
  - site_page: https://ngrok.com/docs/api (fetched 2026-08-29T10:14:12.722776+00:00, sha a5281d8fec83)
  - registry_npm: https://registry.npmjs.org/ngrok (fetched 2026-08-29T10:14:12.724708+00:00, sha 36f5394d3f9e)
- Data as of 2026-08-30T08:39:29.467469+00:00.
