# device-interaction

Verifies iOS app behavior on devices or simulators using screenshots, UI hierarchy inspection, and synthesized touch inputs. Runs via subagent.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 740 installs · ★ 352
- Author: superagents-lab
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/superagents-lab/xcode27-skills/tree/HEAD/device-interaction/SKILL.md
- Updated: 2026-06-09
- HTML: https://affpapa.org/en/nevibecode/skills/device-interaction

## What it does

This skill automates on-device and simulator UI verification for iOS projects. The main agent dispatches the task to a subagent via the `Agent` tool. A standard run follows four steps: starting with `DeviceInteractionStartSession`, building and launching via `DeviceInteractionInstallAndRun`, simulating events with `DeviceEventSynthesize`, and terminating through `DeviceInteractionEndSession`. Lingering test sessions waste significant system resources. Shutting them down immediately after testing is necessary.

The subagent inspects hierarchy files to locate controls, reading exact positions from the calculated `center` field. Guessing tap targets strictly from screenshots is forbidden to prevent misclicks. Supported interactions include single taps, double taps, swipes, orientation toggles, hardware keys, and text entry. In text input chains, `sender keyboard kbd <text>` must remain the final command.

When a touch event yields no immediate UI update, the subagent retries the action once to account for active transitions. If you pass an unrecognized destination ID to the session starter, the tool responds with a complete list of valid target devices.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill device-interaction -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/device-interaction/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/device-interaction/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill device-interaction -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/device-interaction/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill device-interaction -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/device-interaction/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install superagents-lab/xcode27-skills device-interaction
```

2. **Manually: put the files in place**
- File: `.github/skills/device-interaction/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill device-interaction -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/superagents-lab/xcode27-skills --path device-interaction
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/device-interaction/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill device-interaction -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/superagents-lab/xcode27-skills/tree/HEAD/device-interaction/SKILL.md

## When to use it
- verify iOS interface behavior on a device or simulator after code changes
- detect visual defects like clipped text, misaligned views, and bad colors
- send precise taps, swipes, and text entries using element center points
- catch silent crashes and unexpected app termination during interactions

## Example prompts
- Verify that the login screen works on the simulator after this refactor
- Test this checkout flow on device and report any layout issues
- Check on device whether the settings switch toggles correctly

## Similar
- [argent-ios-device-setup](https://affpapa.org/en/nevibecode/skills/argent-ios-device-setup.md) — skill · 11000 installs
- [axiom-tools](https://affpapa.org/en/nevibecode/skills/axiom-tools.md) — skill · 1200 installs
- [ios-simulator](https://affpapa.org/en/nevibecode/skills/dpearson2699-ios-simulator.md) — skill · 3000 installs
- [ce-test-xcode](https://affpapa.org/en/nevibecode/skills/ce-test-xcode.md) — skill · 2900 installs
- [ios-simulator-skill](https://affpapa.org/en/nevibecode/skills/ios-simulator-skill.md) — skill · 2400 installs
- [ios-ettrace-performance](https://affpapa.org/en/nevibecode/skills/ios-ettrace-performance.md) — skill · 87 installs

From the same set: [superagents-lab/xcode27-skills](https://affpapa.org/en/nevibecode/by/superagents-lab/xcode27-skills.md) — 6 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
