Tunnel
Manage Cloudflare Tunnels directly from Wrangler. Create, run, and manage tunnels that securely connect your local services to Cloudflare's network — no public IPs required.
Wrangler manages the cloudflared binary automatically. On first use, Wrangler will prompt you to download cloudflared to a local cache directory. You can skip this by installing cloudflared yourself and adding it to your PATH, or by setting the CLOUDFLARED_PATH environment variable to point to an existing binary.
Create a new remotely managed Cloudflare Tunnel.
wrangler tunnel create <NAME>NAMEstring required- A name for your tunnel. Must be unique within your account.
Tunnels created via Wrangler are always remotely managed — configure them in the Cloudflare dashboard ↗ or via the API.
After creation, use wrangler tunnel run with the tunnel ID to start the tunnel.
npx wrangler tunnel create my-appCreating tunnel "my-app"Created tunnel.ID: f70ff985-a4ef-4643-bbbc-4a0ed4fc8415Name: my-app
To run this tunnel, configure its ingress rules in the Cloudflare dashboard, then run: wrangler tunnel run f70ff985-a4ef-4643-bbbc-4a0ed4fc8415The following global flags work on every command:
--helpboolean- Show help.
--configstring (not supported by Pages)- Path to your Wrangler configuration file.
--cwdstring- Run as if Wrangler was started in the specified directory instead of the current working directory.
Delete a Cloudflare Tunnel from your account.
wrangler tunnel delete <TUNNEL> [OPTIONS]TUNNELstring required- The name or UUID of the tunnel to delete.
--forceboolean optional- Skip the confirmation prompt.
npx wrangler tunnel delete f70ff985-a4ef-4643-bbbc-4a0ed4fc8415Are you sure you want to delete tunnel "f70ff985-a4ef-4643-bbbc-4a0ed4fc8415"? This action cannot be undone. (y/n)Deleting tunnel f70ff985-a4ef-4643-bbbc-4a0ed4fc8415Tunnel deleted.The following global flags work on every command:
--helpboolean- Show help.
--configstring (not supported by Pages)- Path to your Wrangler configuration file.
--cwdstring- Run as if Wrangler was started in the specified directory instead of the current working directory.
Display details about a Cloudflare Tunnel, including its ID, name, status, and creation time.
wrangler tunnel info <TUNNEL>TUNNELstring required- The name or UUID of the tunnel to inspect.
npx wrangler tunnel info f70ff985-a4ef-4643-bbbc-4a0ed4fc8415Getting tunnel detailsID: f70ff985-a4ef-4643-bbbc-4a0ed4fc8415Name: my-appStatus: healthyCreated: 2025-01-15T10:30:00ZType: cfd_tunnelThe following global flags work on every command:
--helpboolean- Show help.
--configstring (not supported by Pages)- Path to your Wrangler configuration file.
--cwdstring- Run as if Wrangler was started in the specified directory instead of the current working directory.
List all Cloudflare Tunnels in your account.
wrangler tunnel listThe output includes the tunnel ID, name, status, and creation date for each tunnel. Only non-deleted tunnels are shown.
npx wrangler tunnel listListing Cloudflare Tunnels
ID Name Status Createdf70ff985-a4ef-4643-bbbc-4a0ed4fc8415 my-app healthy 2025-01-15T10:30:00Z550e8400-e29b-41d4-a716-446655440000 api-tunnel inactive 2025-01-10T15:45:00ZThe following global flags work on every command:
--helpboolean- Show help.
--configstring (not supported by Pages)- Path to your Wrangler configuration file.
--cwdstring- Run as if Wrangler was started in the specified directory instead of the current working directory.
Run a Cloudflare Tunnel using the cloudflared daemon. This starts a persistent connection between your local machine and Cloudflare's network.
wrangler tunnel run [TUNNEL] [OPTIONS]TUNNELstring optional- The name or UUID of the tunnel to run. Required unless
--tokenis provided.
- The name or UUID of the tunnel to run. Required unless
--tokenstring optional- A tunnel token to use directly. Skips API authentication.
--log-levelstring (default: info) optional- Log level for
cloudflared. Does not affect Wrangler logs (controlled byWRANGLER_LOG). One of:debug,info,warn,error,fatal.
- Log level for
Named tunnels are remotely managed — configure ingress rules (which local services to expose) in the Cloudflare dashboard ↗ or via the API before running the tunnel.
There are two ways to run a tunnel:
By tunnel name or ID (fetches the token via the API):
npx wrangler tunnel run my-appBy token (no API authentication needed — useful for CI/CD or remote servers):
npx wrangler tunnel run --token eyJhIjoiNGE2MjY...Press Ctrl+C to stop the tunnel. Wrangler will send a graceful shutdown signal to cloudflared before exiting.
The following global flags work on every command:
--helpboolean- Show help.
--configstring (not supported by Pages)- Path to your Wrangler configuration file.
--cwdstring- Run as if Wrangler was started in the specified directory instead of the current working directory.
Start a free, temporary tunnel without a Cloudflare account using Quick Tunnels. This is useful for quick demos, testing webhooks, or sharing local development servers.
wrangler tunnel quick-start <URL>URLstring required- The local URL to expose (for example,
http://localhost:8080).
- The local URL to expose (for example,
The tunnel is assigned a random *.trycloudflare.com subdomain and lasts for the duration of the process.
npx wrangler tunnel quick-start http://localhost:8080Starting quick tunnel to http://localhost:8080...Your tunnel URL: https://random-words-here.trycloudflare.comThe following global flags work on every command:
--helpboolean- Show help.
--configstring (not supported by Pages)- Path to your Wrangler configuration file.
--cwdstring- Run as if Wrangler was started in the specified directory instead of the current working directory.