Back to skills
extension
Category: OtherNo API key required

tunelo

Expose local services and files to the internet through a public HTTPS URL. Designed for AI agents — when you need to let a user preview files remotely, shar...

personAuthor: claw-bothubclawhub

When to use tunelo

Use tunelo when the user needs to:

  • Preview files remotely — "show me that PDF", "let me browse those files on my phone"
  • Share a local dev server — "give me a link to your React app"
  • Demo something to a colleague — "send me the URL so I can test it"
  • Access localhost from another device — mobile testing, remote debugging
  • Share a directory — project files, documents, media, datasets

Do NOT use tunelo when:

  • The user only needs local access (use python3 -m http.server or tunelo serve . --local)
  • The files are already hosted somewhere public

Install

curl -fsSL https://tunelo.net/install.sh | sh

If tunelo is not found after install, the binary is at /usr/local/bin/tunelo.

Commands

Expose a local HTTP service

tunelo http 3000                # Expose port 3000 → get public HTTPS URL
tunelo http 5173                # React/Vite dev server
tunelo http 8080                # Any local service
tunelo http 3000 --private      # Require access code to visit

Serve files with web explorer

tunelo serve .                  # Current directory → public URL with file browser
tunelo serve ./dist             # Specific directory
tunelo serve ~/Documents        # Any path
tunelo serve . --local          # Local-only preview (no tunnel, no public URL)
tunelo serve . -l -p 8000       # Local preview on port 8000

The file explorer runs in the browser — directory browsing, code syntax highlighting, markdown rendering, PDF viewer, image/video/audio playback, CSV/Excel tables. Everything is embedded in the binary, no dependencies.

Options

tunelo http <PORT> --relay my.server:4433   # Use a custom relay server
tunelo http <PORT> -H 192.168.1.100         # Forward to non-localhost
tunelo http <PORT> --private                # Auto-generate access code
tunelo http <PORT> --code mysecret          # Set specific access code

Default relay is tunelo.net:4433 (free public relay). Use --relay for self-hosted.

Typical agent workflows

User says "share these files with me"

tunelo serve /path/to/files
# Give the user the public URL from the output

User says "I want to see this on my phone"

# If there's a dev server running:
tunelo http 3000

# If it's just files:
tunelo serve .

User says "let my colleague test the API"

tunelo http 8080 --private
# Give them the Share URL (includes access code)

User says "preview this locally first"

tunelo serve ./dist --local
# Opens on http://localhost:3000, no public URL

How it works

Browser → HTTPS → Relay → QUIC tunnel → Client → localhost / file server
  • Public HTTPS URL assigned automatically (random subdomain like abc123.tunelo.net)
  • QUIC transport — encrypted, multiplexed, low latency
  • Auto-reconnects if connection drops
  • Session limit: tunnels expire after ~2 hours on the public relay