ios-simulator-interaction

ios-simulator-interaction is a skill for Claude Code, Codex from riwsky/iosef. It costs 100 tokens per session (2,642 once invoked), scanned A, original, MIT.

A toolset for interacting with an iOS app running in the iOS Simulator, including viewing screens, finding interface elements, and performing taps or other actions. The iOS Simulator runs iPhone and iPad apps on a Mac without a physical device.

In plain words
What is it for?
Use it while building or testing an iOS app in the Simulator. It supports starting or connecting to a simulator, inspecting its accessibility tree, viewing screens, interacting with elements, and checking UI state.
Why use it?
It gives an agent a consistent way to inspect and test simulated iOS interfaces using element names and roles, rather than relying only on screen coordinates.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is iosef install_app --app-path ./build/MyApp.app.

Good fit Use it while building or testing an iOS app in the Simulator. It supports starting or connecting to a simulator, inspecting its accessibility tree, viewing screens, interacting with elements, and checking UI state.

Compare 6 skills from other repositories ↓
View source ↗ riwsky/iosef
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/riwsky/iosef
agentmods
npx agentmods add skills/riwsky/iosef/ios-simulator-interaction

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ios-simulator-interaction

README.md
[![agentmods](https://agentmods.dev/badge/skills/riwsky/iosef/ios-simulator-interaction.svg)](https://agentmods.dev/skills/riwsky/iosef/ios-simulator-interaction)
Your own site
<a href="https://agentmods.dev/skills/riwsky/iosef/ios-simulator-interaction"><img src="https://agentmods.dev/badge/skills/riwsky/iosef/ios-simulator-interaction.svg" alt="Measured on agentmods" height="20"></a>
Per session 100 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,642 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 1 finding, up to medium

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • medium MCP Rug Pull · line 263
    uvx/uv tool run commands without ==version create a rug-pull risk.
    Fix: Pin the version: uvx package-name==1.2.3
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00100 $0.02642
Opus 5 $0.00050 $0.01321
Sonnet 5 $0.00020 $0.00528
Haiku 4.5 $0.00010 $0.00264

Measured 7d ago against content hash 44a0312e7ab2, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

ios-simulator-interaction scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/ios-simulator-interaction/SKILL.md · 276 lines

How it starts

The opening of the file, as written. The whole thing — 276 lines — stays where its author put it; the contents beside it link to each section on GitHub.

iOS Simulator Interaction

Use iosef (via Bash) as the primary tool for all iOS simulator interactions. Compared to idb and simctl, it:

  • Lets you interact by AX-tree selectors (--name, --role, --identifier) instead of only bare coordinates
  • Scales screenshots so pixel coordinates match iOS point space — no translation needed
  • Infers which simulator to use from VCS root or session state
  • Provides dedicated assert commands (exists, count, text, wait) with exit codes for scripting

Getting Started

Session lifecycle:

# Create a local session (scoped to this directory)
iosef start --local --device "my-sim"

# ... do work (tap, type, describe, view, etc.) ...

# Tear down — shuts down simulator, deletes device, removes .iosef/
iosef stop

Use --local to avoid interfering with simulators used by other agents. Session state lives in .iosef/state.json — ensure .iosef/ is in .gitignore.

For existing simulators: iosef connect "iPhone 16" --local

Check session state anytime: iosef status (or iosef status --json)

Core Workflow

Inspect: describe and view

Always start with iosef describe to get the accessibility tree. The format is:

AXButton "Label" (center_x±half_width, center_y±half_height)

The center values are the tap targets. Example: AXButton "Start" (197±160, 270±22) → tap at (197, 270).

iosef describe                        # Full AX tree
iosef describe --depth 2              # Limit tree depth
iosef describe --x 200 --y 400       # What's at this coordinate?
iosef describe --json | jq '.. | objects | select(.role == "button")'

Use iosef view for screenshots (not simctl or idb — iosef aligns coordinate spaces):

iosef view                            # Screenshot to temp file (prints path)
iosef view --output /tmp/screen.png   # Screenshot to specific path

Interact: tap, type, swipe

Prefer selectors over coordinates — selectors survive layout changes and scroll position shifts.

Read the full file on GitHub · 276 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago First seen · 276 lines · 100 tokens per session scan A 44a0312e7ab2

Subscribe to this mod's changes

ios-simulator-interaction is a skill published in the GitHub repository riwsky/iosef (18 stars, last pushed 12d ago), licensed MIT. It adds 100 tokens to every session and 2,642 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

testa

Autonomously E2E-test iOS apps in the Simulator — read the screen (accessibility tree OR on-device OCR), tap/type/swipe/drag-drop/pinch/rotate, manage apps, and assert results. Use when asked to test, QA, drive, or reproduce a flow in an iOS app/simulator (React Native, Expo, native SwiftUI, or any app).…

valewnrt/testa · 103 tokens

argent-test-ui-flow

Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools. Use when testing UI flows, verifying login works, testing navigation, running end-to-end UI test scenarios, manual QA steps, visible UI changes, or visual behavior.

software-mansion/argent · 64 tokens

mobile-automation

Control Android and iOS devices, emulators and simulators — launch apps, tap, swipe, type, take screenshots, read the accessibility tree. Use when a task involves a mobile device or app, mobile UI testing, or reproducing a bug on a phone.

mobile-next/mobile-mcp · 58 tokens

baguette

Drive iOS simulators programmatically via the baguette CLI — taps, swipes, multi-finger gestures, hardware buttons (Home / Lock / Volume / Action / Power), ASCII keyboard text, and frame capture, all without opening Xcode. Use when: (1) an agent needs to drive a booted iOS simulator from a script — tap a coordinate…

tddworks/baguette · 249 tokens

argent-create-flow

Create, record, edit, replay, or repair reusable Argent flow YAML files. Use when the user asks to record or replay a repeatable device path, set up profiling or an A/B comparison, or invoke the authoring engine behind argent-qa-flows. Also use before repeating three or more interactions. For one-off UI checks…

software-mansion/argent · 100 tokens

Appium Mobile Testing

Mobile application testing skill using Appium for iOS and Android, covering device capabilities, selectors, gestures, and cross-platform testing strategies.

PramodDutta/qaskills · 32 tokens