DIYgod/pinky
AI EngineeringA desktop gateway that lets any MCP-capable AI agent operate a real iPhone or Android phone under human approval.
What it is
Pinky is a desktop app for macOS, Windows and Linux that exposes a connected iPhone or Android phone to an AI agent through MCP. The agent (Claude Code, Claude Desktop, Codex, Cursor, or any custom script that can run an MCP server) sees the phone screen, taps, types and reads results, while Pinky's own gateway enforces the approval rules between the two. Pinky ships no model: the agent does the reasoning, and Pinky only provides the phone access layer and the safety checks.
The key design choice is that risky actions are held by the gateway, not by the agent. A payment, transfer or other flagged tap comes back to the agent as approval_pending, and nothing happens until the user clicks Allow in Pinky; an agent cannot approve itself, and a 60-second timeout counts as refusal. The UI is a native Go/MyGo window with no Electron or webview, and each run keeps a step-by-step history with screenshots and a screen recording locally.
Quick start
-
Download and install Pinky from the latest release: on Mac the arm64 or amd64
.dmg(orbrew install --cask diygod/tap/pinky), on Windows thepinky-setup-<version>-amd64.exe, on Linux the.debor the Linux.tar.gz. The Windows installer is not signed yet, so SmartScreen asks for More info → Run anyway install steps. -
Connect a phone. For Android, turn on USB debugging and tap Allow when the phone asks, then accept the optional Pinky Companion install; for iPhone, trust the computer, turn on Developer Mode and mount the developer disk image (Android setup, iPhone setup).
-
Open Settings › Agents and click Connect next to your agent, or register Pinky by hand as an MCP stdio server. Any MCP-capable agent also works — the command is
pinkyctl mcp, notpinky:{ "mcpServers": { "pinky": { "command": "pinkyctl", "args": ["mcp"] } } }For Claude Code in a terminal:
claude mcp add --scope user pinky -- pinkyctl mcp. -
Ask the agent to do something on the phone, for example to open Messages and send a reply. The first connection asks what the agent may do; flagged steps wait for your click in Pinky's window.
Without a phone, quit Pinky and launch it with --fake to get two scripted demo phones (a payment to approve, a blocked banking app, a password field).
What works on each phone
iOS support depends on the version. On iOS 27 and later Pinky uses Xcode's Device Hub protocol with nothing installed on the phone; on iOS 17.4 to 26 a WebDriverAgent helper must be built and installed once from Xcode, which with a free Apple ID needs reinstalling every 7 days. Without the helper on those versions, Pinky can only watch the screen (macOS only) and open apps — no taps, swipes or typing. iOS 17.3 and earlier are unsupported. A detailed matrix is in phones.
On Android 13 and later, agents work on a hidden second display while the phone's own screen stays off or locked. The bundled companion app speeds screen reading from about 2 s to about 70 ms and enables typing in any language. Android support spans 10 to 17; the app bundles its own adb, and on Windows some phones need a vendor USB driver, while on Linux udev rules are required.
Constraints
- Desktop requirements: macOS 12+, Windows 10/11 x64, or a 64-bit Linux with glibc 2.29+ and GTK 3. iPhone live preview needs macOS.
- Status: pre-alpha. Claude Code is the agent tested end to end on real phones; other pieces are built but some still await human testing, tracked in the acceptance checklist.
- Agent trust boundary: an agent that can run arbitrary commands on the same computer could reach the phone through adb and bypass Pinky's rules. The README recommends sandboxing such agents or connecting them over HTTP from another machine.
- Privacy: screenshots, recordings and history stay on the computer for 30 days by default. Anonymous usage counters and crash reports are on by default and can be disabled in Settings › Privacy or with
DO_NOT_TRACK=1. - License: Apache-2.0, no account required.
HotRepo's take
The only HotRepo record for this repository is a 2026-11-08 new-project snapshot: 151 stars, 9 forks, a one-hour window gaining 40 stars, and no all-language daily rank recorded yet. That is a single early datapoint, not evidence of sustained adoption. The more interesting signal is the pre-alpha disclosure itself: the README separates what has been tried on real phones from what has not, and ships an acceptance checklist for verifying the rest. For readers evaluating this kind of agent-facing phone tooling, that honesty is more useful than the early star count, which is still too thin to say anything about traction.
Written by AI from the project's README, updated . The project's own docs are the source of truth.