How to let Claude control your iPhone
Give Claude Code or Claude Desktop a real iPhone to use - install Zeptap on your Mac, plug in the phone, pair Bluetooth, connect Claude, and hand it a first task. No jailbreak, Xcode or developer account.
Claude can't reach an iPhone on its own, but it can use one through Zeptap, a Mac app that gives AI agents a local MCP server for a real iPhone. You plug the iPhone into your Mac, pair it over Bluetooth, and add Zeptap to Claude Code or Claude Desktop. Claude then sees the screen, taps, swipes and types in any app, with nothing installed on the phone.
The same steps work for Codex, Cursor and any other MCP client; only step 4 changes.
What you need
| Needs | Detail |
|---|---|
| A Mac | macOS 14 or later, with Bluetooth |
| An iPhone | Any iPhone you can plug in and unlock. It can be signed in to a different Apple Account from the Mac |
| A USB cable | The screen comes over the cable, so the phone stays within cable reach of the Mac |
| Claude | Claude Code or Claude Desktop on the same Mac. Or skip both and use Zeptap's built-in chat on your Claude subscription |
You don't need a jailbreak, Xcode, Developer Mode or an Apple Developer account, and the iPhone stays on its normal iOS.
Set it up
Install Zeptap
Download Zeptap from zeptap.com, drag it to Applications and open it. The setup assistant starts on first launch and asks for Camera access (to see the iPhone's screen over USB) and Bluetooth access (to tap and type on it).
Plug in the iPhone and tap Trust
Connect the iPhone with a USB cable and unlock it. When it asks Trust This Computer?, tap Trust and enter the passcode. Zeptap turns on AssistiveTouch over USB, which is what lets a Bluetooth pointer act as your finger.
Pair over Bluetooth
On the iPhone, open Settings › Bluetooth and tap your Mac's name under Other Devices. Click Connect on the Mac and Pair on the iPhone if asked. This is the only step you do on the phone, and you do it once.
The Mac now acts as a Bluetooth keyboard and pointer for the iPhone. If another app on the Mac already does that, quit it first: only one can hold the connection.
Connect Claude
The last setup step lists the agents installed on your Mac. Click Add next to Claude Code or Claude Desktop. You can do the same later from Settings › Connectors.
Add runs this, which you can also run yourself:
claude mcp add --transport http --scope user zeptap http://127.0.0.1:47801/mcpStart a new Claude Code session to pick it up.
Connect an agent covers Codex, Cursor, other clients and manual config.
Check that Claude can see the phone
Ask Claude:
Take a screenshot of my iPhone and tell me what's on the screen.Claude calls Zeptap's screenshot tool and describes the screen. If it can't find the tool, start a new session. If the tool returns an error, see Troubleshooting.
Give Claude a task
Describe the outcome you want, in plain language:
On my iPhone, open Settings and turn on Dark Mode.Claude works out the taps itself and reports back with a screenshot of the result.
What Claude does on the phone
Claude drives the iPhone with Zeptap's MCP tools, one action at a time. Every action returns a screenshot taken once the screen stops moving, so Claude checks the result before its next step. A request like turn on Dark Mode becomes calls like these:
open_app("Settings")
tap_text("Display & Brightness")
tap_text("Dark")tap_text finds a label on the screen with on-device text recognition and taps its center, so Claude doesn't have to guess coordinates. open_app opens any installed app through Spotlight, and type_text types through the Bluetooth keyboard. The tool reference lists every tool.
Things to ask Claude
| Goal | Example prompt |
|---|---|
| Personal errand | Open the Uber app and tell me how much a ride to the airport costs right now. Don't book it. |
| Phone setting | Turn off Background App Refresh for every app except Messages and Maps. |
| Test your own app | Open MyApp from TestFlight, sign up with a new email, and report anything that looks broken, with screenshots. |
| Brand Instagram | Open Instagram, read the new DMs and draft a reply to each. Show me the drafts before sending anything. |
| Read something | Open Messages and summarize what Jay sent me today. |
Claude asks before it does anything hard to undo or that reaches other people, such as sending a message, posting, buying or deleting. Say so in the prompt if you want it to stop earlier, for example ask me before every tap in the banking app.
For multi-day routines on brand accounts, see Playbooks.
Let Claude unlock the phone (optional)
By default the iPhone has to be unlocked when Claude starts. To let Claude unlock it, open Settings › Phones in Zeptap, click Set Up Unlock… and enter the passcode. It's stored in your Mac's Keychain (not iCloud), Claude never sees it, and each unlock makes a single attempt so a wrong passcode can't lock you out. See Lock and unlock.
To keep the screen from locking during long tasks, set Settings › Display & Brightness › Auto-Lock to Never on the iPhone.
Without a terminal: Zeptap's chat
If you don't use Claude Code or Claude Desktop, Zeptap has a chat panel next to the phone mirror (⌘L). It runs Claude Code on your own Claude plan (Pro or Max), so there's nothing extra to pay Zeptap for the model. Sign in from Settings › Agents › Claude Code; Use your own AI account has the steps.
Limits
- A Mac is required. Zeptap doesn't run on Windows or Linux.
- The phone is wired. The screen comes over USB and touch goes over Bluetooth, so the iPhone sits next to the Mac. It isn't a remote or cloud phone.
- iPhone only. Zeptap doesn't drive Android phones or the iOS Simulator.
- Typing is US-keyboard ASCII. Accents, emoji and curly quotes can't be typed, so Claude rephrases text without them.
- Claude works from what's on the screen. It reads screenshots and text, not an app's internal structure. Icon-only buttons are tapped by position.
FAQ
Can Claude control an iPhone without a jailbreak?
Yes. Zeptap doesn't modify iOS or install anything on the phone. It reads the screen over USB and taps and types as a Bluetooth keyboard and pointer through AssistiveTouch, an accessibility feature built into iOS.
Do I need Xcode or Developer Mode?
No. Tools built on WebDriverAgent need Xcode, a signed runner and Developer Mode, and a free Apple ID means re-signing every 7 days. Zeptap needs none of that; Developer Mode stays off.
Does this work with Claude on the web or the Claude iPhone app?
No. Zeptap's MCP server runs on your Mac and only accepts connections from that Mac, so Claude has to run there too: Claude Code, Claude Desktop, or Zeptap's built-in chat.
Does my phone's data go through Zeptap's servers?
No. Zeptap has no account and no cloud. Screenshots go from your Mac to the agent you connect, and from there to Anthropic under your Claude plan. See Privacy and security.
Can I use ChatGPT, Codex or Cursor instead?
Yes. Anything that speaks MCP can connect to http://127.0.0.1:47801/mcp, and Codex and Cursor have one-click connectors in Settings › Connectors.
What does it cost?
Your first hour of live use is free. After that, Zeptap is a monthly or one-time license; see pricing. The Claude model is billed separately by Anthropic, through your existing plan.
Use your own AI account
Connect Zeptap's chat to a Claude subscription, a ChatGPT subscription (via Codex) or an OpenRouter API key - setup steps, where credentials are stored, and status fixes.
Connect an agent
Add Zeptap's local MCP server to Claude Code, Claude Desktop, Codex, Cursor, Hermes, OpenClaw or any Streamable HTTP client.