Agent skill

UI Automation Workflows

by conorluddy in conorluddy/xclaude-plugin

Accessibility-first UI automation using IDB. An agent skill from conorluddy/xclaude-plugin.

MITAuto-check passedFrontend & Design

Install UI Automation Workflows

skills CLI
$ npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install conorluddy/xclaude-plugin ui-automation-workflows --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ui-automation-workflows .claude/skills/ui-automation-workflows && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ui-automation-workflows
GitHub stars
183
Token cost
~2.2k tokens
SKILL.md length
707 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Accessibility-first UI automation using IDB. An agent skill from conorluddy/xclaude-plugin.

  • Works in 5 steps: Check Accessibility Quality (Optional) -… → Query Accessibility Tree - Use… → Find Your Element → …
  • Automating simulator interactions
  • SKILL.md covers ⚠️ CRITICAL: Always Use MCP…, Core Principle: Accessibility…, Standard Workflow and Common Patterns, plus 8 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

UI Automation Workflows is an agent skill from conorluddy/xclaude-plugin. Accessibility-first UI automation using IDB. Query accessibility tree (fast, 50 tokens) before screenshots (slow, 170 tokens). Use when automating simulator interactions, tapping UI elements, finding buttons, or testing user flows. Covers idb-ui-describe, idb-ui-tap, idb-ui-find-element patterns.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Workflow automation, Accessibility and MCP servers. It works with Model Context Protocol, Xcode and Bash. The repository describes itself as: iOS development ClaudeCode plugin for mindful token and context usage. Contains modular MCPs that group various Xcode/IDB tools based on your current workflow. The licence is MIT.

When your agent uses it

  • Automating simulator interactions
  • Tapping UI elements
  • Finding buttons
  • Testing user flows

Example prompts

  • “/ui-automation-workflows”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Check Accessibility Quality (Optional) - Use execute_idb_command
  2. Query Accessibility Tree - Use execute_idb_command with operation: "describe"
  3. Find Your Element
  4. Interact with Element
  5. Verify State

What it can do on your machine

Read from SKILL.md and the folder at commit 6de4b2c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

UI Automation Workflows loads about 2.2k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 707 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~80
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from conorluddy/xclaude-plugin at commit 6de4b2c, republished under its MIT licence (© conorluddy). 707 words, ~2,151 tokens.

Download SKILL.mdSave it as .claude/skills/ui-automation-workflows/SKILL.md (or your agent's skills folder).
name
ui-automation-workflows
description
Accessibility-first UI automation using IDB. Query accessibility tree (fast, 50 tokens) before screenshots (slow, 170 tokens). Use when automating simulator interactions, tapping UI elements, finding buttons, or testing user flows. Covers idb-ui-describe, idb-ui-tap, idb-ui-find-element patterns.

UI Automation Workflows

Use the execute_idb_command MCP tool for all UI automation

The xclaude-plugin provides the execute_idb_command MCP tool which consolidates all IDB UI automation operations into a single, token-efficient dispatcher.

⚠️ CRITICAL: Always Use MCP Tools First

This is the most important rule: When automating UI interactions, you MUST use the execute_idb_command MCP tool.

  • ✅ DO: Invoke execute_idb_command for all UI automation, element finding, and accessibility queries
  • ✅ DO: If the MCP tool fails, adjust parameters and retry
  • ✅ DO: Read error messages and debug the parameters
  • ❌ NEVER: Fall back to bash idb commands
  • ❌ NEVER: Use idb directly in bash
  • ❌ NEVER: Run idb commands in a terminal

Why? The MCP tool provides:

  • Structured error handling
  • Token efficiency (consolidated into 1 tool vs. verbose bash output)
  • Proper integration with the xclaude-plugin architecture
  • Accessibility-first patterns built-in

If execute_idb_command fails, the issue is with parameters or app state - not that you should use bash.

Core Principle: Accessibility Before Screenshots

Always query the accessibility tree first. Only use screenshots as a fallback.

Use the execute_idb_command MCP tool with operation describe to access the accessibility tree.

Why Accessibility-First?
ApproachTimeTokensReliability
Accessibility tree~120ms~50Survives theme changes
Screenshot~2000ms~170Breaks on visual changes

Result: 3-4x faster, 80% cheaper, more reliable

Standard Workflow

1. Check Accessibility Quality (Optional) - Use execute_idb_command

Before starting automation, check if the app has good accessibility support:

Invoke the execute_idb_command MCP tool:

json
{
  "operation": "check-accessibility",
  "target": "booted"
}

Interprets:

  • "excellent" or "good": Proceed with accessibility-first workflow
  • "poor" or "insufficient": May need to rely more on screenshots

Note: Most modern iOS apps have good accessibility support. Skip this check if you're confident.

2. Query Accessibility Tree - Use execute_idb_command with operation: "describe"

This is your starting point for all UI automation:

Invoke the execute_idb_command MCP tool:

json
{
  "operation": "describe",
  "target": "booted",
  "parameters": {
    "operation": "all"
  }
}

Returns:

json
{
  "elements": [
    {
      "label": "Login",
      "type": "Button",
      "frame": { "x": 100, "y": 400, "width": 175, "height": 50 },
      "centerX": 187,
      "centerY": 425,
      "enabled": true,
      "visible": true
    },
    {
      "label": "Email",
      "type": "TextField",
      "value": "",
      "frame": { "x": 50, "y": 300, "width": 275, "height": 44 },
      "centerX": 187,
      "centerY": 322
    }
  ]
}

Use centerX and centerY for tap coordinates.

3. Find Your Element

Option A: Search by Label/Text (Preferred)

json
{
  "operation": "find-element",
  "target": "booted",
  "parameters": {
    "query": "Login"
  }
}

Option B: Manual Search

From the accessibility tree response, find the element you want by:

  • label: Button text, field labels
  • type: Button, TextField, Cell, etc.
  • value: Current input value
  • visible: Only interact with visible elements
4. Interact with Element

Tap:

json
{
  "operation": "tap",
  "target": "booted",
  "parameters": {
    "x": 187,
    "y": 425
  }
}

Input Text:

json
{
  "operation": "input",
  "target": "booted",
  "parameters": {
    "text": "user@example.com"
  }
}

Keyboard Actions:

json
{
  "operation": "input",
  "target": "booted",
  "parameters": {
    "key": "return"
  }
}

Available keys: return, home, delete, space, escape, tab, up, down, left, right

5. Verify State

After interaction, query accessibility tree again to verify:

json
{
  "operation": "describe",
  "target": "booted"
}

Common Patterns

Pattern: Login Flow
1. describe → Find "Email" text field
2. tap → Focus email field
3. input → Type email
4. describe → Find "Password" text field
5. tap → Focus password field
6. input → Type password
7. describe → Find "Login" button
8. tap → Submit form
9. describe → Verify next screen
Pattern: Navigate and Tap
1. describe → Get all buttons
2. find-element → Search for specific button
3. tap → Execute tap
4. describe → Verify navigation
Pattern: Fill Form
1. describe → Get all text fields
2. For each field:
   - tap → Focus field
   - input → Enter text
   - input key:return → Next field
3. describe → Find submit button
4. tap → Submit
Pattern: Scroll and Find
1. describe → Check if element visible
2. If not visible:
   - gesture (swipe up) → Scroll
   - describe → Check again
3. find-element → Locate target
4. tap → Interact

Gestures

Swipe
json
{
  "operation": "gesture",
  "target": "booted",
  "parameters": {
    "gesture_type": "swipe",
    "direction": "up",
    "duration": 200
  }
}

Directions: up, down, left, right

Button Presses
json
{
  "operation": "gesture",
  "target": "booted",
  "parameters": {
    "gesture_type": "button",
    "button": "HOME"
  }
}

Buttons: HOME, LOCK, SIRI, SIDE_BUTTON, APPLE_PAY, SCREENSHOT, APP_SWITCH

Show full SKILL.md (308 more words)Show less

When to Use Screenshots (Fallback Only)

Only use screenshots if:

  1. Accessibility quality is "poor"

    json
    { "operation": "check-accessibility", "target": "booted" }
  2. Visual verification needed

    • Checking UI layout
    • Verifying colors/images
    • Debug visual issues
  3. Element not in accessibility tree

    • Custom drawn UI
    • Canvas/game elements
    • Some third-party components

For everything else, use accessibility tree.

Troubleshooting

Element Not Found

Problem: find-element returns no results

Solutions:

  1. Query full tree with describe to see all elements
  2. Check if element is in a scroll view (may be off-screen)
  3. Verify app state (correct screen?)
  4. Check if element has accessibility label
Tap Not Working

Problem: Tap executes but nothing happens

Solutions:

  1. Verify element is enabled: true
  2. Check element is visible: true
  3. Confirm coordinates are correct (use centerX, centerY)
  4. Element might need double-tap or long-press
Input Not Working

Problem: Text input not appearing

Solutions:

  1. Tap text field first to focus
  2. Wait for keyboard to appear
  3. Check field is not disabled
  4. Use keyboard-specific keys (return, delete)

Advanced: Coordinate Transformation

If using screenshots with idb-ui-tap, coordinates may need scaling:

json
{
  "operation": "tap",
  "target": "booted",
  "parameters": {
    "x": 187,
    "y": 425,
    "applyScreenshotScale": true,
    "screenshotScaleX": 0.5,
    "screenshotScaleY": 0.5
  }
}

But with accessibility-first, this is rarely needed.

Performance Tips

  1. Batch Operations: Group describe queries to minimize round-trips
  2. Cache Tree: Reuse accessibility tree if UI hasn't changed
  3. Target Specific Areas: Use describe with point coordinates for specific regions
  4. Avoid Unnecessary Waits: Accessibility tree reflects real-time state

Integration with MCP Tools

This Skill works with execute_idb_command tool:

  • All operations use the execute_idb_command tool
  • Tool handles IDB connection and execution
  • Tool returns structured accessibility data
  • This Skill teaches WHEN and HOW to use operations
  • accessibility-testing: WCAG compliance and quality assessment
  • ios-testing-patterns: Test automation strategies
  • simulator-workflows: Device and app management
  • xc://operations/idb: Complete IDB operations reference
  • xc://reference/accessibility: Accessibility tree structure guide
  • xc://workflows/accessibility-first: This workflow pattern

Remember: Accessibility tree first, screenshots last. 3-4x faster, 80% cheaper.

© conorluddy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/ui-automation-workflows of conorluddy/xclaude-plugin.

Open the folder on GitHubat commit 6de4b2c

Compare with similar skills

UI Automation Workflows next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

UI Automation Workflows compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
UI Automation Workflows this skillconorluddy/xclaude-plugin183—~2.2kAutomated safety check: PassMIT
Penpot Uiux Designgithub/awesome-copilot40k1 repos~3kAutomated safety check: PassMIT
DocsPrefectHQ/fastmcp28k—~1kAutomated safety check: PassApache-2.0
iOS Simulator Skillconorluddy/ios-simulator-skill1.3k—~5.7kAutomated safety check: PassMIT
Better Designmarvkr/better-design254—~1.2kAutomated safety check: PassMIT
Extracting Design Systemnoemuch/bridge156—~1.8kAutomated safety check: PassMIT

Similar skills

  • Penpot Uiux Design

    github/awesome-copilot

    Official

    Comprehensive guide for creating professional UI/UX designs in Penpot using MCP tools.

    40k GitHub starsUsed in 1 repo~3k tokens
    Frontend & DesignAuto-check passed
  • Docs

    PrefectHQ/fastmcp

    Write or revise a page under docs/ for gofastmcp.com. An agent skill from PrefectHQ/fastmcp.

    28k GitHub stars~1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • iOS Simulator Skill

    conorluddy/ios-simulator-skill

    29 production-ready scripts for iOS app testing, building, and automation.

    1.3k GitHub stars~5.7k tokensUpdated 3 days ago
    MobileAuto-check passed
  • Better Design

    marvkr/better-design

    Build, improve, and review production interfaces with the Better Design MCP.

    254 GitHub stars~1.2k tokensUpdated 17 days ago
    Frontend & DesignAuto-check passed
  • A skill your agent uses when the user says "setup", "setup bridge", "extract", "extract DS", "onboard", "build knowledge base", "initialize bridge", or is starting Bridge in a project for the first…

    156 GitHub stars~1.8k tokensUpdated 4 mo ago
    Frontend & DesignAuto-check passed
  • Limoni Agent Surface

    thebanri/limoni

    How Limoni exposes applications to AI agents and tests — the semantic tree, the automation socket, cmd/limoni-mcp, and the uitest package.

    152 GitHub stars~2.8k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed

More from conorluddy/xclaude-plugin

All 8 skills in this repo
  • iOS Accessibility Testing

    conorluddy/xclaude-plugin

    Guides WCAG 2.1 and VoiceOver accessibility testing for iOS apps, working from the accessibility tree and not from screenshots.

    183 GitHub stars~5k tokensUpdated 27 days ago
    Auto-check passed
  • iOS Crash Log Debugging

    conorluddy/xclaude-plugin

    Walks through retrieving, symbolicating and diagnosing iOS crash logs, turning a cryptic stack trace into the function names that actually failed.

    183 GitHub stars~4.9k tokensUpdated 27 days ago
    Auto-check passed
  • iOS Simulator Workflows

    conorluddy/xclaude-plugin

    Manages iOS Simulator devices and apps through the execute_simulator_command MCP tool instead of raw simctl: boot, create and delete devices, install and launch apps, screenshots and diagnostics.

    183 GitHub stars~3.3k tokensUpdated 27 days ago
    Auto-check passed
  • xc-plugin State Management

    conorluddy/xclaude-plugin

    Teaches how xc-plugin saves tokens with progressive disclosure, cached responses and consistent configuration, so large device lists and build logs arrive as summaries first.

    183 GitHub stars~4k tokensUpdated 27 days ago
    Auto-check passed
  • Xcode Build Workflows

    conorluddy/xclaude-plugin

    Directs iOS build, test and clean operations through the execute_xcode_command MCP tool instead of raw xcodebuild in the shell, with parameter-level retries on failure.

    183 GitHub stars~3k tokensUpdated 27 days ago
    Auto-check passed
  • Performance Profiling

    conorluddy/xclaude-plugin

    Instruments integration and performance analysis workflows for iOS apps.

    183 GitHub stars~7.3k tokensUpdated 27 days ago
    Auto-check passed

Questions about UI Automation Workflows

What does UI Automation Workflows do?

Accessibility-first UI automation using IDB. An agent skill from conorluddy/xclaude-plugin. UI Automation Workflows is an agent skill from conorluddy/xclaude-plugin. Accessibility-first UI automation using IDB.

When should I use UI Automation Workflows?

UI Automation Workflows fits situations like: automating simulator interactions; tapping UI elements; finding buttons; testing user flows.

How do I install UI Automation Workflows in Claude Code?

Run `npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a claude-code`. Or copy the skill folder (skills/ui-automation-workflows in conorluddy/xclaude-plugin) into .claude/skills/ui-automation-workflows in your project. Claude Code loads it when a task matches its description.

How do I install UI Automation Workflows in Codex?

Run `npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a codex`. Or copy the skill folder (skills/ui-automation-workflows in conorluddy/xclaude-plugin) into .agents/skills/ui-automation-workflows in your project. Codex loads it when a task matches its description.

Can I use UI Automation Workflows in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ui-automation-workflows, .gemini/skills/ui-automation-workflows, .github/skills/ui-automation-workflows and .opencode/skills/ui-automation-workflows in your project.

What does UI Automation Workflows need to run?

SKILL.md names no scripts, command-line tools or credentials: UI Automation Workflows is instructions for the agent only.

Does UI Automation Workflows access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is UI Automation Workflows safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does UI Automation Workflows use?

UI Automation Workflows is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does UI Automation Workflows use?

About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to UI Automation Workflows?

Skills that share tags, products or a category with UI Automation Workflows: Penpot Uiux Design (github/awesome-copilot, 40k stars), Docs (PrefectHQ/fastmcp, 28k stars), iOS Simulator Skill (conorluddy/ios-simulator-skill, 1.3k stars) and Better Design (marvkr/better-design, 254 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains UI Automation Workflows?

conorluddy (a GitHub user) maintains it in conorluddy/xclaude-plugin, which has 183 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on September 12, 2026.

Source: conorluddy/xclaude-plugin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.