Everything you need to expose your local dev server to the internet.
Make sure you have Node.js installed, then run:
$ npx runlocal 3000
Replace 3000 with whatever port your app runs on. You'll see output like:
That's it. Anyone on the internet can now reach your local server at the public HTTPS URL. No signup, no config files, no accounts.
Point Stripe, GitHub, Shopify, or any webhook provider at your runlocal URL. Requests arrive at your local server in real time.
Send your public URL to a colleague so they can test your feature branch without deploying anything.
Open the URL on your phone to test responsive layouts and touch interactions against your live dev server.
Give external services a public callback URL for OAuth redirects, payment callbacks, or any API integration.
Every tunnel comes with a built-in request inspector. When you start the CLI, you'll see an /inspect URL in the output. Open it in your browser to see incoming requests in real time:
The inspector uses a secure token so only you can view it. No data is stored — everything streams live via WebSocket.
By default you get a random subdomain that changes each time you reconnect. If you need a persistent URL (e.g. for webhook configuration), you can use a runlater.eu API key:
$ RUNLATER_API_KEY=your_key npx runlocal 3000
With an API key, you get a stable subdomain derived from your account — the same URL every time. Tunnels with an API key also skip the 2-hour TTL. See runlater.eu for details.
Runlocal is a free service. To keep it fair for everyone, the following limits apply:
| Tunnel lifetime | 2 hours (no limit with API key) |
| Request rate | 10 requests/second per tunnel |
| Bandwidth | 50 MB/s per tunnel |
| Request body size | 10 MB max |
| Tunnels per IP | 5 concurrent |
Runlocal does not log requests, set cookies, or store any data. Your traffic is forwarded in real time and never written to disk. European-owned, hosted in Germany, zero US companies in the data chain. Read the full privacy policy →
Built with Phoenix & Elixir. Open source CLI.