Share port 3000
Have your app running on port 3000.
Install and sign in
curl -fsSL https://tunn.to/install.sh | shtunn loginIf tunn is not found, add $HOME/.local/bin to PATH. Manual downloads · Install recovery
Share port 3000
Replace alex@example.com with your invitee's email.
tunn 3000 --allow=alex@example.comSend them the printed HTTPS URL. They sign in to a personal account with the allowed email, using Google or an email link where offered by the relay. Everyone else gets a 403 at the edge, before anything reaches your app.
Other ways to share
# only you tunn 3000 # everyone at a domain tunn 3000 --allow=@example.com # anyone with the link tunn 3000 --public
For public webhooks, verify signatures at the edge and keep your app's own check on.
Watch requests and usage
Press Ctrl-C. Keep your app running and restart tunn.
tunn 3000 --allow=alex@example.com --inspectUse the new HTTPS URL. Keep tunn running.
In another terminal, run tunn usage.
The local inspector stores headers, not bodies, unless you add --inspect-body. Your account also has a request inspector. Quotas cover all your endpoints and reset monthly in UTC. At a limit, tunn stops; there are no overage charges. Plans and units
Connect a local MCP server
Run this with your local MCP server listening at http://127.0.0.1:3000/mcp.
tunn mcp http://127.0.0.1:3000/mcpMCP endpoints are private by default. Copy the printed /mcp URL into your client, sign in and approve access. Full walkthrough
Coming from ngrok
# ngrok http 3000 tunn 3000 --public # ngrok http 3000 --subdomain=work tunn 3000 --name=work --public
Run tunn login instead of setting an authtoken. ngrok domains, config files and traffic policies do not carry over. Free keeps one name, Pro keeps ten, random names included. tunn vs ngrok