Guide · 2026

How to run Claude Code from your iPhone

By Eric Ortiz · 6-min read

There are five ways people try to run Claude Code from a phone. Four of them require a server, custom daemon, or paid tunnel. One uses iMessage as the interface. This is a practical guide to that fifth path.

The five options (and why most of them break)

  1. SSH into your Mac from a terminal app. Works if you have Tailscale, Mosh, or a VPN. Brittle. Mobile keyboards make Claude Code prompts painful.
  2. Anthropic's web interface. No native iOS app. Safari works but you lose Claude Code's local file context. Different product.
  3. Anthropic's iMessage plugin. Real, free. Text-only. No voice in, no voice out, no file routing.
  4. Cursor / Aider / other Claude wrappers. Most are desktop-only. Even the ones with mobile companions don't have voice.
  5. iMessage as the interface, with a small bridge on the Mac. What we built. The rest of this guide.

What "iMessage as interface" actually means

You text or voice-message a dedicated iCloud account from your iPhone. A small script on your Mac watches for those messages, pipes them into Claude Code, and texts the responses back, iCloud Drive handles any file syncing both ways.

The phone side is just Messages. No new app to install, no login, no notifications setup. The Mac side is one bash script + one AppleScript helper + (optional) three iOS Shortcuts for the voice layer.

The five components

1. A dedicated agent iCloud account

Free to create at appleid.apple.com. The point is to keep your real iMessage (banking, family, 2FA codes) separate from the agent. The bridge only listens for messages addressed to the agent address.

2. The bridge script (Mac → polls chat.db)

Apple stores all iMessage history in ~/Library/Messages/chat.db (SQLite). A small bash + sqlite3 polling loop checks every 3 seconds for new incoming messages addressed to the agent account, deduplicates them, and writes each new message to a JSONL stream file your Claude Code session can read.

Total bridge: ~80 lines of bash. The interesting parts: Apple's Cocoa epoch starts at 2001-01-01 and stores message dates in nanoseconds, you have to convert if you want to filter by time. And Terminal needs Full Disk Access granted (System Settings → Privacy & Security → Full Disk Access → +Terminal) or sqlite3 can't open chat.db.

3. The send script (Mac → Messages.app via AppleScript)

AppleScript talks to Messages.app over the iMessage service. A wrapper script takes a target handle and a message text, generates the AppleScript dynamically, and shells it out via osascript. Once Terminal has Automation permission for Messages (granted on first prompt), this Just Works.

4, iOS Shortcuts (the voice layer, optional but the magic)

Three Shortcuts on iPhone:

These are all installable from a single iCloud Shortcut share link in 2 taps each.

5, iCloud Drive (the file layer)

Drop a file into a shared folder on your phone, it's on the Mac a second later. Claude Code can read or modify files in that folder, and the changes sync back to your phone. This is Apple's existing iCloud sync, no new infrastructure needed.

"The iPhone side is just Messages. No new app, no login. The Mac side is one bash script, one AppleScript helper, and three iOS Shortcuts. Total install: under an hour."

What this gets you

From your iPhone (anywhere, gym, car, coffee shop, casino floor, walking the dog):

What it doesn't require

What it does require

The fastest install path

Three options, ranked by time-to-working:

  1. Use Remote Claude. $49 PDF setup guide + the 3 pre-built Shortcuts (free bonus). Setup in under an hour. linkpayhub.com/remote-claude.html.
  2. Build it yourself from scratch, possible. The architecture in this post is the whole story. Allow 4-6 hours for the first build, longer if you hit the macOS Automation permission gotchas (the bridge needs Full Disk Access, Messages.app needs Automation permission, Shortcut imports may need "Allow Untrusted Shortcuts" enabled).
  3. Wait for Anthropic. Voice mode has been "rolling out" for months at ~5% of accounts, iMessage plugin is text-only. Indie shipping cycle vs. Anthropic shipping cycle is wildly different.

The honest tradeoffs

This setup isn't for everyone:

Why this is the right architecture (until Anthropic ships native)

Native voice + mobile from Anthropic is "soon" but has been soon for 12+ months. The iMessage approach uses primitives Apple maintains at scale, they don't break iMessage, ever. Indie code on top of that infrastructure inherits the reliability without owning it.

When Anthropic does ship native voice mode for everyone, this setup still works as the file/text fallback. You don't lose anything by adopting it now.

Get the full setup

Remote Claude. $49, one-time. PDF + 3 Shortcuts. 14-day refund.

See it →