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.
curl -fsSL https://github.com/LeSearch-AI/mesh-install/releases/latest/download/install.sh | sh
This is the loop the app exists for. Everything else is in service of it.
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.
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.
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.
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.
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.
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
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
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
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.
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.
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.
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.
Crown to scroll, auto-follow at the tail, a key bar for the characters a watch keyboard will not give you, and full VoiceOver.
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.
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.
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.
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.
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.
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.
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.
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.
Free while it is in beta. Takes about two minutes to set up.