Logo of untun


Tunnel your local HTTP(s) server to the world! powered by Cloudflare Quick Tunnels.

Tunnel your local HTTP(s) server to the world!

Powered by 🔥 Cloudflare Quick Tunnels and used by 👂 unjs/listhen.

Usage (CLI)

Globally run tunnel with npx:

npx untun@latest tunnel http://localhost:3000
◐ Starting cloudflared tunnel to http://localhost:3000
ℹ Waiting for tunnel URL...
✔ Tunnel ready at https://unjs-is-awesome.trycloudflare.com

Use npx untun tunnel --help for more usage info.

Usage (API)

Install package:

# npm
npm install untun

# yarn
yarn add untun

# pnpm
pnpm install untun


// ESM
import { startTunnel } from "untun";

// CommonJS
const { startTunnel } = require("untun");

Start tunnel:

const tunnel = await startTunnel({ port: 3000 });



  • Default: {protocol}://{hostname}:{port}

The local server URL to tunnel.


  • Default: 3000

The local server PORT (only effective if url is not provided).


  • Default: localhost

The local server hostname (only effective if url is not provided).


  • Default: http

The local server protocol (only effective if url is not provided).


  • Default: false

Verify local server TLS certificate.


  • Default: false
  • Environment variable: UNTUN_ACCEPT_CLOUDFLARE_NOTICE

Accept cloudflare TOS by default.


  • Clone this repository
  • Install latest LTS version of Node.js
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Run interactive tests using pnpm dev


Made with 💛

Published under MIT License.

cloudflared integration based on a fork of JacobLinCool/node-cloudflared

Your installation of cloudflared software constitutes a symbol of your signature indicating that you accept the terms of the Cloudflare License, Terms and Privacy Policy.