Getting started
volter-tunnel exposes a local port over a public, stable URL. It relays HTTP, streamed responses, and WebSocket traffic, and lets you reserve a friendly subdomain that survives reconnects.
Install
bash
bun add @volter/tunnel # client library + CLI (runs under Bun)This installs both the @volter/tunnel library and the volter-tunnel CLI.
Expose a port in two commands
bash
volter-tunnel login --host https://your-relay # prove a GitHub identity, save an api token
volter-tunnel --port 3000 --tunnel-id my-app # → https://my-app.your-relay (+ QR code)loginauthenticates against a relay and saves an api token to~/.config/volter/token. Use--gistif you'd rather prove your identity via a GitHub gist and send the relay no token at all.- The run command prints the public URL and a scannable QR code. Reconnecting with the same
--tunnel-idgives you back the same URL.
No account needed to try it
You can run a relay locally and point the client at it with --host http://127.0.0.1:8787 --auth-not-required — no hosted account required.
Common run flags
| Flag | Meaning |
|---|---|
--host <relayUrl> | Which relay to connect to (defaults to the public demo). |
--tunnel-id <id> | Request a specific reserved subdomain. |
--basic-auth user:pass | Gate the tunnel with HTTP basic-auth. |
--auth-not-required | Leave the tunnel open (no auth). |
--no-qr | Don't print the QR code. |
Next steps
- CLI reference — every command and flag.
- Library — embed tunnels with
createTunnel, or drive the relay API withVolterClient. - MCP server — let AI agents manage a relay.
- Self-host a relay — run your own on Cloudflare.