Tunnels
tunnel opens https://<name>.tunnel.xvii.network for a local port until you stop
it.
xvii tunnel 5173 # a random name and a QR code
xvii tunnel 3000 --name api --inspect # a chosen name; requests printed as they come
xvii tunnel http://localhost:8080 --password s3cret
The CLI keeps one WebSocket to the service; every visitor request is a stream answered from your local
address. WebSocket upgrades pass through, responses stream, and the CLI reconnects with the same name
after a network drop.
Names
A tunnel gets a random name, any free name you ask for, or a name your team reserved. Only members of the
team can open a tunnel on its reserved name.
xvii tunnel names --reserve api
xvii tunnel names --release api
xvii tunnel ls
Inspector
The last 200 requests are kept in memory (headers, bodies up to 64 KB, timing, the visitor) and shown in
the panel and with --inspect. Send any of them again from the panel.
Access
Tunnels are public unless you set --password (basic auth). Don't expose an unauthenticated database,
debug console, admin page or environment dump. Close the tunnel when you are done.
Tunnel or hooks?
For receiving one provider's webhooks while you develop, hooks is usually better: the
address stays the same, requests are kept when your laptop is off, and you can replay them.
Limits: tunnel.tunnels, tunnel.names, tunnel.bandwidth (per month); requests up to 32 MB.