agent-ios

agent-ios is a skill for Claude Code, Codex from squaduplabs/agent-ios. It costs 141 tokens per session (1,373 once invoked), scanned A, original, MIT.

A workflow for controlling an iOS Simulator, a computer-based copy of an iPhone or iPad used for testing apps. It takes UI snapshots, acts on identified elements, and checks the result with another snapshot or screenshot.

In plain words
What is it for?
Use it to navigate simulator apps, tap controls, type text, inspect accessibility elements, and verify screen layouts.
Why use it?
It reduces mistakes caused by tapping outdated or guessed screen coordinates. Rechecking the interface after each action shows whether the app actually changed as expected.

Skill for Claude CodeCodex

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

Good fit Use it to navigate simulator apps, tap controls, type text, inspect accessibility elements, and verify screen layouts.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/squaduplabs/agent-ios/skill
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add squaduplabs/agent-ios --skill skill
Clone the repo
git clone --depth 1 https://github.com/squaduplabs/agent-ios

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 agent-ios

README.md
[![agentmods](https://agentmods.dev/badge/skills/squaduplabs/agent-ios/skill/github.svg)](https://agentmods.dev/skills/squaduplabs/agent-ios/skill)
Your own site
<a href="https://agentmods.dev/skills/squaduplabs/agent-ios/skill"><img src="https://agentmods.dev/badge/skills/squaduplabs/agent-ios/skill/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for agent-ios

Your own site · 80×15
<a href="https://agentmods.dev/skills/squaduplabs/agent-ios/skill"><img src="https://agentmods.dev/badge/skills/squaduplabs/agent-ios/skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 141 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,373 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.
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.00141 $0.01373
Opus 5.5 $0.00056 $0.00549
Sonnet 5.5 $0.00028 $0.00275
Haiku 4.5 $0.00014 $0.00137

Measured 1mo ago against content hash 2245760baf3a, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

agent-ios 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 1mo 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.

docs/skill/SKILL.md · 92 lines

How it starts

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

agent-ios: drive the iOS Simulator

agent-ios gives you the agent-browser workflow for the iOS Simulator: snapshot the UI to get element refs, act on refs, verify with another snapshot or a screenshot.

The loop

agent-ios snapshot -i        # 1. see the screen: elements with @refs
agent-ios tap @e3            # 2. act on a ref
agent-ios snapshot -i        # 3. re-snapshot: the UI changed, refs are new
agent-ios screenshot         # 4. visual check when layout/rendering matters

Rules:

  • Always snapshot before acting. Refs belong to one snapshot generation; acting on refs from before a UI change exits with code 3 ("take a new snapshot").
  • Re-snapshot after anything that changes the screen - taps, navigation, typing, alerts.
  • Prefer @refs over raw coordinates. Fall back to tap x y only when an element is missing from the tree (some React Native views merge children into one accessibility element; find the target visually via screenshot and tap its coordinates in points).
  • Verify, don't assume. After an action, confirm the effect with snapshot (structure) or screenshot (pixels; the printed path is a PNG you can read).

Reading snapshots

snapshot gen=2 app=host.exp.Exponent screen=402x874
@e11 TextField ph="Search Credentials" (117,89 252x17) [disabled]
@e12 Other "Add Credential" (24,236 354x89)
  • Format: @ref Type "label" id=identifier val="value" ph="placeholder" (x,y wxh) [flags]
  • Flags: [disabled] [selected] [focused] [offscreen]. Offscreen refs (closed drawers, scrolled-away rows) refuse to tap - scroll or open the container first.
  • React Native tappables usually appear as Other with a label, not Button. They tap fine by ref.
  • snapshot with no -i shows the full tree including static text; -i shows only actionable, on-screen elements. --json gives the structured tree.
  • A [!] a system alert is present line means springboard has a dialog up - handle it before anything else.
  • The system share sheet (Save as PDF, Copy, Save to Files, Print, app targets) shows up in the tree and is tappable by ref - its out-of-process coordinates are translated to screen space automatically. If a share action is collapsed under "View More", tap that first.
  • Some pickers run in a fully separate process and do not appear in the session app's tree at all - most notably the Files "save to" / document picker. snapshot there returns nothing. Drive those from a screenshot with coordinate taps, or snapshot --app com.apple.springboard. Prefer pre-granting access (agent-ios permissions grant photos <bundleId>) so pickers/alerts don't appear mid-flow.

Read the full file on GitHub · 92 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. 1mo ago First seen · 92 lines · 141 tokens per session scan A 2245760baf3a

Subscribe to this mod's changes

agent-ios is a skill published in the GitHub repository squaduplabs/agent-ios (2 stars, last pushed 3mo ago), licensed MIT. It adds 141 tokens to every session and 1,373 once invoked, about $0.0006 per session on Opus 5.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-31.

Related

Other skills, from other repositories

baguette

Drive and inspect iOS simulators with the baguette CLI: taps, swipes, buttons, typing, screenshots, the accessibility tree, logs, and the conditions an app runs under (location, network, appearance, push, UserDefaults), without opening Xcode. Use when an agent must act on or verify a running simulator — a UI flow…

tddworks/baguette · 116 tokens

tauri-pilot

Inspect, interact with, and test a running Tauri v2 app via CLI. Communicates over Unix socket using JSON-RPC 2.0. Use when testing UI, automating interactions, or debugging a Tauri app.

mpiton/tauri-pilot · 52 tokens

hatch3r-browser-verify

Opt-in browser verification skill — spec-run-first Playwright verification (assertions execute in the runner, agent reads only failures), axe-core a11y audits, toHaveScreenshot() regression diffs, E2E test scaffolds, and snapshot-mode exploratory driving. Default ON for UI-affecting agent invocations; disable globally…

hatch3r/hatch3r · 83 tokens

noqa-testing

Use this skill when the user wants to boot and interact with iOS or Android devices/simulators — inspect the screen, execute actions, generate or edit test cases, or run UI tests via the noqa platform.

noqa-ai/noqa · 47 tokens

xcforge

Complete reference for xcforge — 104 MCP tools (114 with the diagnose group) + 113 CLI commands for iOS development. Covers build, test, simulator, physical devices, SPM, UI automation, screenshots, logs, git, visual regression, accessibility, localization, session profiles, diagnosis workflows, plan execution, LLDB…

justinthevoid/xcforge · 140 tokens

mobile-testing

Write and run mobile tests including widget tests, integration tests, and golden tests. Use when implementing test strategies for Flutter or React Native apps.

ihatesea69/kiro-kit · 31 tokens