poki
Let AI agents operate a real iPhone. Local MCP server and agent, no jailbreak, no extra hardware.
Install / Use
claude mcp add JosssphZhou -- npx -y github:JosssphZhou/pokiIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of poki
poki scores 81/100 on our quality scale, 2379th of 2,876 Automation skills we index.
Its MCP Server is 19 KB long, well organised into 11 sections with 6 code examples: a thorough specification that gives an agent plenty to work with.
It has 555 GitHub stars, a meaningful sign that others use it.
Maintenance, license and trust
- The repository was last updated today, so poki is actively maintained.
- It is released under AGPL-3.0, a copyleft license: you can use it, but modified versions you distribute must carry the same license.
- Its trust signals score 95/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
poki compared with similar skills
All 4 of these similar skills score higher than poki; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| poki (this skill)by JosssphZhou | 81 | 555 | today | MCP Server |
| Agent-Reachby Panniantong | 100 | 110.1k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 79.1k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.8k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 99.4k | 2d ago | MCP Server |
Frequently asked questions
- How do I install poki?
- Run
claude mcp add JosssphZhou -- npx -y github:JosssphZhou/poki. The install tabs above show the steps for each supported agent. - Which AI agents does poki work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is poki safe to use?
- It is AGPL-3.0-licensed and scores 95/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is poki still maintained?
- The repository was last updated today, so poki is actively maintained.
Skill content
View source on GitHubQuick start
Let your agent install it. Copy this to your agent:
Install https://github.com/JosssphZhou/poki following its root AGENTS.md, including the MCP skill, and stop whenever you need me to act.
Poki MCP. Already using Claude Code, Codex, or another MCP client? Connect Poki MCP and use your own subscription. No extra model account needed.
Start the server and keep it running:
git clone https://github.com/JosssphZhou/poki.git
cd poki
./bin/setup
npm start
Requires macOS 15 or later, full Xcode, Rust, Node.js 24+, and ffmpeg. ./bin/setup checks for missing dependencies. The initial build takes a few minutes.
Poki targets macOS. For Linux, see the community port poki-for-linux (#16), maintained outside this repo.
Windows: community port at scy7796/poki-for-windows (maintained by its author, not tested by us).
Prebuilt macOS arm64 package
Download poki-v0.1.1-macos-arm64.tar.gz from the release and run:
tar -xzf poki-v0.1.1-macos-arm64.tar.gz
cd poki-v0.1.1
npm ci --no-audit --no-fund
npm start
The package includes the native bridge and idevice tools. You do not need Rust or ./bin/setup. You still need macOS on Apple Silicon, full Xcode, Node.js 24+, Python 3, and ffmpeg. Register your MCP client and install the optional Agent as described below.
In another terminal, from the same directory, register the MCP server:
claude mcp add --scope user poki-mcp -- node "$PWD/src/stdio.mjs" # Claude Code
codex mcp add poki-mcp -- node "$PWD/src/stdio.mjs" # Codex
Poki Agent. For Poki's standalone terminal agent or messaging channels, keep npm start running and open another terminal in the same directory. Install the agent, add its command to this terminal's path, and sign in:
npm ci --prefix agent
export PATH="$PWD/bin:$PATH"
poki login
poki status
Poki Agent uses GPT-6.1 Terra (gpt-6.1-terra) with low reasoning by default. We recommend keeping it: it is the fastest setup we have tested for phone tasks. Override it with POKI_AGENT_MODEL; see Run Poki Agent.
For a physical iPhone, pair it with your Mac over USB first. See Physical iPhone setup.
Update with ./bin/poki update. Set POKI_NO_UPDATE_CHECK=1 to disable the daily anonymous GitHub release check. See Update for the request URL, restart steps, and prebuilt packages.
Try a task
With Poki Agent, one connected iPhone is selected automatically. With multiple devices, add --device '<device UUID>'.
node bin/call.mjs list_devices # Find your device UUID
poki "Search esp32 in Chrome and summarize the top result"
Note: Poki controls your real iPhone. If you ask it to send messages or make payments, it will. Screen contents are sent to your configured model service.
Gets faster with use: Poki Agent remembers past tasks and runs them faster on repeat.
Channels: After configuring an authorized channel, start it with poki imessage or poki telegram. See Poki Agent for setup.
MCP clients: Claude Code, Codex, and any client supporting mcpServers JSON.
Physical iPhone support has been verified only on iPhones using the Chinese interface. Physical devices support portrait orientation only. App container export and direct links to Settings subpages are unavailable. See verification and known limits.
Docs
| Topic | Read | | --- | --- | | Installation, other MCP clients, and troubleshooting | Install guide | | Poki Agent, models, iMessage, and Telegram | Run Poki Agent | | MCP tool reference | Tool behavior | | Environment variables and sessions | Configuration | | USB pairing, Developer Mode, and Wi-Fi | Physical iPhone setup | | Test results, known limits, and disclaimers | Verification | | Bridge architecture | Native bridge and simulator adapter | | Roadmap | poki.bot |
Roadmap
<p align="center"> <img src="docs/images/roadmap.png" width="860" alt="Poki roadmap. Shipped: Poki MCP, Poki Agent, iMessage and Terminal integrations, self-learning routes, remote connections. In Progress: persistent connection performance improvements, Telegram integration, native text input (clipboard-free), simplified tool interface. Planned: Poki App, which runs locally on iPhone and is available while your Mac is powered off. Future: iPhone Duo support, physical device support (no Xcode required), additional model providers."> </p>Star History
<a href="https://www.star-history.com/?repos=JosssphZhou%2Fpoki&type=date&legend=top-left"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=JosssphZhou/poki&type=date&theme=dark&legend=top-left"> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=JosssphZhou/poki&type=date&legend=top-left"> <img alt="Star History chart" src="https://api.star-history.com/chart?repos=JosssphZhou/poki&type=date&legend=top-left"> </picture> </a>Core contributors
<table> <tbody> <tr> <td align="center" valign="top" width="33%"><a href="https://github.com/ZhehanZhang"><img src="https://avatars.githubusercontent.com/u/67270559?v=4&size=240" width="120" height="120" alt="ZhehanZhang"/><br /><sub><b>ZhehanZhang</b></sub></a><br />Proposed driving a physical iPhone over Tailscale in <a href="https://github.com/JosssphZhou/poki/issues/2">#2</a>, the idea behind remote connections, which shipped in <a href="https://github.com/JosssphZhou/poki/pull/8">#8</a>.</td> <td align="center" valign="top" width="33%"><a href="https://github.com/igc110"><img src="https://avatars.githubusercontent.com/u/241411380?v=4&size=240" width="120" height="120" alt="igc110"/><br /><sub><b>igc110</b></sub></a><br />Found why taps on a physical iPhone were slow in <a href="https://github.com/JosssphZhou/poki/issues/10">#10</a>; the fix that followed made them about a third faster.</td> <td align="center" valign="top" width="33%"><a href="https://github.com/edge369"><img src="https://avatars.githubusercontent.com/u/63720633?v=4&size=240" width="120" height="120" alt="edge369"/><br /><sub><b>edge369</b></sub></a><br />Made Poki run on a router in <a href="https://github.com/JosssphZhou/poki/pull/14">#14</a>, so Telegram can drive the iPhone with the Mac powered off; <a href="https://github.com/JosssphZhou/poki/pull/15">#15</a>, <a href="https://github.com/JosssphZhou/poki/pull/17">#17</a> and <a href="https://github.com/JosssphZhou/poki/issues/19">#19</a> followed.</td> </tr> <tr> <td align="center" valign="top" width="33%"><a href="https://github.com/carrotciallo"><img src="https://avatars.githubusercontent.com/u/69567867?v=4&size=240" width="120" height="120" alt="carrotciallo"/><br /><sub><b>carrotciallo</b></sub></a><br />Ported Poki to Linux and tested it on a physical iPhone over USB, LAN and Tailscale in <a href="https://github.com/JosssphZhou/poki/issues/16">#16</a>; the README now points to it.</td> <td align="center" valign="top" width="33%"><a href="https://github.com/guangtouge82"><img src="https://avatars.githubusercontent.com/u/269691899?v=4&size=240" width="120" height="120" alt="guangtouge82"/><br /><sub><b>guangtouge82</b></sub></a><br />Traced failing touches on a physical iPhone to a missing display service in <a href="https://github.com/JosssphZhou/poki/issues/18">#18</a>; Poki now says nothing was sent and points to prepare-device.</td> <td align="center" valign="top" width="33%"><a href="https://github.com/Dreaminmaster"><img src="https://avatars.githubusercontent.com/u/189544503?v=4&size=240" width="120" height="120" alt="Dreaminmaster"/><br /><sub><b>Dreaminmaster</b></sub></a><br />Fixed a corrupt cached route that aborted unrelated Agent tasks (<a href="https://github.com/JosssphZhou/poki/issues/21">#21</a>, <a href="https://github.com/JosssphZhou/poki/pull/22">#22</a>), then let the Agent reuse its post-action screen read in <a href="https://github.com/JosssphZhou/poki/pull/37">#37</a>.</td> </tr> <tr> <td align="center" valign="top" width="33%"><a href="https://github.com/PeterKingXu1s"><img src="https://avatars.githubusercontent.com/u/89392314?v=4&size=240" width="120" height="120" alt="PeterKingXu1s"/><br /><sub><b>PeterKingXu1s</b></sub></a><br />Reported in <a href="https://github.com/JosssphZhou/poki/issues/25">#25</a> that a natural-language stop request did not interrupt an iMessage task; Poki now replies to mid-task messages and points to /stop.</td> <td align="center" valign="top" width="33%"><a href="https://github.com/ScottH1122"><img src="https://avatars.githubusercontent.com/u/142722955?v=4&size=240" width="120" height="120" alt="ScottH1122"/><br /><sub><b>ScottH1122</b></sub></a><br />Reproduced two Agent bugs in <a href="https://github.com/JosssphZhou/poki/issues/27">#27</a> and <a href="https://github.com/JosssphZhou/poki/issues/28">#28</a>, disabled controls offered as tap targets and partly failed batches losing their trace; both are fixed.</td> <td align="center" valign="top" width="33%"><a href="https://github.com/jiahuipaung"><img src="https://avatars.githubusercontent.com/u/70688286?v=4&size=240" width="120" height="120" alt="jiahuipaung"/><br /><sub><b>jiahuipaung</b></sub></a><br />Fixed in <a href="https://github.com/JosssphZhou/poki/pull/34">#34</a> a RemotePairing connection that died when the iPhone's LAN address changed (<a href="https://github.com/JosssphZhou/poki/issues/30">#30</a>); a real iPhone reconnected in 768 ms.</td> </tr> <tr> <td align="center" valign="top" width="33%"><a href="https://github.com/scy7796"><img src="https://avatars.githubusercontent.com/u/282529358?v=4&size=240" width="120" height="120" alt="scy7796"/><br /><sub><b>scy7796</b></sub></a><br />Fixed taps that failed every time over RemotePairing from a Windows host in <a href="https://github.com/JosssphZhou/poki/pull/39">#39</a>; 5 of 5 taps then worked.</td> <td align="center" valign="top" width="33%"><a href="https://github.com/foshanfm"><img src="https://avatars.githubusercontent.com/u/24779370?v=4&size=240" wTruncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
110.1kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
79.1kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.8kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
99.4k🕷️ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
