From android-dev
UI testing of an Android feature on a device via the claude-in-mobile CLI. Reads the feature code, builds a test plan, launches the app, tests scenarios, takes screenshots, and reports bugs. <example> Context: User implemented a new feature and wants to test it on a device user: "test the authorization screen on a device" assistant: "Using test-ui skill to test the auth feature on a device via claude-in-mobile." </example> <example> Context: User wants to check how a screen looks user: "check how the profile screen looks" assistant: "Using test-ui skill for visual verification of the profile screen on a device." </example>
How this skill is triggered — by the user, by Claude, or both
Slash command
/android-dev:test-uiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You test Android UI on a real device/emulator via the `claude-in-mobile` CLI.
You test Android UI on a real device/emulator via the claude-in-mobile CLI.
Task from user: $ARGUMENTS
Required parameters:
android (default)**/feature/{featureName}/**/View*.kt or **/{featureName}/*View.kt**/feature/{featureName}/**/ViewState*.kt**/feature/{featureName}/**/ViewEvent*.ktViewState — understand what data is displayed on the screenViewEvent — understand what actions the user can performView — understand the UI structure, all elements, texts, buttonsBased on the code analysis, compile a list of scenarios:
Use the claude-in-mobile CLI to interact with the device.
# Launch the application
claude-in-mobile launch --package {packageName} --platform android
# Screenshot (ALWAYS with --compress)
claude-in-mobile screenshot --platform android --compress
# UI tree (for finding elements)
claude-in-mobile ui-dump --platform android
# Tap by text
claude-in-mobile tap-text --text "{text}" --platform android
# Tap by coordinates
claude-in-mobile tap --x {x} --y {y} --platform android
# Text input
claude-in-mobile input --text "{text}" --platform android
# Swipe
claude-in-mobile swipe --startX {x1} --startY {y1} --endX {x2} --endY {y2} --platform android
# Key press (back, home, enter)
claude-in-mobile key --key {keyName} --platform android
# Wait (seconds)
claude-in-mobile wait --seconds {n} --platform android
# Find element
claude-in-mobile find --text "{text}" --platform android
IMPORTANT: For screenshot, ALWAYS use the --compress flag to reduce image size.
claude-in-mobile launch --package {packageName} --platform androidclaude-in-mobile wait --seconds 3 --platform androidnavigationInstructionsFor each scenario from the test plan:
claude-in-mobile screenshot --platform android --compressclaude-in-mobile ui-dump --platform androidclaude-in-mobile wait --seconds 1-3 --platform androidclaude-in-mobile screenshot --platform android --compressui-dump to find elements if tap-text does not workGenerate a report based on the test results:
## Test Report: {featureName}
### Environment
- Device: {device info from ui-dump}
- Package: {packageName}
- Platform: android
### Verdict
**PASS** / **FAIL**
### Scenarios
| # | Scenario | Status | Notes |
|---|----------|--------|-------|
| 1 | {scenario} | PASS/FAIL | {details} |
| 2 | {scenario} | PASS/FAIL | {details} |
### Issues
{N}. [{Category}] {description}
Severity: Critical / Major / Minor
Steps to reproduce: {steps}
Expected: {expected behavior}
Actual: {actual behavior}
Screenshot: {reference to screenshot}
### Issue Categories:
- **[Rendering]** — element not displayed, incorrect size/color/position
- **[Interaction]** — button not responding, incorrect behavior on tap
- **[Navigation]** — incorrect transition, missing back navigation
- **[Data]** — incorrect data, not updating, empty state not handled
- **[Accessibility]** — no content description, touch target too small
- **[Crash]** — application crashed
### Summary
Scenarios: {total} (Passed: {N}, Failed: {N})
Issues: {N} (Critical: {N}, Major: {N}, Minor: {N})
--compress when calling screenshotui-dump if you cannot find an element by textnpx claudepluginhub gorban-dev/gor-dev-plugins --plugin android-devAutomates mobile app testing on iOS simulators/Android emulators using Appium, Detox, XCUITest, Espresso, Maestro. Validates UI interactions, gestures, navigation, and platform behaviors.
Tests and verifies React Native or native Android UIs on a live emulator via ADB commands. Covers tap, swipe, text input, UI tree inspection, screenshot capture, and logcat analysis.
Executes native UI automation on mobile devices via DSL batch scripts: tap/type/swipe elements, launch apps, verify screens, save screenshots using accessibility tree predicates. For testing apps and device interactions.