Phone → AI Agent → Local Deploy: My Tailscale Dev Setup

·4 min read·

I have three devices: a Pixel 7a, a Mac Mini (always-on at home), and a MacBook Pro. They’re all on the same Tailscale network. This means I can do something that feels like magic:

I text my AI agent from my phone → it builds a website on my Mac Mini → I open the URL on my phone and see it live.

No cloud deploys. No waiting. No port forwarding. Here’s the setup.

The Network

Tailscale creates a peer-to-peer WireGuard mesh between your devices. Each device gets a stable IP on a private 100.x.x.x network. No config, no firewall rules, no opening ports to the internet.

My network:

DeviceTailscale IPRole
Mac Mini100.103.148.49Always-on dev server, runs the AI agent
MacBook Pro100.113.60.43Portable dev machine
Pixel 7a100.65.203.76Where I text the agent from

The AI Agent

I run OpenClaw on the Mac Mini. It’s an AI agent framework that connects to WhatsApp (among other channels). The agent has full access to the Mac Mini’s filesystem and can run shell commands.

So when I send a WhatsApp message like:

“Build me a landing page for X with a hero section and a signup form”

The agent:

  1. Scaffolds the project (or edits an existing one)
  2. Runs npm run dev on port 4321 (or whatever)
  3. Tells me the URL: http://jayeshs-mac-mini:4321

Because my phone is on the same Tailscale network, I can open that URL directly. The Tailscale app on Android resolves the hostname. I’m looking at the live dev server from my couch, a café, wherever.

Setup (15 minutes)

1. Install Tailscale on all devices

  • Mac: Download from tailscale.com or brew install tailscale
  • Android/iOS: Install from your app store
  • Sign in with the same account on all devices

That’s it for networking. Tailscale handles key exchange, NAT traversal, and DNS automatically.

2. Enable MagicDNS

In the Tailscale admin console, make sure MagicDNS is turned on. This lets you use device names (like jayeshs-mac-mini) instead of IPs.

3. Set up the AI agent on your server

On the Mac Mini (or whatever machine stays on):

# Install OpenClaw
npm install -g openclaw

# Start the gateway
openclaw gateway start

# Connect WhatsApp
openclaw channels login --channel whatsapp
# Scan the QR code with your phone

4. Tell the agent to bind to 0.0.0.0

This is the one thing people miss. Dev servers default to localhost, which means only the same machine can access them. You need the agent to start dev servers bound to all interfaces:

# Instead of:
npm run dev
# Use:
npm run dev -- --host 0.0.0.0

Or for Vite/Astro projects, add to your config:

// astro.config.mjs
export default defineConfig({
  server: { host: '0.0.0.0' }
});

Now any device on your Tailnet can reach the dev server.

Why This Works Well

No cloud needed. The dev server runs on hardware you own. No deploy step, no waiting for CI, no build minutes.

Secure by default. Tailscale traffic is end-to-end encrypted with WireGuard. Only your devices can see each other. No ports exposed to the internet.

Works from anywhere. Tailscale handles NAT traversal. Your phone at a coffee shop can reach your Mac Mini at home as if they were on the same LAN.

The MacBook Pro slots in too. When I’m at my desk, I can SSH into the Mac Mini or access the same dev servers from my laptop. Same Tailnet, same URLs.

The Flow in Practice

A typical session looks like:

  1. I’m on my phone, have an idea for a page
  2. Text the agent: “Add a /uses page to my site listing my dev setup”
  3. Agent creates the file, starts the dev server
  4. I open http://jayeshs-mac-mini:4321/uses on my phone
  5. “Make the font bigger and add a dark mode toggle”
  6. Agent edits, hot reload kicks in, I see the change instantly

It’s conversational development. No laptop required. The AI does the typing, Tailscale does the networking.

Tips

  • Keep the Mac Mini on a wired connection for reliability. Wi-Fi works but wired is better for an always-on server.
  • Use Tailscale SSH if you want to skip managing SSH keys: tailscale up --ssh on the server, then ssh jayeshs-mac-mini from any device.
  • Tailscale Funnel can expose a dev server to the public internet temporarily if you need to share a preview link with someone outside your network.
  • Battery drain on mobile is minimal. Tailscale’s WireGuard implementation is lightweight. I leave it on all day.

That’s the whole setup. Tailscale for networking, OpenClaw for the AI agent, WhatsApp for the interface. Three devices, zero config headaches, and I can build websites from my phone.