Skip to main content
Share Localhost

Put your local app on a public URL.

Securely expose a web server on localhost to the internet, even from behind a NAT or firewall, with secure tunnels.

Then, inspect and replay every request in real-time.

Stop context switching and turn “how do I trigger that webhook again?” into a single click to replay.

Traffic inspector showing HTTP request details with one-click replay
Trusted by developers across the globe
  • Calendly
  • Cyera
  • Databricks
  • GitHub
  • Grafana
  • Harvey
  • Hugging Face
  • Mercor
  • Microsoft
  • Okta
  • Open AI
  • Perplexity
  • Ramp
  • Schneider Electric
  • Twilio
  • Vercel
  • Windsurf
  • Zoom
Why ngrok

The fastest way to put anything on the internet.

Diagram showing how ngrok connects your local app to the internet

Deliver traffic to any service on your local machine through a lightweight agent and outbound secure tunnel.

Demo without redeploying

Give your local app a public URL to work with collaborators directly from your dev machine, then protect it with auth.

Build webhook integrations faster

Send webhooks to your local machine to inspect, debug, and iterate. We'll even verify signatures with your signing key.

Connect ChatGPT & Claude to local MCP servers

Let cloud LLMs pull data from your local machine. Debug MCPs with exact request payloads and hit replay to iterate quickly.

Test mobile apps against development backends

Configure your app to use the ngrok URL that points at your local backend—it won’t change between home, work, or a coffee shop.

Get started

Get a public URL for your app right now.

ngrok is a standalone executable with zero runtime dependencies that works on every OS.

1

Install the ngrok agent

brew install ngrok
2

Add your authtoken

ngrok config add-authtoken $YOUR_AUTHTOKEN
Don't have an authtoken? Sign up for a free account.
3

Start an endpoint

ngrok http 80
4

Open your URL at https://your-assigned-url.ngrok.app

That’s it! You didn’t need to open ports, provision a TLS certificate, or run your own reverse proxy.

Traffic Policy

Secure your URL with authentication.

Instead of sharing localhost with the whole internet, lock it down to just the people or requests you authorize.

ngrok http 80 --traffic-policy-file policy.yml
policy.yml
on_http_request:
  # redirect users to Google to log in
  - actions:
      - type: oauth
        config:
          provider: google

  # allow logins *only* from acme.com
  - expressions:
      - "!actions.ngrok.oauth.identity.email.endsWith('@acme.com')"
    actions:
      - type: deny
More about Traffic Policy
For teams

Security and control without slowing down your devs.

  • Standardize auth on every endpoint.
  • Send all request logs to your SIEM.
  • Lock down what developers can expose with ACLs.
SOC2 Type II
HIPAA & BAA
GDPR
CCPA
EU-US DPF
RBAC
SSO & SCIM
Audit logs
Data residency
Custom domains

So easy it feels like magic.

Get a public URL for localhost in less time than it took you to read this page. Just like 13 million other devs.

Scott Motte
@motdotla

ngrok is so effing amazing

Peter Vukovic
@pvukovic

Spent 3 hours looking for a good ngrok alternative. Let me save you some time: there isn’t a better ngrok alternative.

Lyzi Diamond
@lyzidiamond

OMG life changer. I can’t imagine how I lived without ngrok.

PS, it can be this easy in prod too...

No need to “upgrade” to a hodgepodge of ELBs, NLBs, firewall rules, DNS updates, nginx configs, and Cloudflare.

Check it out