Free TestFlight beta · iPhone + Apple Watch

Your agents stop and ask. You answer from your wrist.

Coding agents run for hours and then freeze on one question — can I force-push?, overwrite this file? — and sit there until you walk back to the machine. LeSearch Mesh puts every machine you own, and every agent running on it, on your iPhone and Apple Watch. The moment one blocks, your wrist buzzes. You tap Continue. It carries on.

Join the TestFlight → Read the source Free · no account · nothing leaves your network
you@your-mac
$ curl -fsSL https://github.com/LeSearch-AI/mesh-install/releases/latest/download/install.sh | sh
meshd installed · launchd · survives reboot
run mesh pair to put it on your phone
The whole point

Three seconds instead of twenty minutes.

This is the loop the app exists for. Everything else is in service of it.

01

An agent blocks

Claude Code, Codex, whatever you run — it hits a permission prompt in a tmux session on your Mac and stops dead. A hook fires the instant it does.

02

Your wrist buzzes

The machine, the session, and the actual question, in a notification you can act on. A question that would force-push or delete gets a red button naming the verb — everything else is a calm Continue.

studio · deploy-api run git push --force?
Force pushReplyStop
03

You answer

Tap Continue and Enter lands in the real session. Or dictate a reply and it gets typed in. The agent picks up where it stopped — you never got up.

studio · docs-site edit vite.config.ts?
ContinueReplyStop
What it looks like

Real screens, real data.

Captured against a live daemon — a fleet with one machine honestly offline, a build streaming into the phone terminal, and the crown-scrollable terminal on the wrist.

Machines list with live stats Live terminal session on the phone Remote control of each machine Crown-scrollable terminal on the watch Machines on the watch
Setup

Three commands and an eight-character code.

There is no signup, no dashboard and no server of ours in the path. You install a small daemon on a machine you own, and your phone pairs with it directly.

1

Install the daemon on your Mac or Linux box

Bun + TypeScript, ~3 MB. Registers with launchd or systemd, so it comes back after a reboot. Read it before you run it — it is one file and it is public.

$ curl -fsSL https://github.com/LeSearch-AI/mesh-install/releases/latest/download/install.sh | sh
2

Pair your phone

Prints a QR code and an eight-character code that is good for ten minutes and one use. Scan it with your iPhone's camera. The Mac hands back its own access token and every other machine it already knows about — a fleet of four takes one code.

$ mesh pair
3

Let your agents tell you when they need you

Registers a hook with Claude Code so a blocked agent reaches your wrist. Merges into your existing hooks, backs up your settings first, and is safe to run twice.

$ mesh hooks install
On your wrist

Built watch-first, not watch-also.

Most tools in this space treat the watch as a notification mirror. Here it is the primary surface, and the phone is the thing that keeps it fed.

Complication

A count on your watch face

How many agents are waiting on you, all day, in every accessory family. When nothing is waiting it shows how much of your mesh is up — and it tells you when the reading has gone stale instead of quietly lying.

Notifications

Answerable, not just readable

Continue, Stop, or dictate a Reply straight from the notification. The reply is typed into the real session on the real machine — and once the task is done, the banner takes itself down.

Live Activity

Lock Screen and Dynamic Island

The one session that actually needs you, live on the Lock Screen and in the Smart Stack — with how much of your fleet is online next to it. Blocked always outranks merely busy.

Terminal

A real terminal, on a watch

Crown to scroll, auto-follow at the tail, a key bar for the characters a watch keyboard will not give you, and full VoiceOver.

Mac control

Mouse, keyboard, screen

Drive the Mac itself across multiple displays — trackpad-style pointer with pinch-to-zoom, sticky modifiers so ⌘⇧4 works, paste both ways, and a live screen view — when answering a question is not enough.

Machines

htop for everything you own

CPU, memory, disk, load and top processes for every paired machine. Wake a sleeping box over LAN from its neighbour. mesh status shows the whole fleet in one screen.

Local-first, and it matters

There is no cloud in the middle.

The comparable tools relay your sessions through their servers. That is the easy way to build this, and it means your terminal output, your prompts and your source code pass through somebody else's machine.

Where your data goes
Phone → your machine, directly, over your own private network. We run no relay and no database. There is nothing for us to read, sell or leak.
What an account costs you
There is no account. No email, no OAuth, no team seat. Pairing is a code your own machine printed.
How access is gated
A per-machine bearer token, minted by that machine, plus whatever network you already trust — your Tailscale ACL or your LAN. Nothing is port-forwarded and nothing is exposed to the public internet.
If this project disappears
The daemon keeps running and the source stays public. It is your machine, your token, and a plain HTTP API you can curl.
Questions

The honest answers.

What do I need?

An iPhone on iOS 26 and, to get the good part, an Apple Watch on watchOS 10 or later. At least one Mac or Linux machine to install the daemon on. The watch app is a companion to the iPhone app, so it installs from the Watch app on your phone, not from the watch itself.

Does it work when I am away from home?

Yes, if your phone and your machine are on the same private network — a Tailscale tailnet is what this was built against, and it is what we use. There is no hole-punching and no relay of ours, so if your phone cannot reach the machine, neither can the app.

Linux too?

Yes: the same installer, the same pairing, the same agent alerts, plus keyboard and mouse input through xdotool on X11. Screen capture is macOS-only today, and Wayland input is not supported yet.

Which agents does it watch?

Claude Code is wired up by mesh hooks install. Anything else can post to the daemon's /events endpoint with one curl call, which is how the hook itself works — so Codex, a CI job, or a shell script can all raise your wrist.

Is it open source?

Yes — all of it. The daemon, the mesh CLI, and the iOS + watchOS app live at LeSearch-AI/mesh, and the one-line installer at LeSearch-AI/mesh-install. The part that runs on your machine is one readable TypeScript file — audit it before you run it.

How finished is this?

It is a beta that its author uses daily, and it will have rough edges you find before we do. Send them through TestFlight's feedback — screenshots come straight to us. The changelog and roadmap say exactly where it stands.

Stop walking back to the machine.

Free while it is in beta. Takes about two minutes to set up.

Join the TestFlight → See the setup
iPhone · iOS 26 Apple Watch · watchOS 10+ macOS or Linux daemon