Skip to main content
Wirebox tunnels provide secure reverse proxy connections that expose your agent’s local services (FastAPI webhooks, local agent APIs, development servers) to the public internet. With tunnels, your local development workstation or firewalled private environment can receive external webhook notifications and HTTP traffic without opening firewall ports, configuring static IPs, or setting up complex dynamic DNS.

How It Works

  1. Outbound Edge Session: The Wirebox CLI or client initiates an outbound TLS connection to Wirebox’s edge routing network.
  2. Public Edge URL: Wirebox assigns a public HTTPS subdomain (e.g. https://eva.wirebox.run).
  3. Transparent HTTP & WebSocket Proxying: Incoming HTTP requests and WebSocket upgrades (Upgrade: websocket) to the public URL are forwarded locally to your configured loopback port or in-memory handlers, with full support for request headers, binary payloads, subprotocol negotiation (Sec-WebSocket-Protocol), and bidirectional streaming.

Starting a Tunnel via CLI

The simplest way to start a tunnel is using the Wirebox CLI:
CLI
Output:
Connecting local services to external agentsTunnels allow autonomous agents or external webhook senders to communicate with local development servers, test runners, or private APIs without port forwarding or static public IPs.

Programmatic Tunnel Management

Both the Python and TypeScript SDKs allow inspecting active tunnel sessions, health statuses, and routing targets:

WebSocket Support

Wirebox tunnels support bidirectional WebSocket proxying out of the box:
  • Local Port / URL Forwarding: Any WebSocket upgrade request to https://{handle}.wirebox.run is transparently upgraded and proxied to your local server (e.g. ws://127.0.0.1:8000).
  • Subprotocol Negotiation: Automatically preserves and echoes back Sec-WebSocket-Protocol headers (e.g. for Vite HMR, chat protocols, or custom agent streaming).
  • In-Memory WebSocket Handlers: TypeScript SDK allows handling incoming WebSocket connections in-process without listening on a TCP port.

Local Webhook Testing Workflow

A common workflow for autonomous agents is developing and debugging webhook handlers locally:
  1. Start your local webhook receiver on port 3000:
  2. Start a Wirebox tunnel for your agent:
  3. Register the generated tunnel URL as your agent’s webhook:
  4. Send an email to eva@wireboxmail.com. The webhook event lands directly on your local localhost:3000 server for interactive step debugging.