Open a door to localhost.
Close it when you're done.
Janus is an on-demand Cloudflare tunnel manager for local development and webhooks. Named tunnels are created per project, exposed at a stable hostname, and torn down when you finish — so local services are never open to the internet 24/7.
# expose a local port to a stable public URL
$ janus create webhook --hostname webhook.recitelabs.com --port 3000
$ janus up webhook # start the tunnel
$ janus down webhook # stop the tunnel
$ janus create webhook --hostname webhook.recitelabs.com --port 3000
$ janus up webhook # start the tunnel
$ janus down webhook # stop the tunnel
Stable hostnames — your URL stays the same every time the tunnel comes up.
Down by default — nothing is exposed until you run janus up.
Three modes — public, token-gated, and private (WARP-only).
Request capture — inspect headers and bodies on each request.
Webhooks — get a stable endpoint to send events to.