Expose localhost to
the internet

locally.sh tunnels live HTTP traffic — including WebSockets — from a public HTTPS URL to your locally running app. No VPN. No port forwarding.

Get started free How it works
🔌

Full HTTP tunnel

All methods, real response codes, and headers — not just webhooks. Works with any framework.

WebSocket support

WebSocket connections are proxied bidirectionally. Build real-time apps and test them live.

📨

Webhook relay

Classic SSE-based relay for Stripe, GitHub, and other webhook senders — with replay and offline buffering.

How it works

1

Create a channel

Sign up and create a channel. You get a unique public HTTPS URL instantly.

2

Run the CLI

Run locally --mode tunnel --channel <slug> --target http://localhost:3000 to open the tunnel.

3

Share the URL

Your local app is live at locally.sh/proxy/<slug>. Send it anywhere — webhooks, teammates, demos.

Two modes, one tool

Tunnel mode Webhook relay
All HTTP methodsPOST only
Real response returnedFire-and-forget
WebSocket proxying
Offline event buffering
Webhook history & replay

Simple pricing

Free

$0/mo

  • ✓ 1 channel
  • ✓ 1,000 requests/day
  • ✓ Tunnel & webhook relay
Get started
Popular

Pro

$9/mo

  • ✓ 10 channels
  • ✓ 50,000 requests/day
  • ✓ Tunnel & webhook relay
  • ✓ Priority support
Start free trial

Business

$29/mo

  • ✓ Unlimited channels
  • ✓ 500,000 requests/day
  • ✓ Tunnel & webhook relay
  • ✓ Priority support
  • ✓ SLA guarantee
Get started