Skills software-mansion argent Argent

argent-test-ui-flow

Use it when:
You want the agent to check a login, navigation or other UI flow on a simulator, emulator or phone, or confirm a visible UI change.
It does:
Repeats a loop for each step of the flow: baseline screenshot, find the target, act, verify.
You get:
A verdict: expected and observed behavior, the evidence used, and anything that blocked the check.
Picks evidence:
Pixel diffs for visual changes, element trees for structure, logs and network traffic for runtime behavior.
Needs:
The Argent MCP server.

Skill 5 of 12 in the Argent bundle, after argent-settings-permissions and before argent-screenshot-diff.

TL;DR

A manual-QA loop the agent runs through Argent, Software Mansion's MCP server for controlling simulators, emulators and devices. It picks a device first, preferring one already running, then for each step of the flow takes a baseline screenshot, finds the element to tap in the screen's element tree, acts, and verifies. Verification depends on what's asserted: a screenshot diff against the baseline for layout, color or text rendering; the element or component tree for navigation state and labels; network and console logs or a JavaScript evaluation for API calls and errors. It waits out loading screens with await-ui-element rather than repeated screenshots, and retries a missed tap once with fresh coordinates before reporting the element as not found. Credentials are typed as {{secret:NAME}} placeholders, never as plaintext. These steps run live; a flow worth repeating can be saved as a replayable YAML test with argent-create-e2e.

Summarizes the skill at b965c94.

npx skills add https://github.com/software-mansion/argent --skill argent-test-ui-flow
Total Downloads
29,700 on skills.sh, Nov 9, 2026
Repo stars
3,175 software-mansion/argent
First seen
Apr 28, 2026 on skills.sh
Weekly Downloads
1.7K
+25% over the 8 weeks to Nov 9
Weekly values
Week toInstalls
Sep 211,390
Sep 281,522
Oct 51,537
Oct 121,588
Oct 191,638
Oct 261,697
Nov 21,618
Nov 91,736
Category

Find root causes, review code and test what you built.

Drive desktop apps, phones and simulators: tap, type, read the screen and test native apps.

Everything for building software: planning, coding, debugging, design, frameworks, cloud, agents and skills.

Type

A multi-step process the agent follows: interview, debug, run a TDD loop, review.

Effect

Its own steps create or change files, git state or local tools.

Needs

Needs an MCP server connected.

Publisher

A verified publisher on skills.sh, or the company or maintainer behind the product the skill operates.

Topics
Stack

SKILL.md

From software-mansion/argent at b965c94. Checked daily, last changed Nov 6, 2026.

Frontmatter
name: argent-test-ui-flow
description: Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools. Use when testing UI flows, verifying login works, testing navigation, running UI test scenarios, manual QA steps, visible UI changes, or visual behavior.

Before testing

Resolve the device first: call list-devices, use the platform the user named or else prefer a device that is already running, and don't pick a cabled phone without explicit intent. Setup: argent-ios-simulator-setup / argent-android-emulator-setup. The interaction tool names are identical on iOS and Android.

Physical iPhone (kind: "device"): read argent-ios-device-interact first. launch-app before anything; describe fails while the app is backgrounded.

1. Workflow

For implementation tasks that modify visible UI, this workflow also serves as a visual acceptance path.

  1. Baseline screenshot: call screenshot to see the current UI state. For visual regression comparison or UI change verification, capture the baseline at scale: 1.0 with includeImageInContext: false and keep the returned path before editing whenever feasible.
  2. Find target: get element coordinates from a discovery tool before tapping:
    • App screens (React Native included), in-app modals and system dialogs: describe. Fall back to screenshot only if an overlay is not exposed reliably. When the app raises its own permission dialog, answer it here; that's the real flow under test. To take a prompt out of the flow, use argent-settings-permissions during setup.
    • Fallback: use screenshot to estimate where the component is, then verify immediately after the action.
  3. Interact: perform the action (gesture-tap, gesture-swipe, keyboard, button, ...); you receive a screenshot automatically.
  4. Verify: check the returned screenshot. If it shows a loading/transitional state, block with await-ui-element (expected element visible, or a spinner hidden) rather than a guessed delay (its result carries the new screenshot and element tree), but only with a selector you can trust (text/identifier/role) that the screen is known to have or that you saw in a prior describe; a guessed one just times out. Otherwise use a short fixed wait. Pick evidence by what's being asserted:
    • Visual (layout, spacing, color, typography, image/icon rendering, clipping, overflow, text rendering): prefer screenshot-diff against the step 1 baseline: it surfaces pixel-visible changes the auto-screenshot might miss. Fall back to inspecting the auto-screenshot only when a stable baseline isn't available.
    • Structural (navigation state, element existence, accessibility labels/values, selection, hierarchy, route): verify with describe, debugger-component-tree, or native-describe-screen.
    • Runtime / log / network (console errors, API calls, persistence, timing): verify with view-network-logs, debugger-log-registry, debugger-evaluate, or targeted tests. A not_connected result from the debugger tools is not evidence about the app: follow its guidance, then re-verify.
    • Mixed: collect evidence for each relevant class.
    • Report the combined verdict: expected behavior, observed behavior, evidence used, and any blocker for requested visual diffing.
  5. Repeat for each step in the flow.

2. Example: login flow

1. screenshot → see login screen
2. gesture-tap { x: 0.5, y: 0.4 }  → tap email field
3. keyboard { text: "user@example.com" }
4. gesture-tap { x: 0.5, y: 0.55 } → tap password field
5. keyboard { text: "{{secret:APP_PASSWORD}}" }
6. gesture-tap { x: 0.5, y: 0.7 }  → tap Login button
7. screenshot → verify home screen appeared

Credentials: never type plaintext credentials; use a {{secret:<NAME>}} placeholder (keyboard's text parameter lists where it is read from and what to do when a name is missing). Never invent credentials or echo secret values into reports or saved files.

3. Recovery Pattern

  • Screen mid-transition or loading: wait with await-ui-element as in step 4, then re-check. Fall back to a fixed wait + screenshot only when no element reliably marks the transition. Don't poll with repeated screenshots.
  • Tap misses the target: re-run describe and retry once with new coordinates. If it fails twice, stop and report that the element was not found.
  • Permission dialog or modal visible: re-run describe first. Stay in screenshot-driven navigation only while the overlay is not exposed reliably: tap one visible button at a time, verify with the returned screenshot, and switch back to describe as soon as it is dismissed.
  • A saved e2e test fails during e2e-execute replay (as opposed to the live steps above): follow argent-create-e2e's Diagnose a replay failure: classify the failure, inspect the actual screen, repair the smallest justified unit, then replay the full e2e test.

Record for replay: if a tested flow is likely to be repeated, use the argent-create-e2e skill to record it as a .yaml test, so it can be replayed later with a single e2e-execute call.

Related Skills

Skill When to use
argent-device-interact Tool usage for tapping, swiping, typing (iOS + Android)
argent-screenshot-diff Visual regression and before/after screenshot comparison
argent-ios-simulator-setup Booting and connecting an iOS simulator
argent-android-emulator-setup Booting and connecting an Android emulator
argent-react-native-app-workflow Starting the app, Metro, build issues
argent-metro-debugger Console logs, JS evaluation, component inspection
argent-create-e2e Record a test sequence as a replayable e2e test