Develop Locally
Expose Securely.

The open-source tunnel built for developers.
No configuration, just tunnels.

$npm i -g workslocal

Your 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.

WorksLocal Web Inspector showing request list and detail panes

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.

Terminal
$ 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)NgrokWorksLocal
SubdomainRandom / ChangesFixed / Persistent
Bandwidth1GB/MonthUnlimited (Local)
PrivacyI have not Idea!Dumb-Pipe P2P
Auth RequiredYes (Mandatory)No (Optional)
dns
ENCRYPTED
visibility_off

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."

Global Infrastructure

Built on Cloudflare Workers

CLIENT

devices

Local Agent

RELAY

cloud_sync

Workers Edge

PUBLIC

language

Global Internet

By leveraging Cloudflare's global network, we minimize latency by routing your traffic through the nearest edge node to your local machine.