Penpot Uiux Design
github/awesome-copilot
Comprehensive guide for creating professional UI/UX designs in Penpot using MCP tools.
Accessibility-first UI automation using IDB. An agent skill from conorluddy/xclaude-plugin.
$ npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install conorluddy/xclaude-plugin ui-automation-workflows --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "ui-automation-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/ui-automation-workflows into .claude/skills/ui-automation-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-automation-workflows", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/conorluddy/xclaude-plugin/tree/main/skills/ui-automation-workflowsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install conorluddy/xclaude-plugin ui-automation-workflows --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ui-automation-workflows .agents/skills/ui-automation-workflows && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ui-automation-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/ui-automation-workflows into .agents/skills/ui-automation-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-automation-workflows", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install conorluddy/xclaude-plugin ui-automation-workflows --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ui-automation-workflows .cursor/skills/ui-automation-workflows && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ui-automation-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/ui-automation-workflows into .cursor/skills/ui-automation-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-automation-workflows", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/conorluddy/xclaude-plugin.git --path skills/ui-automation-workflows--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install conorluddy/xclaude-plugin ui-automation-workflows --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ui-automation-workflows .gemini/skills/ui-automation-workflows && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ui-automation-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/ui-automation-workflows into .gemini/skills/ui-automation-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-automation-workflows", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install conorluddy/xclaude-plugin ui-automation-workflowsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ui-automation-workflows .github/skills/ui-automation-workflows && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ui-automation-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/ui-automation-workflows into .github/skills/ui-automation-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-automation-workflows", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add conorluddy/xclaude-plugin --skill ui-automation-workflows -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install conorluddy/xclaude-plugin ui-automation-workflows --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ui-automation-workflows .opencode/skills/ui-automation-workflows && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ui-automation-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/ui-automation-workflows into .opencode/skills/ui-automation-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-automation-workflows", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ui-automation-workflowsAccessibility-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. 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.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6de4b2c. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from conorluddy/xclaude-plugin at commit 6de4b2c, republished under its MIT licence (© conorluddy). 707 words, ~2,151 tokens.
.claude/skills/ui-automation-workflows/SKILL.md (or your agent's skills folder).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.
This is the most important rule: When automating UI interactions, you MUST use the execute_idb_command MCP tool.
execute_idb_command for all UI automation, element finding, and accessibility queriesidb commandsidb directly in bashidb commands in a terminalWhy? The MCP tool provides:
If execute_idb_command fails, the issue is with parameters or app state - not that you should use bash.
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.
| Approach | Time | Tokens | Reliability |
|---|---|---|---|
| Accessibility tree | ~120ms | ~50 | Survives theme changes |
| Screenshot | ~2000ms | ~170 | Breaks on visual changes |
Result: 3-4x faster, 80% cheaper, more reliable
execute_idb_commandBefore starting automation, check if the app has good accessibility support:
Invoke the execute_idb_command MCP tool:
{
"operation": "check-accessibility",
"target": "booted"
}Interprets:
Note: Most modern iOS apps have good accessibility support. Skip this check if you're confident.
execute_idb_command with operation: "describe"This is your starting point for all UI automation:
Invoke the execute_idb_command MCP tool:
{
"operation": "describe",
"target": "booted",
"parameters": {
"operation": "all"
}
}Returns:
{
"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.
Option A: Search by Label/Text (Preferred)
{
"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 labelstype: Button, TextField, Cell, etc.value: Current input valuevisible: Only interact with visible elementsTap:
{
"operation": "tap",
"target": "booted",
"parameters": {
"x": 187,
"y": 425
}
}Input Text:
{
"operation": "input",
"target": "booted",
"parameters": {
"text": "user@example.com"
}
}Keyboard Actions:
{
"operation": "input",
"target": "booted",
"parameters": {
"key": "return"
}
}Available keys: return, home, delete, space, escape, tab, up, down, left, right
After interaction, query accessibility tree again to verify:
{
"operation": "describe",
"target": "booted"
}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 screen1. describe → Get all buttons
2. find-element → Search for specific button
3. tap → Execute tap
4. describe → Verify navigation1. 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 → Submit1. describe → Check if element visible
2. If not visible:
- gesture (swipe up) → Scroll
- describe → Check again
3. find-element → Locate target
4. tap → Interact{
"operation": "gesture",
"target": "booted",
"parameters": {
"gesture_type": "swipe",
"direction": "up",
"duration": 200
}
}Directions: up, down, left, right
{
"operation": "gesture",
"target": "booted",
"parameters": {
"gesture_type": "button",
"button": "HOME"
}
}Buttons: HOME, LOCK, SIRI, SIDE_BUTTON, APPLE_PAY, SCREENSHOT, APP_SWITCH
Only use screenshots if:
Accessibility quality is "poor"
{ "operation": "check-accessibility", "target": "booted" }Visual verification needed
Element not in accessibility tree
For everything else, use accessibility tree.
Problem: find-element returns no results
Solutions:
describe to see all elementsProblem: Tap executes but nothing happens
Solutions:
enabled: truevisible: truecenterX, centerY)Problem: Text input not appearing
Solutions:
return, delete)If using screenshots with idb-ui-tap, coordinates may need scaling:
{
"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.
describe with point coordinates for specific regionsThis Skill works with execute_idb_command tool:
execute_idb_command toolxc://operations/idb: Complete IDB operations referencexc://reference/accessibility: Accessibility tree structure guidexc://workflows/accessibility-first: This workflow patternRemember: 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
Just SKILL.md in skills/ui-automation-workflows of conorluddy/xclaude-plugin.
Open the folder on GitHubat commit 6de4b2c
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| UI Automation Workflows this skillconorluddy/xclaude-plugin | 183 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Penpot Uiux Designgithub/awesome-copilot | 40k | 1 repos | ~3k | Automated safety check: Pass | MIT | |
| DocsPrefectHQ/fastmcp | 28k | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| iOS Simulator Skillconorluddy/ios-simulator-skill | 1.3k | — | ~5.7k | Automated safety check: Pass | MIT | |
| Better Designmarvkr/better-design | 254 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Extracting Design Systemnoemuch/bridge | 156 | — | ~1.8k | Automated safety check: Pass | MIT |
github/awesome-copilot
Comprehensive guide for creating professional UI/UX designs in Penpot using MCP tools.
PrefectHQ/fastmcp
Write or revise a page under docs/ for gofastmcp.com. An agent skill from PrefectHQ/fastmcp.
conorluddy/ios-simulator-skill
29 production-ready scripts for iOS app testing, building, and automation.
marvkr/better-design
Build, improve, and review production interfaces with the Better Design MCP.
noemuch/bridge
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…
thebanri/limoni
How Limoni exposes applications to AI agents and tests — the semantic tree, the automation socket, cmd/limoni-mcp, and the uitest package.
conorluddy/xclaude-plugin
Guides WCAG 2.1 and VoiceOver accessibility testing for iOS apps, working from the accessibility tree and not from screenshots.
conorluddy/xclaude-plugin
Walks through retrieving, symbolicating and diagnosing iOS crash logs, turning a cryptic stack trace into the function names that actually failed.
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.
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.
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.
conorluddy/xclaude-plugin
Instruments integration and performance analysis workflows for iOS apps.
Works with
Categories
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.
UI Automation Workflows fits situations like: automating simulator interactions; tapping UI elements; finding buttons; testing user flows.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: UI Automation Workflows is instructions for the agent only.
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.
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.
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.
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.
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.
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.