Touch the grass,
remote in hand.

Remote control of all your coding agents, from your iPhone or Android.

Download on the App Store Get it on Google Play
Linux or macOS
 curl -fsSL https://remotly.dev/install.sh | sh
Getting started

iOS 17 · Android 8 · Linux or macOS · open source

9:41
Today
Remotlynow
Claude · Waiting for approval
remotly.dev
Bash · npm test — Run the tests

02answer

Tap. The cursor moves on your desk.

The dialog is read straight out of the pane and becomes a card. Choose, and Remotly walks the ❯ marker to your option in the real dialog, reads the screen back to be sure, then presses Enter. Deny with feedback types your words to the agent instead.

03fit

It’s the terminal, not a picture of it.

Every 40 ms the bridge reads the pane and sends only the rows that changed. Open a pane and it resizes the real PTY to your phone’s width, so the agent lays out its own screen. Nothing is scaled or cropped.

04lock screen

Answer it from the lock screen.

A dialog nobody answers becomes a time-sensitive notification with the actions on it. Approve or deny from the lock screen. Whether the command is quoted in the notification is your setting; Require unlock is on by default.

05done

Ask to be told when it’s done. Then put the phone down.

One push when the agent finishes its turn; Reply from it to send the next prompt. In the meantime a Live Activity keeps a running clock on every working agent.

06pair

Pair once, with a code your own machine prints.

remotly-bridge pair shows a QR on the host. Scan it. The code is single-use, expires in five minutes, and is only accepted from a device on your tailnet.

07direct

The terminal goes straight to your phone.

Your phone talks to a small bridge beside herdr, over Tailscale. The bridge asks tailscale whois who is calling, keeps only the SHA-256 hash of your token, and gets its certificate from your tailnet. Notifications are the one exception: they go through our push relay to Apple or Google, and push.include_excerpt: false keeps pane text out of them.