Remote Coding
Code from anywhere using Tailscale for secure remote access.
The Problem
By default, Broski connects over your local WiFi network. This works great at home or office, but what happens when you:
- • Leave the house for coffee and want to keep coding?
- • Travel and need to check on a long-running task?
- • Work from multiple locations throughout the day?
- • Want to approve a command while away from your system?
Without remote access, you lose connection as soon as you leave your network.
The Solution: Tailscale
Tailscale creates a secure, encrypted network between your devices that works from anywhere in the world. It's:
- • Free for personal use (up to 100 devices)
- • Easy to set up (no network configuration needed)
- • Secure (WireGuard encrypted)
- • Fast (peer-to-peer when possible)
Quick Setup
Use the bridge's built-in wizard:
broski setup-tailscaleOr install manually:
# macOS:
brew install --cask tailscale
# Windows:
# Download from https://tailscale.com/download/windows
# Linux:
# curl -fsSL https://tailscale.com/install.sh | shOpen Tailscale and sign in with Google, GitHub, or Microsoft.
- • iOS: App Store
- • Android: Play Store
Use the same account you used on your system. Both devices should now be on your "tailnet".
broskiThe QR code now includes your Tailscale IP. Scan it with Broski.
As long as both devices have Tailscale connected, Broski will work from any network.
Funnel Option (No VPN on Phone)
Don't want to install Tailscale on your phone? Use Tailscale Funnel to expose your bridge via a public HTTPS URL.
Enable Funnel
- Go to admin.tailscale.com
- Navigate to DNS → Enable HTTPS
- Then go to Access controls and enable Funnel
- Wait a few minutes for changes to propagate
broski --funnelIt now contains a public HTTPS URL (e.g., https://your-mac.tailnet-name.ts.net)
Funnel vs Tailscale VPN
| Feature | Tailscale VPN | Funnel |
|---|---|---|
| Phone app required | Yes (Tailscale) | No |
| Encryption | WireGuard (E2E) | TLS (to Tailscale edge) |
| URL type | ws://100.x.x.x:port | wss://name.ts.net |
| Latency | Lower (direct) | Higher (via Tailscale) |
| Public access | No | Yes |
| Setup | Install on both | Enable in admin |
Latency Expectations
Different connection methods have different performance characteristics:
| Connection Type | Typical Latency | Experience |
|---|---|---|
| Local WiFi | ~10ms | Instant, like being at your desk |
| Tailscale (same city) | ~30-50ms | Smooth, barely noticeable |
| Tailscale (cross-country) | ~50-100ms | Good, slight delay on typing |
| Tailscale Funnel | ~100-200ms | Usable, some buffering on streams |
| Tailscale (international) | ~150-300ms | Works, noticeable delay |
Workflow Tips
Your system needs to stay awake for the bridge to work. Adjust power/sleep settings or use:
# macOS: Keep system awake while bridge runs
caffeinate -i broski
# Linux:
# systemd-inhibit --what=idle broski
# Windows: Use the background service to keep it running
# broski installFor always-on access, run the bridge as a LaunchAgent:
See Background Service for setup instructions.
Look at the connection indicator in the app. Green = good, Yellow = okay but slow, Red = disconnected.
When you're back on the same network as your system, Broski will automatically use the faster local connection.
If connection drops briefly, your messages are queued and sent when reconnected. Don't keep retapping send.
Common Issues
- • Check Tailscale is connected on both devices
- • Verify both are on the same account (same tailnet)
- • Try
tailscale ping <mac-ip>from phone
- • Ensure Funnel is enabled in Tailscale admin console
- • Wait 5-10 minutes after enabling for propagation
- • Check
tailscale funnel status
- • Check if traffic is being relayed (see Tailscale status)
- • Try switching networks (e.g., WiFi → cellular)
- • If using Funnel, consider installing Tailscale on phone instead
This is normal. The app will auto-reconnect when your phone has stable network again. Tailscale handles IP changes automatically.
Summary
| If you want... | Use this |
|---|---|
| Best performance + security | Tailscale on both devices |
| No app on phone + convenience | Tailscale Funnel |
| Best latency | Local WiFi (same network) |
| Work + personal device separation | Funnel (work phone doesn't need Tailscale) |