ios-simulator-skill

Automate iOS simulator testing, building, and UI navigation via accessibility-tree scripts.

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/CYRUS-pinto/pi-bot --skill ios-simulator-skill-cyrus-pinto
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ios-simulator-skill
Source: https://github.com/CYRUS-pinto/pi-bot/tree/main/.agents/skills/ios-simulator-skill
Command: npx skills add https://github.com/CYRUS-pinto/pi-bot --skill ios-simulator-skill-cyrus-pinto

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Manually driving iOS simulators for testing and debugging is slow and error-prone, and screenshot-based automation is brittle and token-expensive. This Skill provides 29 scripts that build Xcode projects, navigate UIs semantically through the accessibility tree, manage simulator lifecycles, and audit accessibility, localization, and performance. ## Core Features & Use Cases - Semantic UI Automation: Map screens, find elements by text/type/ID, tap, type, swipe, and scroll using the accessibility tree instead of pixel coordinates. - Build & Test Automation: Build Xcode projects, run tests, and parse xcresult bundles with progressive disclosure for token-efficient error reporting. - Simulator Lifecycle & State Control: Boot, create, erase, and delete simulators; control dark mode, Dynamic Type, locale, location, status bar, push notifications, and privacy permissions. - Use Case: An AI agent verifying a login flow can launch the app, map the screen, tap the Login button, enter credentials, run an accessibility audit, and capture a debugging snapshot with logs and screenshots if anything fails. ## Quick Start Use the ios-simulator skill to launch my app on the booted simulator, map the current screen, and tap the Login button.

Frequently Asked Questions about ios-simulator-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate iOS simulator UI testing without pixel coordinates?

Use the accessibility tree instead of screenshots. Run screen_mapper.py to list interactive elements, then navigator.py with --find-text, --find-type, or --find-id to tap elements or enter text semantically, which survives UI layout changes.

How to build and test an Xcode project from the command line?

Run build_and_test.py with --project or --workspace and optionally --test. It streams results, parses errors and warnings from xcresult bundles, and supports progressive disclosure via --get-errors, --get-warnings, and --get-log.

Does this work on Linux or Windows for iOS testing?

No. The scripts wrap xcrun simctl and xcodebuild, so they require macOS 12 or later with Xcode Command Line Tools installed. Python 3 is required, and IDB is optional for interactive features.

How do I test dark mode, Dynamic Type, and RTL locales on the iOS simulator?

Use appearance.py with --theme dark, --text-size AX3, or --locale ar --region SA. RTL locales like Arabic and Hebrew are flagged automatically, and --bundle-id restarts your app so the locale change takes effect.

Why use the accessibility tree instead of screenshots for automation?

The accessibility tree returns structured element data (types, labels, frames) in roughly 10-50 tokens, while screenshots cost 1,600-6,300 tokens. Screenshots are reserved for visual verification, bug reports, and visual diffs.

How do I detect main-thread hangs in an iOS simulator app?

Start a HangBuster session with hang_watcher.py --start, interact with the simulator, then --stop for a clustered summary of hang events. It supports raw ndjson capture for jq exploration and cross-session regression diffs.