Detailed Analysis
A developer has released sidetap, an open-source Python tool that turns an iPhone into a controllable device for Claude Code via the Model Context Protocol (MCP), enabling the AI agent to view an iPhone's screen and perform actions like tapping buttons and sending text messages. The project is notable for its accessibility: it works entirely from a Windows PC over USB, requiring no Mac, no jailbreak, and no paid Apple developer account. By running `claude mcp add`, users expose a set of native MCP tools that Claude Code can call directly as typed functions, such as `send_message("Mom", "on my way")`, which triggers the agent to open Messages, locate the correct conversation thread, type the message, and send it—all orchestrated through structured tool calls rather than screen-scraping or vision-based guesswork.
Technically, the project's most interesting contribution is a workaround for a previously undocumented iOS code-signing bug. Sideloading WebDriverAgent (the automation framework Apple uses for UI testing) with a free Apple ID via Sideloadly installs the outer app correctly but silently fails to launch it, because Sideloadly signs the outer app while leaving the nested `.xctest` runner unsigned—something iOS quietly refuses to load. The developer's fix intercepts the ephemeral provisioning profile Sideloadly generates (which exists in the temp folder for only a few hundred milliseconds) and re-signs the entire bundle locally using go-ios, an open-source library for interacting with iOS devices without Xcode. This avoids scripting Apple credentials or any network calls to third-party services, addressing a real privacy and security concern for anyone automating a personal device.
The tool's design choices reflect awareness of the risks inherent in giving an AI agent physical control over a personal smartphone. Rather than relying on OCR or vision models to interpret the screen, sidetap reads the actual UI element tree, so `tap_text("General")` clicks the real accessibility-tree element rather than guessing coordinates from a screenshot—a more robust and less error-prone approach that mirrors how professional QA automation frameworks work. It also includes a live browser-based viewer running at roughly 34 fps for human oversight, guardrails that block ambiguous contact matches before sending messages, and a prominent "STOP" button that freezes the agent while leaving the live view active—explicitly designed because, in the developer's words, watching an agent drive a real phone is "unsettling the first time." A "doctor" diagnostic command also proactively surfaces the free Apple ID's seven-day certificate expiration and provides exact remediation commands.
This project sits at the intersection of several trends reshaping how developers extend Claude Code and similar agentic coding assistants: the rapid proliferation of MCP servers as a standardized way to give LLMs typed, structured access to real-world systems beyond code repositories, and the growing appetite for agents that can act on physical or personal devices rather than staying confined to sandboxed environments. It also reflects a broader pattern in the Claude developer community of reverse-engineering platform restrictions (in this case, Apple's code-signing and free-developer-account limitations) to make powerful automation accessible without expensive tooling. As AI agents gain more direct control over messaging, calendars, and other sensitive personal surfaces, tools like sidetap—and their embedded safety features such as kill switches and ambiguity guardrails—illustrate how independent developers are grappling with the safety implications of agentic control in parallel with, and sometimes ahead of, official platform guidance from Anthropic or Apple. The project being MIT-licensed and shared for community feedback also underscores how much of Claude Code's ecosystem growth is currently driven by grassroots experimentation rather than official integrations.
Read original article →