LAN access
SimDeck binds to 127.0.0.1 by default. Bind to a LAN address when another device needs to open the browser UI.
Start a LAN session
simdeck \
--bind 0.0.0.0 \
--advertise-host 192.168.1.50 \
--openOpen the printed network URL from the remote browser:
http://192.168.1.50:4310Enter the pairing code printed by the CLI. After pairing, the browser receives the API cookie.
Pick the right host
Use an IP address or hostname that the remote device can resolve:
simdeck --bind 0.0.0.0 --advertise-host my-mac.local --open
simdeck --bind 0.0.0.0 --advertise-host 192.168.1.50 --open
simdeck --bind 0.0.0.0 --advertise-host 100.101.102.103 --openIf you bind to 0.0.0.0 but advertise localhost, remote browsers will try to connect to themselves. Tailscale addresses work like direct HTTP hosts; discovery does not use LAN broadcast across the tailnet, so use the Tailscale IP or MagicDNS name when pairing a native client.
Direct API access
Loopback browser sessions are authenticated automatically. Direct API callers should send the token from:
simdeck service statusUse either header:
X-SimDeck-Token: <token>
Authorization: Bearer <token>Security checklist
Use LAN mode only on networks you trust.
Treat the service token as a secret.
Restrict the port with macOS Firewall when needed.
Stop the service when the shared session is done:
shsimdeck service stop
Troubleshooting
| Symptom | Fix |
|---|---|
| Remote browser cannot connect | Confirm --bind 0.0.0.0, firewall rules, and the advertised host |
| Pairing code is rejected | Restart the service and use the newly printed code |
| Stream connects but stutters | Use --stream-quality low or --video-codec software |
API script gets 401 | Send X-SimDeck-Token or Authorization: Bearer <token> |