I bridged my Mac and Linux PC with Tailscale and a few shell scripts
Two machines, one mesh network, one always-on gateway. Here's how the agents talk across hardware.
The setup
Two boxes. MacBook Air on the desk — fast, quiet, 24/7 gateway. Linux PC under the desk — Nvidia 16GB VRAM, 64GB RAM, 1TB SSD. The PC runs the heavy local models. The Mac handles inbound (Telegram, iMessage, X), routes work to the PC, and surfaces results back.
Tailscale glues them together. No port forwarding. No public IPs. Just ssh pc from the Mac and ssh mac from the PC and everything works.
What runs where
Mac (gateway):
- OpenClaw always-on event bus
- Telegram bot (
@pluributtBot) - iMessage and X capture
- Chief-of-staff briefing
- Runs Gemma 4 local for cheap routing decisions
PC (compute):
- Ollama serving gemma4-obliterated, gemma4:26b, qwen3.5:27b
- ComfyUI for image gen
- Long-running batch jobs
- Daily YouTube comment scrapes
The Mac never blocks on a PC job. It dispatches, returns immediately, and the result lands in a queue the briefing reads later.
The bridge
~/mac-bridge/mac-cmd.sh on the PC lets the PC reach back to the Mac. ssh pc on the Mac reaches forward to the PC. Both directions tested, both work, both required configuring SSH keys without passphrases — that part is the only opinionated infra step.
What broke
The PC hard-rebooted once last month. ComfyUI service was crash-looping on a missing dep — comfy_aimdo.host_buffer not found because the venv had comfy-aimdo==0.1.8 (no submodule). systemd had Restart=on-failure with no rate limit. 134,665 restarts on the previous boot. Each restart reloaded the NVIDIA driver. Eventually the kernel wedged.
Fix: upgrade comfy-aimdo to 0.3.0, add RestartSec=30, StartLimitBurst=3, StartLimitIntervalSec=600 to the systemd unit. No more thrash loops.
The misleading part: the kernel logged mce: Hardware Error mid-thrash. Easy to misread as failing hardware. It wasn't. The GPU was fine — it was just being abused by 4,000 driver reloads per hour.
What you can steal
If you've got two boxes and you want them to act like one machine:
- Install Tailscale on both. Done in 5 minutes.
- Set up SSH keys both directions.
ssh pcandssh macshould both work without a password. - Put long-running model jobs on the box with the GPU. Put always-on gateway work on the box that's always on.
- Add
RestartSecandStartLimitBurstto every systemd unit you write. Cron-loop-equivalent thrash will eventually wedge the kernel.
Total cost: $0/month (Tailscale free tier). Total power draw: about $35/month for the PC. Total compute available: more than I'm using.
The setup pays for itself the first time you'd otherwise rent a GPU box on Vast.ai.