# Device Interaction

> Apple's protocol for verifying iOS app behavior on a simulator or device: session lifecycle, capturing screenshots and UI hierarchies, synthesizing taps, swipes, and typing via hierarchy center coordinates, and judging functional vs visual vs transient issues. Use when verifying that UI changes work on a device, debugging touch issues, or asked 'does it work'. Requires the xcode-tools MCP server and an iOS 27+ simulator runtime. (Content extracted from your local Xcode on install.)

- Skill: `jlreyes/device-interaction` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jlreyes/device-interaction`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jlreyes/device-interaction/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: jlreyes (https://skillmd.com/u/jlreyes)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jlreyes/device-interaction

---


# device-interaction (stub)

> **Not yet extracted.** This is a stub. The real skill is Apple-authored
> content that ships inside Xcode; Apple's license doesn't permit
> redistributing it, so this kit extracts it from YOUR Xcode instead.
>
> To install the real content (requires Xcode 27+, ~5 seconds), run the
> extraction script that ships alongside these skills. Relative to this
> skill's own directory it is at:
>
>     ../apple-api-updates/scripts/extract-apple-skills.sh
>
> (In the Claude Code plugin layout it is also exposed at the plugin root
> as scripts/extract-apple-skills.sh. If apple-api-updates is not
> installed alongside, install it — the script ships inside it.)
>
> If you are an agent reading this: resolve this SKILL.md's path and run
> that script with your shell tool. Skill bodies are cached for the
> session and you cannot run /reload-plugins yourself (it's a user
> command), so after extracting: answer the current request by reading
> the extracted SKILL.md and its references/ directly from disk (plain
> markdown, fully usable), and ask the user to run /reload-plugins — or
> start a new session — so future invocations serve the real content.

