iCTRL
Runs a long-lived XCUITest on a real iPhone and exposes an HTTP API so agents can tap, type, read the UI and take screenshots. Meant for testing on your own devices.
View on GitHub ↗- Stars
- ★ 528
- Last commit
- 19 Oct 2026
- Maintenance
- Active
- Licence
- Apache-2.0
- Category
- Other
- GitHub
- OpenMinis/iCTRL
Overview
iCTRL is an iOS automation service built on XCUITest that lets AI agents control a real iPhone over the network. It runs on the phone as a UITest runner that never stops and serves encrypted JSON-RPC requests for tapping, typing, swiping, reading the view tree and taking screenshots. It is designed to explain itself to an agent, which only needs the device's address to get started. The author says it is meant for automated testing and research only.
Features
- Serves its own operating manual and method schema so an agent can learn how to use it
- Every response includes a hint and every error says what to do next
- Taps, types, swipes, launches apps, reads the screen's view tree and takes screenshots
- Finds the phone on the local network or over AWDL from a Mac
- Comes with a static CLI and a Python client downloaded from the device
- Includes an agent skill (ictrl-phone-control) for driving it
Requirements
- An iPhone with Developer Mode turned on (iOS 16 or later)
- A free Apple ID with SideStore, or a paid developer account to sign the runner
- The Developer Disk Image mounted after each reboot, using Xcode, StikDebug or the iCTRL app
Install
Sign and install the runner on your iPhone, using SideStore, the included sign-ipa.sh script or Xcode
Mount the Developer Disk Image, then tap iCTRLUITests-Runner on the Home Screen to start the server
Find the device from your computer
python3 ictrl_rpc.py scan
Example
Ask your agent to open a shopping app on the phone, search for a product and report the price.
Works with
Listed in
- github.com/OpenMinis/iCTRL
- raw.githubusercontent.com/OpenMinis/iCTRL/HEAD/README.md
- raw.githubusercontent.com/OpenMinis/iCTRL/HEAD/SKILL.md
Read the code before you install anything. SwiftAgents doesn't review or endorse the tools listed here. Active: a commit in the last 90 days. Slowing: last commit within the past year. Stale: older than a year, or archived.
More in this category
apfel
Command-line tool, chat mode and local OpenAI-compatible server for the on-device model in Apple's FoundationModels framework. Needs macOS 26 and Apple silicon.
MCP Swift SDK
The official Swift SDK for building MCP clients and servers.
asc-cli
Swift command-line tool for App Store Connect (builds, TestFlight, subscriptions, screenshots), with JSON output made for agents.