Chisle
코딩 에이전트 플러그인, 20개 실시간 작업에서 기본 모델 52% 활용, 간결한 페르소나와 출력 압축 제공
AI 친화적인 iOS/iPadOS 자동화 테스트 도구로 XCUITest 기반이며 테스트를 넘어선 기능을 제공합니다
An AI-friendly iOS/iPadOS automation testing tool built on XCUITest, but more than a testing tool: agents like Codex, Claude Code, Hermes, OpenClaw and Minis can operate your iPhone or iPad wirelessly
개발 도구Swift · Objective-CGitHub @OpenMinis직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
An AI-friendly iOS/iPadOS automation testing tool built on XCUITest, but more than a testing tool: agents like Codex, Claude Code, Hermes, OpenClaw and Minis can operate your iPhone or iPad wirelessly through an encrypted JSON-RPC 2.0 API (tap, type, read the screen, launch apps, and more).
README 전체를 불러오는 중입니다.
README 전문 보기 ↗AI-friendly iOS automation service, built on XCUITest.
[!WARNING] For automated testing and research only. iCTRL hands full control of a phone (taps, text input, screen contents, every installed app) to whoever holds a paired key. Any automation like this can be hijacked or misused: a leaked key, a client you shouldn't have approved, or an agent acting on instructions it picked up along the way. Weigh the risks before you use it:
- Run it only on devices you own and accounts you are entitled to automate.
- Approve only the pairing requests you started.
- Leave remote access off unless you need it, and stop the server when you are done.
- Don't leave an agent unsupervised around payments, messages or anything that can't be undone.
You are responsible for how you use it, including compliance with the terms of the apps you automate.
iCTRL turns an iPhone into a controllable automation endpoint. It runs a
long-lived XCUITest runner that exposes a JSON-RPC 2.0 API over HTTP (default
port 8200), so an AI agent — or any HTTP client — can drive the device: tap,
swipe, type, read the UI tree, take screenshots, launch apps, open URLs, and more.
Unlike a raw XCUITest script, iCTRL is designed to be discovered and driven by a
model: GET /skill serves a complete operating manual and GET /schema
documents every method with its parameters, so an agent can learn the API at
runtime and call it correctly without prior knowledge.
Works with any agent. The JSON-RPC API and the skill are built in and progressively discoverable: an agent starts from the manual and drills into the schema only as it needs to. Any agent that can make HTTP requests can use it, such as OpenClaw, Hermes, Minis, Claude Code or Codex. All it needs is the phone's IP address and port; these agents usually explore the endpoint and install the skill themselves to learn how to drive the phone. Minis is additionally optimized for iCTRL, so it carries out interactions on the phone faster.
Hand it to your agent in one sentence. Once the runner is up (with remote access enabled, if the agent isn't on the phone), tell your agent:
"My iPhone is running iCTRL at 192.168.1.20:8200 — figure out how to drive it."
It finds the manual at GET /skill and the method list at GET /schema,
downloads a client from the device, and asks to pair. Approve the pairing
notification on the phone, and from there it works out the rest.
flowchart LR
subgraph setup["Set up once"]
direction TB
S1["① Sign and install<br/>SideStore · sign-ipa.sh · Xcode"]
S2["② Mount the DDI<br/>iCTRL app · StikDebug · Xcode"]
S3["③ Launch the runner<br/>allow Notifications and Local Network"]
S1 --> S2 --> S3
end
subgraph phone["iPhone"]
direction TB
R["iCTRL runner :8200<br/>127.0.0.1 only by default"]
N["🔔 Runner notifications<br/>✅ Allow pairing · 🌐 Remote Access · 📡 Nearby · 🛑 Stop"]
N -. "🌐 Remote Access opens it to the LAN" .-> R
end
A["🤖 Agent<br/>OpenClaw · Hermes · Minis · Claude Code · Codex<br/>given only IP:port"]
S3 --> R
A -- "1 · GET /skill, /schema: learn the API" --> R
A -- "2 · POST /pair: X25519 key exchange" --> R
R -- "pairing request" --> N
A == "3 · encrypted JSON-RPC: tap, swipe, type, read UI, screenshot" ==> R
An agent on the phone itself, such as Minis, reaches the runner on
127.0.0.1. An agent on another machine needs 🌐 Remote Access turned on
and the same Wi-Fi network.
com.openminis.ictrl8200iCTRLUITests-Runner.ipa (the automation engine —
required, and the one that must be running) + iCTRL.ipa (the
companion app — optional, see The iCTRL app)The runner does all the automation and runs on its own. iCTRL.ipa is a
companion app for doing the surrounding chores on the phone itself:
The app pairs with the runner once like any client (one Allow in the runner's notification). You can skip it if you mount the DDI with Xcode or StikDebug and manage the runner from its notification or a computer — with a free Apple ID's three-app limit, installing StikDebug or the iCTRL app is enough.
Built for AI agents
GET /skill,
under 15K characters, most important rules first) and a full method schema
(GET /schema). An agent given only the address learns the rest by itself.hint, and every error says
what to do next. A ref re-resolves the live element at tap time;
visibility and alternatives flag look-alikes; scrolls report whether they
moved and where you are in the list.resolve_app turns an app name into a bundle
id offline and remembers which apps actually opened on this device, even
where iOS refuses to list installed apps.여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗