ios-settings

Automates navigation and configuration of the iOS Settings app via MobAI device-control primitives.

38|3|Updated May 3, 2026
One-click install
npx skills add https://github.com/MobAI-App/mobile-harness --skill ios-settings-mobai-app
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ios-settings
Source: https://github.com/MobAI-App/mobile-harness/tree/main/agent-workspace/domain-skills/ios-settings
Command: npx skills add https://github.com/MobAI-App/mobile-harness --skill ios-settings-mobai-app

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Automating the iOS Settings app is error-prone because text-based element matching is ambiguous, iOS restores the last-visited pane on app activation, and localization breaks text predicates. This Skill provides pre-built, deterministic flows for common Settings tasks so an agent does not have to rediscover these pitfalls on every run. ## Core Features & Use Cases - Deterministic navigation flows: Cold-start Settings and open the root list, any top-level section, or General → About with validated predicates. - Device info extraction: Read the iOS version and device name from the About screen using regex over the ui_tree or stable accessibility identifiers. - Device configuration toggles: Set Dark/Light mode and toggle Airplane Mode through switch and button predicates. - Use Case: An agent running a localization screenshot workflow calls settings_set_dark_mode(True) and settings_get_ios_version() to prepare and document each device state before capturing screens. ## Quick Start Ask the agent to open iOS Settings, navigate to General > About, and report the device's iOS version and name.

Frequently Asked Questions about ios-settings

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

FAQPage Schema
How do I automate the iOS Settings app with an agent?▼

Use the provided flow functions such as settings_open_root, settings_open_section, and settings_open_about, which cold-start Settings and navigate with validated predicates. Each flow returns an ExecutionResult containing the ui_tree for further extraction.

How to read the iOS version from a device programmatically?▼

Call settings_get_ios_version, which opens General > About and extracts the version from the ui_tree using a regex on the Button text labeled iOS Version. You can also pin a predicate to the SW_VERSION_SPECIFIER accessibility id.

Why does tapping a Settings row by text fail with an ambiguous match?▼

Labels like General and About match multiple elements, such as a header label and the actual cell row, or a cell and its child button. Resolve this by adding index=1 for top-level rows or type="cell" for the About row.

Does iOS Settings automation work when the device language is not English?▼

Text-based predicates break under localization because row labels change with the device language. Use accessibility_id anchors like NAME_CELL_ID or SW_VERSION_SPECIFIER, or bounds_hint, for locale-resilient flows.

Why does open_app not return Settings to the root screen?▼

iOS preserves the last-visited Settings pane across app activations, so a plain open_app is non-deterministic. Every flow calls open_app with fresh=True followed by wait_for(stable=True) to guarantee a reproducible starting state.