Develop Locally
Expose Securely.
The open-source tunnel built for developers.
No configuration, just tunnels.
npm i -g workslocalYour ngrok URL changed. Again.
The modern developer experience shouldn't involve logging into a dashboard just to test a webhook. We built WorksLocal to solve the friction of temporary tunnels.
- closeNo account setup required for basic tunnels.
- closeNo proprietary binaries tracking your traffic.
- closeNo forced upgrades when you hit 5 requests/min.
Web Inspector
Replay, inspect, and modify requests on the fly.

The "Catch Mode"
No server running yet? No problem. WorksLocal can catch requests in mid-air and store them until you're ready to spin up your local environment.
$ workslocal catch --name stripe-payments ──────────────────────────────────────────────────────────── ✔ Catch mode active! Public URL: https://stripe-payments.workslocal.exposed Inspector: http://localhost:4040 Returning: 200 {"ok":true} Subdomain: stripe-payments Paste the URL in your webhook dashboard. All requests appear below and at http://localhost:4040 Press Ctrl+C to stop. ──────────────────────────────────────────────────────────── POST / 200 1ms POST /get-user 200 0ms _
The "Zero Bullshit" Comparison
| Feature (Free Tier) | Ngrok | WorksLocal |
|---|---|---|
| Subdomain | Random / Changes | Fixed / Persistent |
| Bandwidth | 1GB/Month | Unlimited (Local) |
| Privacy | I have not Idea! | Dumb-Pipe P2P |
| Auth Required | Yes (Mandatory) | No (Optional) |
The 'Dumb Pipe' Principle
We believe your data is none of our business. WorksLocal operates as a pure relay. Our servers never terminate your SSL connection; they simply route raw TCP packets between the public edge and your local agent.
"If it's not encrypted on your machine, it's not on our wires."
Built on Cloudflare Workers
CLIENT
devicesLocal Agent
RELAY
cloud_syncWorkers Edge
PUBLIC
languageGlobal Internet
By leveraging Cloudflare's global network, we minimize latency by routing your traffic through the nearest edge node to your local machine.