Skip to content
Back to skills

Wormhole

ASecurity

Use wormhole CLI to expose local dev servers to the internet via HTTPS tunnel — for sharing previews, testing webhooks, and mobile testing.

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsgobashnextjstestingdebugginggitapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add vutran1710/claudebox --skill wormhole --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wormhole?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Wormhole
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vutran1710-wormhole/badge)](https://www.skillsdirectory.com/skills/vutran1710-wormhole)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wormhole
description: Use wormhole CLI to expose local dev servers to the internet via HTTPS tunnel — for sharing previews, testing webhooks, and mobile testing.
---

# Wormhole

Wormhole is a tunneling CLI that exposes localhost to the internet with automatic HTTPS. Use it to share dev server previews, test webhooks, or access the app from a phone.

## Quick Reference

```bash
# Expose a local port (e.g., Next.js dev server on 3000)
wormhole http 3000

# Use a custom subdomain (requires `wormhole login` first)
wormhole http 3000 --subdomain my-preview

# Headless mode (no TUI, plain log output — best for background use)
wormhole http 3000 --headless

# Disable traffic inspector
wormhole http 3000 --no-inspect

# Custom inspector address
wormhole http 3000 --inspect 0.0.0.0:4040
```

## Auth (for custom subdomains)

```bash
wormhole login     # GitHub OAuth — gives 3 custom subdomains
wormhole status    # Check auth status
wormhole logout    # Clear credentials
```

## How It Works

1. Wormhole opens a WebSocket to the nearest Cloudflare edge
2. A unique `*.wormhole.bar` HTTPS URL is assigned
3. Incoming requests route through Cloudflare → WebSocket → your local port
4. Responses reverse the path

Latency: ~5-20ms to nearest Cloudflare edge + local processing.

## Traffic Inspector

By default, wormhole runs a traffic inspector at `http://localhost:4040`:
- View all request/response pairs
- Replay requests
- Export HAR files

## Common Use Cases

### Share a dev preview
```bash
# Start your dev server
npm run dev &

# Expose it
wormhole http 3000
# → https://abc123.wormhole.bar
```

### Test webhooks (e.g., SePay, Stripe)
```bash
wormhole http 3000 --subdomain claw-webhook
# Configure webhook URL: https://claw-webhook.wormhole.bar/api/webhook
```

### Mobile testing
```bash
wormhole http 3000
# Open the wormhole URL on your phone
```

### Background tunnel
```bash
# Run in background with headless mode
nohup wormhole http 3000 --headless > /tmp/wormhole.log 2>&1 &

# Check the log for the public URL
cat /tmp/wormhole.log
```

## Security

Wormhole tunnels are **publicly accessible** — anyone with the URL can reach the exposed service. Before tunneling:

- **Never tunnel VNC (port 6080) without a VNC password** — set `VNC_PASSWORD` env var first
- **Never tunnel services with sensitive data** unless the service has its own authentication
- **Prefer short-lived tunnels** — stop the tunnel when done testing
- **Use `--subdomain`** for predictable URLs that are easier to audit and revoke

## Tips

- The public URL changes each time unless you use `--subdomain` (requires login)
- Free plan: random subdomains unlimited, custom subdomains need GitHub auth (3 max)
- WebSocket connections are supported
- Auto-reconnects with exponential backoff if the connection drops
- Inspector at localhost:4040 is useful for debugging webhook payloads

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…