amux Tunnel
A stable public HTTPS URL for your local AI agent dashboard — no port forwarding, no router changes.
Quick answer: amux tunnel is a built-in HTTP relay. Run amux tunnel start 8822 and your local dashboard becomes reachable at https://<id>.t.amux.io/. The URL is stable across restarts. Requires amux Cloud ($20/mo).
Quick start
# 1. Get amux Cloud token at amux.io/cloud
# 2. Set the token in your config
amux config set cloud_token YOUR_TOKEN
# 3. Start the tunnel (forward to local port 8822)
amux tunnel start 8822
# Output:
# Tunnel active: https://a3f8c1d2e4b5f6a7.t.amux.io/
# Forwarding to http://localhost:8822
Your amux dashboard is now publicly reachable at the URL shown. Share it with teammates, configure it as a webhook endpoint, or open it on your phone from anywhere.
How it works
amux tunnel uses an outbound-dial architecture: your machine initiates the connection to the amux cloud gateway over TLS. The gateway holds the connection open and routes incoming HTTPS requests back through it. This means:
- No inbound firewall holes — your machine never accepts unsolicited connections
- Works behind NAT, corporate firewalls, and home routers without any configuration
- TLS terminates at the gateway; traffic to your local port is plain HTTP
The tunnel ID is sha256(token)[:16] — deterministic and stable. Same token = same URL, every time.
Use cases
| Use case | How tunnel helps |
|---|---|
| Mobile dashboard access | Open your amux dashboard from iPhone or Android — same URL you set in the iOS app |
| Webhook testing | Give Stripe, GitHub, or Linear your tunnel URL; webhooks reach your local server. URL is stable — configure once |
| OAuth redirect URIs | Register https://<id>.t.amux.io/auth/callback once; it works across restarts |
| Team demo sharing | Let a teammate see your local agent fleet in real time without VPN |
| Remote access from second machine | Access your dev machine's amux from a second laptop on another network |
| CI/CD integration | Trigger amux sessions from GitHub Actions via the public URL |
Limitations
amux tunnel is an HTTP/HTTPS relay — nothing more. Know what it does not support:
- No WebSocket — the amux SSE event stream uses long-polling fallback when accessed through the tunnel
- No TCP or UDP tunneling — databases, SSH, and raw sockets are not supported
- No custom domains — URLs are always
*.t.amux.io - No free tier — tunnel requires amux Cloud ($20/mo or $200/yr)
- One tunnel per token — each cloud token forwards exactly one local port
If you need WebSocket support or custom domains, see alternatives to amux tunnel.
Tunnel vs alternatives
| Tool | Price | HTTP | WebSocket | TCP | Custom domain | Stable URL (no restart) | Setup effort |
|---|---|---|---|---|---|---|---|
| amux tunnel | $20/mo (bundled with all amux Cloud features) | Yes | No | No | No | Yes (token-derived) | Zero — one command |
| ngrok (free) | $0 (random URL per restart) | Yes | Yes | No | No | No | Low |
| ngrok (paid) | $10–20/mo (tunnel only) | Yes | Yes | Yes | Yes | Yes | Low |
| Cloudflare Tunnel | $0 (free) | Yes | Yes | No (HTTP only) | Yes (own domain) | Yes | Medium — cloudflared daemon + DNS |
| localtunnel | $0 (open source) | Yes | No | No | No | No | Low |
| SSH reverse tunnel | ~$5/mo (VPS) | Yes | Yes | Yes | Yes (own domain) | Yes | High — VPS + nginx + certs |
| Self-host amux gateway | $0 (open source in cloud/gateway/) | Yes | No | No | Yes (own domain) | Yes | Medium — GCP/AWS VM + Terraform |
Self-hosting the gateway
The tunnel gateway is open source. The cloud/gateway/ directory contains Terraform and a setup script to deploy your own relay to GCP (or any VM with a public IP). Point the DNS to your server, configure your token, and amux tunnel start 8822 works exactly the same way — except traffic stays on your infrastructure.
# Deploy your own tunnel gateway (one-time setup)
cd cloud/gateway
terraform init
terraform apply # prompts for GCP project + region
# Then point amux at your gateway
amux config set tunnel_gateway https://t.yourdomain.com
Security
The tunnel forwards all HTTP traffic without authentication by default — anyone who knows the URL can reach your amux dashboard. Protect it by enabling amux's built-in password protection:
amux config set dashboard_password yourpassword
amux serve # dashboard now requires login
All traffic between your machine and the gateway uses TLS. The gateway does not log request bodies.
Get amux tunnel with Cloud
$20/month includes the tunnel relay plus all amux features. Everything else is free open source.
Get amux Cloud View on GitHubFrequently asked questions
What is amux tunnel?
amux tunnel is a built-in HTTP/HTTPS relay that gives your local amux dashboard a stable public URL at https://<id>.t.amux.io/. Your machine dials out to the amux cloud gateway — no port forwarding, no firewall changes, no router configuration needed. The tunnel URL is stable across restarts as long as your token stays the same.
How do I start the amux tunnel?
Run: amux tunnel start 8822. This starts a relay that forwards https://<id>.t.amux.io/ to http://localhost:8822 on your machine. The tunnel ID is derived from your amux cloud token (sha256[:16]), so the URL is the same every time.
Does amux tunnel support WebSocket or SSE?
No. amux tunnel is an HTTP/HTTPS relay only. It does not support WebSocket connections, Server-Sent Events (SSE), TCP tunneling, or UDP. If you need WebSocket tunneling, use ngrok or Cloudflare Tunnel instead.
Is amux tunnel free?
amux tunnel requires amux Cloud ($20/month or $200/year). Everything else in amux — the dashboard, agent orchestration, kanban board, mobile app, self-healing watchdog — is free and open source under MIT license. You can also self-host the tunnel gateway using the code in cloud/gateway/.
What is the amux tunnel URL format?
The URL format is https://<id>.t.amux.io/ where <id> is the first 16 hex characters of the SHA-256 hash of your amux cloud token. The URL is deterministic and stable — it does not change between restarts.
Can I use amux tunnel to test webhooks?
Yes. Start the tunnel, give the public URL to Stripe, GitHub, or any webhook provider, and incoming webhook requests are forwarded to your local server. Because the URL is stable (derived from your token), you only need to configure the webhook URL once.
How is amux tunnel different from ngrok?
amux tunnel is simpler and purpose-built for exposing your AI agent dashboard. It has fewer features than ngrok (no TCP, no custom domains, no request inspector UI) but costs less: $20/mo gets you all of amux Cloud, whereas ngrok alone is $10–20/mo for a static URL. If you need WebSocket tunneling or TCP, use ngrok or Cloudflare Tunnel.