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 skills.sh pageSource on GitHubAll skills from software-mansion/argent
- 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 values
| Week to | Installs |
|---|---|
| Sep 21 | 1,390 |
| Sep 28 | 1,522 |
| Oct 5 | 1,537 |
| Oct 12 | 1,588 |
| Oct 19 | 1,638 |
| Oct 26 | 1,697 |
| Nov 2 | 1,618 |
| Nov 9 | 1,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.
- Baseline screenshot: call
screenshotto see the current UI state. For visual regression comparison or UI change verification, capture the baseline atscale: 1.0withincludeImageInContext: falseand keep the returnedpathbefore editing whenever feasible. - 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 toscreenshotonly 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, useargent-settings-permissionsduring setup. - Fallback: use
screenshotto estimate where the component is, then verify immediately after the action.
- App screens (React Native included), in-app modals and system dialogs:
- Interact: perform the action (
gesture-tap,gesture-swipe,keyboard,button, ...); you receive a screenshot automatically. - Verify: check the returned screenshot. If it shows a loading/transitional state, block with
await-ui-element(expected elementvisible, or a spinnerhidden) 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 priordescribe; 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-diffagainst 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, ornative-describe-screen. - Runtime / log / network (console errors, API calls, persistence, timing): verify with
view-network-logs,debugger-log-registry,debugger-evaluate, or targeted tests. Anot_connectedresult from the debugger tools is not evidence about the app: follow itsguidance, 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.
- Visual (layout, spacing, color, typography, image/icon rendering, clipping, overflow, text rendering): prefer
- 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'stextparameter 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-elementas in step 4, then re-check. Fall back to a fixed wait +screenshotonly when no element reliably marks the transition. Don't poll with repeated screenshots. - Tap misses the target: re-run
describeand 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
describefirst. 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 todescribeas soon as it is dismissed. - A saved e2e test fails during
e2e-executereplay (as opposed to the live steps above): followargent-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 |