Localdock puts your dev server on your phone with one switch — the project named dashboard answers at dashboard.local for any device on your Wi-Fi — and when something's broken there, you tap it and the bug lands on your Mac, ready for your coding agent.

One switch, then Safari

Share the project on your Wi-Fi, then click its QR button in the Localdock menu bar and point the phone's camera at it — or type dashboard.local. That's the whole procedure. You get real iOS Safari rendering on a real device: the actual viewport, the actual keyboard behaviour, the actual tap targets, with hot reload still live while you edit on the Mac.

Found a bug? Tap it.

This is where testing on a phone used to fall apart: you find the bug, then take a screenshot, type a description with your thumbs, AirDrop it over, and your agent still has to guess which request failed. With Tap to Fix on for the project, every page has a small bug button. Tap it, tap the broken element, add a few words, send.

The report lands on your Mac with a notification, carrying a picture of the screen with your element marked, the requests that failed and the console errors around them — no cookies, no form values, no passwords. One click hands it to Claude Code or Codex, and when the request that failed comes back 200, Localdock marks it fixed. How the hand-over works.

Why the usual ways hurt

Typing the Mac's LAN IP plus a port works until DHCP hands the machine a new address or the framework bumps the port — then every note you scribbled is wrong. The USB cable and desktop dev tools drive a simulator or a tethered session, which is not how the phone behaves on its own. And a public tunnel to reach a device sitting on the same desk means an account, a URL that changes, and your work crossing the internet to cross the room. A name on the local network skips all of it: stable because it's a name, and it never leaves your Wi-Fi.

What your phone can and can't reach

Sharing is per-project and off by default. Devices on your Wi-Fi can open exactly the projects you switched on; everything you didn't is refused without revealing that it exists. Nothing else on your machine becomes reachable, and nothing listens on the network at all until the first share. The name is announced over mDNS — the same mechanism macOS already uses to announce your Mac — so there's nothing to configure on the router either.

When the phone isn't on your Wi-Fi

Same name, one step further: a public link anyone can open — a client, a colleague in another city — with a secret key in the URL and an expiry on the clock. Tap to Fix works over it too, so they can send you bugs the same way.

Questions

Does hot reload work on the phone?

Yes. Localdock forwards the connection after reading the name, so WebSockets, HMR and server-sent events reach the phone exactly as they'd reach your browser. With Tap to Fix on, it also adds one script tag to the project's HTML page loads; everything else passes through as your server sent it.

Does it work on Android?

The honest answer: .local names rely on mDNS, which iOS handles natively — the iPhone is the verified, primary story. Android's mDNS support has historically been patchy and varies by device and browser, so treat Android as a nice surprise rather than a promise. A public link works on any phone.

Do I need to install anything on the phone?

No — that's the point. The phone opens a URL in its own browser, and the Tap to Fix button arrives with the page. No app, no profile, no certificate, no cable.

Can I see the phone's console?

Yes. While the project is open on the phone with Tap to Fix on, its console lines and requests stream to the Console in Localdock on your Mac, live — the devtools you can't open on an iPhone.

Localdock is a macOS app with Tap to Fix: point at a bug on any device, and your coding agent gets the rest. A one-time purchase — no subscription, no account. Get Localdock