web-share
Browser access to a local rmux daemon
The rmux daemon exposes only the /share WebSocket endpoint. The browser app is served by
share.rmux.io, then connects to the endpoint encoded in the URL fragment.
First time on Chrome
Local mode opens https://share.rmux.io/share/ and connects to
ws://127.0.0.1:<port>/share. Chrome 147 and newer can ask for Local Network Access
before allowing that WebSocket. Click Allow to connect to the rmux daemon running on
your machine.
Lost connection
A local share is tied to the running rmux daemon, the share TTL, and the selected pane. If the page
reports a lost connection, refresh the page first. If the share expired or was stopped, create a new
rmux web-share URL.
Use rmux without internet
After one successful online visit, the share app installs a Service Worker and caches the static app
shell. Later visits to /share/ can load without internet, but the browser still connects to
the rmux daemon through the endpoint in the URL.
For machines that must never depend on share.rmux.io, self-host the frontend and pass that
URL to rmux with --frontend-url.
Share over internet
rmux provides the browser frontend by default. To share outside your machine, bring a public HTTPS
endpoint that forwards to the local daemon, then pass it with --tunnel-url.
rmux web-share -t work --tunnel-url https://terminal.example.com
The generated link keeps using https://share.rmux.io/share/, but its WebSocket endpoint
becomes wss://terminal.example.com/share.
BYOT recipes
Cloudflare Quick Tunnel:
cloudflared tunnel --url http://127.0.0.1:9777
rmux web-share -t work --tunnel-url https://<url-printed> Tailscale Funnel:
sudo tailscale funnel 9777
rmux web-share -t work --tunnel-url https://<machine>.<tailnet>.ts.net ngrok:
ngrok http 9777
rmux web-share -t work --tunnel-url https://<url-printed> zrok:
zrok share public http://127.0.0.1:9777
rmux web-share -t work --tunnel-url https://<url-printed> Self-hosted VPS with Caddy and reverse SSH:
# VPS Caddyfile
terminal.example.com {
reverse_proxy 127.0.0.1:19777
}
# local machine
ssh -N -R 127.0.0.1:19777:127.0.0.1:9777 user@vps
rmux web-share -t work --tunnel-url https://terminal.example.com Air-gapped deployments
- Build this site and publish the generated
dist/directory on an internal HTTPS host. - Make the share app reachable at
https://share.internal.example/share/. - Run
rmux web-share --frontend-url https://share.internal.example/shareso Origin validation matches the hosted frontend. - Use
--tunnel-urlonly when the WebSocket endpoint itself is reachable through a public or internal reverse proxy.