One command puts your local Laravel app online — app, Vite HMR and Reverb websockets all working through a single tunnel. Zero config. Zero Vite restart. No account needed.
A raw tunnel — ngrok, cloudflared, Expose — forwards your app but leaves the modern Laravel stack in pieces. localhoist drives one for you and fixes all three, in-flight, so your stock config never changes.
Plain tunnels keep pointing HMR at localhost:5173. localhoist rewrites Vite's client config in-flight — hot reload just works.
Echo keeps dialing localhost:8080. localhoist rewires Reverb's connection config as it passes through, so realtime survives the tunnel.
A mismatched APP_URL breaks signed URLs and asset generation. localhoist keeps it aligned with the public host — no .env mutation.
Point Stripe, GitHub or any provider at your public tunnel URL — their webhooks reach your local app directly, so you debug the handler against real payloads without deploying.
Open your dev site from a phone or tablet via the public URL and QR code — no deploy just to check a real device.
Share a link and get instant feedback from teammates or clients. No deploy step, no screen-sharing call.
localhoist detects your Laravel app, opens a single tunnel, and rewires Vite and Reverb as traffic passes through. You get a public URL and a QR code. When you're done, everything is restored exactly as it was.
vite.config.js never changes and Vite never needs to restart.Then cd into any Laravel app and run localhoist — or php artisan share.
Ships on a free Cloudflare quick tunnel — no account. Want a stable domain?
Run --transport ngrok with your own ngrok. A hosted relay with
stable subdomains is on the roadmap.
Plain tunnels forward a port. localhoist forwards your whole Laravel dev environment — HMR, websockets and signed URLs, all intact.