kuri-ios
Use kuri-ios to drive iOS Simulators from the CLI — list sims, boot/shutdown, navigate Safari to URLs (openurl), launch and terminate apps by bundle id, capture PNG screenshots, list installed apps, and (on the Simulator only) tap, doubletap, longpress, swipe/pan, and type via native CGEvent into th…
Install / Use
npx skills add justrach/kuri --skill kuri-iosInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Customer SupportSupported Platforms
Tags
Our assessment of kuri-ios
kuri-ios scores 67/100 on our quality scale, 149th of 172 Customer Support skills we index.
Its SKILL.md is 6.6 KB long, well organised into 12 sections with 2 code examples: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- Our last check on 2026-09-23 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions 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.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
kuri-ios compared with similar skills
All 4 of these similar skills score higher than kuri-ios; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| kuri-ios (this skill)by justrach | 67 | 0 | — | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 5d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 5d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 6d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 130.2k | 6d ago | SKILL.md |
Frequently asked questions
- How do I install kuri-ios?
- Run
npx skills add justrach/kuri --skill kuri-ios. The install tabs above show the steps for each supported agent. - Which AI agents does kuri-ios work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is kuri-ios safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 68/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 kuri-ios still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubname: kuri-ios description: Use kuri-ios to drive iOS Simulators from the CLI — list sims, boot/shutdown, navigate Safari to URLs (openurl), launch and terminate apps by bundle id, capture PNG screenshots, list installed apps, and (on the Simulator only) tap, doubletap, longpress, swipe/pan, and type via native CGEvent into the Simulator window. Real iPhones over USB are supported for listing and launch/terminate via usbmuxd + xcrun devicectl. Tap/swipe/type/uitree on real devices and uitree on the Simulator are NOT supported in v1 (require XCUITest). Multi-touch (pinch, rotate, two-finger pan) and hardware buttons (Home, Lock, Volume) are not wired yet. Trigger phrases include "screenshot the iPhone sim", "tap on iOS simulator", "doubletap iOS sim", "long press iOS sim", "swipe up on iPhone sim", "pan the iOS simulator", "type into iOS simulator", "open Safari on simulator", "launch iOS Settings", "list booted simulators".
kuri-ios
Drive iOS Simulators (and, where possible, real iPhones) through the
kuri ios subcommand. Implementation lives in
kuri-mobile/src/ios/ and the main kuri binary forwards
kuri ios … to the kuri-mobile binary.
⚠️ Host cursor & keyboard warning. On the Simulator,
tap,doubletap,longpress,swipe/pan, andtypepost real CGEvents into the macOS WindowServer — they physically move your mouse pointer and seize keyboard focus for the duration of the gesture. Do not run them while you are using the machine, or from an unattended/background job; a stray click lands wherever the pointer happens to be. Cursor-free, always-safe commands:list-devices,boot,shutdown,openurl,launch,terminate,list-apps,screenshot. An isolated input backend that bypasses the host pointer is tracked in issues #180 and #183.
When to use this skill
-
Boot an iOS Simulator, open Safari to a URL, screenshot the result.
-
Launch or terminate any iOS app by bundle id on the Simulator.
-
List installed apps on the Simulator.
-
Enumerate real iPhones plugged in over USB (via usbmuxd, native Zig).
-
Launch / terminate an app on a real iPhone via
xcrun devicectl. -
Tap, swipe, pan, or type into the booted iOS Simulator (CGEvent posts into the Simulator.app window; coords are device pixels matching the screenshot). The first run will trigger a macOS Accessibility prompt for your terminal — without that permission, taps are silently dropped.
Do not use this skill for:
- Tapping, swiping, typing, or reading UI tree on a real iPhone (requires XCUITest; intentionally not in v1).
- Reading the UI tree of the iOS Simulator (the macOS AX of Simulator.app does not expose the iOS app — that path is XCUITest only).
- Running JS inside a page — that's a browser task, use kuri-agent.
- Android — use the
kuri-androidskill instead.
Prerequisites
- Xcode installed (
xcrun,simctl,devicectl). - At least one iOS Simulator runtime installed.
xcrun simctl runtime listmust show at least one(Ready)entry. If it's empty:xcodebuild -downloadPlatform iOS(one-time ~7 GB download). kuri-mobilebuilt and either on$PATHor next to thekuribinary (zig-out/bin/kuri-mobile).
Build
cd kuri-mobile
zig build
cp zig-out/bin/kuri-mobile ../zig-out/bin/
zig build test # optional: unit tests for adb framing, uitree parser, usbmuxd plist scan
Typical flow
# 1. List and boot a sim
kuri ios list-devices
xcrun simctl create "scratch" com.apple.CoreSimulator.SimDeviceType.iPhone-16 com.apple.CoreSimulator.SimRuntime.iOS-26-4
kuri ios boot --udid <UDID>
# 2. Navigate and screenshot (auto-resolves the booted sim — no --udid needed)
kuri ios openurl https://news.ycombinator.com
sleep 3 # let the page settle
kuri ios screenshot hn.png
# 3. Launch a built-in app, screenshot
kuri ios launch com.apple.Preferences
sleep 2
kuri ios screenshot settings.png
# 4. Open any URL scheme (not just https/http)
kuri ios openurl "maps://?q=San%20Francisco"
Full command surface
| Command | Purpose |
|---|---|
| kuri ios list-devices | Sims (from simctl JSON) + real devices (from usbmuxd) |
| kuri ios boot --udid <U> | Boot a simulator |
| kuri ios shutdown --udid <U> | Shut down a simulator |
| kuri ios openurl <url> | Open URL (auto-resolves booted sim). Alias: navigate |
| kuri ios launch <bundle-id> | Launch app on booted sim |
| kuri ios launch --device --udid <U> <bundle-id> | Launch on real iPhone via devicectl |
| kuri ios terminate <bundle-id> | Kill app on booted sim |
| kuri ios terminate --device --udid <U> <bundle-id> | Kill on real device |
| kuri ios screenshot [path.png] | PNG from booted sim (auto-resolves) |
| kuri ios list-apps --udid <U> | List installed apps on sim |
| kuri ios tap <x> <y> | Tap at device pixel coords on the booted sim |
| kuri ios doubletap <x> <y> | Two quick taps at the same point (alias: dbltap) |
| kuri ios longpress <x> <y> [hold_ms] | Press and hold (default 500ms — iOS haptic-touch threshold; alias: long-press) |
| kuri ios swipe <x1> <y1> <x2> <y2> [ms] | Swipe/pan on the sim. Aliases: pan, scroll |
| kuri ios type <text...> | Send keystrokes to the focused field on the sim |
Intentional limits (don't claim parity with upstream)
tap,swipe,typework on the iOS Simulator only (CGEvent into the Simulator.app window). On real iPhones they return an explicit "requires XCUITest" error — on purpose.uitreereturns an explicit "requires XCUITest" error on both Simulator and real device. The macOS AX tree of Simulator.app only exposes the macOS window chrome, not the running iOS app.- Real-device screenshot is unavailable for the same reason.
- There is no on-device
run_codesandbox.
If a user needs any of the above, the route forward is the v2
"vendor on-device drivers" path described in kuri-mobile/README.md,
not this skill.
Native vs shelled-out surfaces (honesty)
| Surface | How it's implemented |
|---|---|
| simctl device listing | libc fork/exec xcrun simctl list devices --json, parse JSON in Zig |
| usbmuxd real-device listing | native Zig Unix-socket client, plist scan |
| openurl / launch / terminate / screenshot | shell out to xcrun simctl / xcrun devicectl |
| Simulator tap / swipe / pan | native Zig — CGEvent via ApplicationServices.framework, with osascript only used to (a) activate Simulator.app and (b) read the front window's position+size for the device→screen coord mapping |
| Simulator type | shell out to osascript (System Events keystroke), Unicode-safe |
| Resolve "booted sim" | iterate parsed list in Zig, match state == "Booted" |
Apple's iOS Simulator runtime renders the screens — Kuri orchestrates.
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
130.2kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
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.
