Mobile Dev
callstackincubator/codex-mobile-dev-plugin
A skill your agent uses when building, running, changing, or debugging local iOS, Android, Expo, React Native, or SwiftUI apps.
Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools.
$ npx skills add bbplayer-app/BBPlayer --skill argent-test-ui-flow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bbplayer-app/BBPlayer argent-test-ui-flow --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/bbplayer-app/BBPlayer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/argent-test-ui-flow .claude/skills/argent-test-ui-flow && 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 "argent-test-ui-flow" agent skill from https://github.com/bbplayer-app/BBPlayer/tree/dev/.agents/skills/argent-test-ui-flow into .claude/skills/argent-test-ui-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "argent-test-ui-flow", 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/bbplayer-app/BBPlayer/tree/dev/.agents/skills/argent-test-ui-flowType 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 bbplayer-app/BBPlayer --skill argent-test-ui-flow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bbplayer-app/BBPlayer argent-test-ui-flow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bbplayer-app/BBPlayer.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/argent-test-ui-flow .agents/skills/argent-test-ui-flow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "argent-test-ui-flow" agent skill from https://github.com/bbplayer-app/BBPlayer/tree/dev/.agents/skills/argent-test-ui-flow into .agents/skills/argent-test-ui-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "argent-test-ui-flow", 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 bbplayer-app/BBPlayer --skill argent-test-ui-flow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bbplayer-app/BBPlayer argent-test-ui-flow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bbplayer-app/BBPlayer.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/argent-test-ui-flow .cursor/skills/argent-test-ui-flow && 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 "argent-test-ui-flow" agent skill from https://github.com/bbplayer-app/BBPlayer/tree/dev/.agents/skills/argent-test-ui-flow into .cursor/skills/argent-test-ui-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "argent-test-ui-flow", 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/bbplayer-app/BBPlayer.git --path .agents/skills/argent-test-ui-flow--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 bbplayer-app/BBPlayer --skill argent-test-ui-flow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bbplayer-app/BBPlayer argent-test-ui-flow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bbplayer-app/BBPlayer.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/argent-test-ui-flow .gemini/skills/argent-test-ui-flow && 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 "argent-test-ui-flow" agent skill from https://github.com/bbplayer-app/BBPlayer/tree/dev/.agents/skills/argent-test-ui-flow into .gemini/skills/argent-test-ui-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "argent-test-ui-flow", 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 bbplayer-app/BBPlayer argent-test-ui-flowInstalls 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 bbplayer-app/BBPlayer --skill argent-test-ui-flow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bbplayer-app/BBPlayer.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/argent-test-ui-flow .github/skills/argent-test-ui-flow && 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 "argent-test-ui-flow" agent skill from https://github.com/bbplayer-app/BBPlayer/tree/dev/.agents/skills/argent-test-ui-flow into .github/skills/argent-test-ui-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "argent-test-ui-flow", 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 bbplayer-app/BBPlayer --skill argent-test-ui-flow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bbplayer-app/BBPlayer argent-test-ui-flow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bbplayer-app/BBPlayer.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/argent-test-ui-flow .opencode/skills/argent-test-ui-flow && 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 "argent-test-ui-flow" agent skill from https://github.com/bbplayer-app/BBPlayer/tree/dev/.agents/skills/argent-test-ui-flow into .opencode/skills/argent-test-ui-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "argent-test-ui-flow", 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.
argent-test-ui-flowAutonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools.
Argent Test UI Flow is an agent skill from bbplayer-app/BBPlayer. 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 end-to-end UI test scenarios, manual QA steps, visible UI changes, or visual behavior.
Its SKILL.md is about 2.7k 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 Mobile, covering MCP servers. It works with Android and iOS. The repository describes itself as: 一款简约、好用的 BiliBili 音乐播放器。 The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7b98d88. 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.
Shell commands in SKILL.md call:
adbFrom 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 these keys or tokens, usually read from environment variables:
APP_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Argent Test UI Flow loads about 2.7k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,047 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 noted patterns worth knowing about, such as sudo or a known installer.
_SECRET_`-prefixed key in the project's `.env` / `.env.local`). If the name is not defined, the failure lists the availaAutomated 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 bbplayer-app/BBPlayer at commit 7b98d88, republished under its MIT licence (© bbplayer-app). 1,047 words, ~2,744 tokens.
.claude/skills/argent-test-ui-flow/SKILL.md (or your agent's skills folder).Physical iPhone (kind: "device"): read argent-ios-device-interact first. launch-app before anything; describe fails while the app is backgrounded.
The interaction tool names are identical on iOS and Android — gesture-tap, gesture-swipe, describe, screenshot, launch-app, etc. — and the tool-server auto-dispatches based on the udid you pass (UUID-shape → iOS, adb serial → Android).
Before testing, resolve which device to test on. Call list-devices and follow <device_selection_rule>: prefer a running device on any platform;
Once a platform is chosen, the per-platform setup skill takes over:
| Platform | Setup skill | Find devices with |
|---|---|---|
| iOS | argent-ios-simulator-setup | list-devices → boot-device with udid if none booted |
| Android | argent-android-emulator-setup | list-devices → boot-device with avdName if none ready |
All interactions go through argent MCP tools. Ensure the simulator/emulator is ready before starting.
For implementation tasks that modify visible UI, this workflow can also serve as a visual acceptance path.
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.debugger-component-tree — it returns component names with (tap: x,y) coordinates. This is the preferred tool for RN apps on either platform. To use it, resolve the argent-react-native-app-workflow skill for setup; on Android you must also run adb -s <serial> reverse tcp:8081 tcp:8081 so Metro is reachable from the device.describe. On iOS this returns the AX tree (falls back to native-devtools when AX is empty); on Android it returns the uiautomator tree in the same DescribeNode shape.describe first. Fall back to screenshot only if the 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 (pre-grant/deny before launch, re-enable a permission the user already denied, or reset it so the dialog reappears), use the argent-settings-permissions skill during setup instead of interacting with the dialog.screenshot to estimate where the desired component is, then verify immediately after the action.gesture-tap, gesture-swipe, keyboard, button, ...) — you receive a screenshot automatically.await-ui-element (expected element visible, or a spinner hidden) over a guessed delay — 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:screenshot-diff against the baseline captured in step 1 — it surfaces pixel-visible changes the auto-screenshot might miss. Fall back to visual inspection of the auto-screenshot only when a stable baseline isn't available.describe, debugger-component-tree, or native-describe-screen.view-network-logs, debugger-log-registry, debugger-evaluate, or targeted tests. Note debugger-log-registry returns { status: "not_connected", reason, guidance } with no log file when the debugger is unreachable — that is not evidence about the app; follow its guidance to reconnect, then re-verify.Goal: Test [feature name]
Steps:
1. Classify expected result: visual / structural / runtime-log-network / mixed → choose evidence
2. [Navigate / tap / type to reach stable comparable starting point] → verify auto-screenshot
3. screenshot { scale: 1.0, includeImageInContext: false } → save baseline path when visual or mixed evidence needs diffing
4. [Perform the action to test] → verify auto-screenshot
5. Use screenshot-diff when requested or when comparable images add useful visual evidence
6. Report: pass / fail with combined visual, structural, runtime/log/network evidence as applicable1. 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 appearedCredentials: never type plaintext credentials — use a
{{secret:<NAME>}}placeholder inkeyboard, resolved server-side so the value never enters agent context. It comes from theARGENT_SECRET_<NAME>environment variable or an argent secrets file (.argent/secrets.envin the project,~/.argent/secrets.env, or anARGENT_SECRET_-prefixed key in the project's.env/.env.local). If the name is not defined, the failure lists the available names and every path it checked — ask the user to add it to one of those files (which applies immediately) instead of pasting the secret into the conversation. Never invent credentials or echo secret values into reports or saved files.
1. screenshot → see list at top
2. gesture-swipe { fromY: 0.7, toY: 0.3 } → scroll down
3. gesture-tap item at visible position → verify auto-screenshot
4. screenshot → verify detail view opened
5. button { button: "back" }
6. screenshot → verify returned to list1. Classify expected result as visual or mixed.
2. Navigate to the stable starting state.
3. screenshot { scale: 1.0, includeImageInContext: false } → save baseline path.
4. describe / debugger-component-tree → find the control and use its returned tap coordinates.
5. gesture-tap → perform the visual behavior under test.
6. screenshot-diff { baselinePath, captureCurrent: true, udid, outputDir } → inspect visible change or stability.
7. describe / debugger-component-tree → verify selected state, label, route, or attributes if relevant.
8. Report combined verdict from expected behavior, visual inspection, diff summary, and structural evidence.1. gesture-tap { x: 0.5, y: 0.7 } → trigger an action that fetches data
2. screenshot → loading spinner is showing
3. await-ui-element { condition: hidden, selector: { text: "Loading" } } → block until the fetch finishes and the spinner disappears
4. describe / screenshot → verify the fetched content renderedawait-ui-element (wait for the target element to be visible, or the spinner/placeholder to be hidden) instead of a blind fixed delay, then re-check. Fall back to a fixed wait + screenshot only when no element reliably marks the transition.describe / debugger-component-tree), retry once with new coordinates.describe first. Stay in screenshot-driven navigation only when the overlay is not exposed reliably, then switch back to describe / debugger-component-tree as soon as it is dismissed.flow-execute replay (as opposed to live test steps above): follow argent-create-flow's Diagnose a replay failure — classify the failure, inspect the actual screen, repair the smallest justified unit, then replay the full flow.await-ui-element (block until an element is visible/hidden or contains text) rather than repeated screenshot calls with fixed sleeps. See the await-ui-element section of argent-device-interact.gesture-custom for long-press context menus (800ms hold).describe first. Use screenshot only as fallback, tap one visible button at a time, and verify with the returned screenshot before continuing.argent-create-flow skill to record it as a .yaml script. This lets you replay the entire sequence later with a single flow-execute call instead of re-running each step manually.| 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 | Breakpoints, console logs, JS evaluation |
argent-create-flow | Record a test sequence as a replayable flow |
© bbplayer-app, 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 .agents/skills/argent-test-ui-flow of bbplayer-app/BBPlayer.
Open the folder on GitHubat commit 7b98d88
Argent Test UI Flow 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 |
|---|---|---|---|---|---|---|
| Argent Test UI Flow this skillbbplayer-app/BBPlayer | 1.1k | — | ~2.7k | Automated safety check: Notes | MIT | |
| Mobile Devcallstackincubator/codex-mobile-dev-plugin | 144 | — | ~5.5k | Automated safety check: Pass | None | |
| Agent Devicecallstackincubator/codex-mobile-dev-plugin | 144 | — | ~1.2k | Automated safety check: Pass | None | |
| Solomdzhitongblog/solomd | 1.2k | — | ~2k | Automated safety check: Pass | MIT | |
| Mira Risk Collectvw2x/Mira | 105 | — | ~793 | Automated safety check: Pass | GPL-3.0 | |
| Engine Whats Newflutter/flutter | 179k | — | ~978 | Automated safety check: Pass | BSD-3-Clause |
callstackincubator/codex-mobile-dev-plugin
A skill your agent uses when building, running, changing, or debugging local iOS, Android, Expo, React Native, or SwiftUI apps.
callstackincubator/codex-mobile-dev-plugin
Control a local iOS simulator or Android device with Mobile Dev's bundled agent-device MCP tools.
zhitongblog/solomd
Read, search, edit, and version-control any folder of Markdown notes via the SoloMD MCP server.
vw2x/Mira
Run Mira environment risk collection. An agent skill from vw2x/Mira.
flutter/flutter
Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).
droidrun/mobilerun
Answers questions about Mobilerun, the LLM-agent framework for automating Android and iOS devices, by pointing the agent to the right page of its v5 documentation.
bbplayer-app/BBPlayer
Guide for creating and writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript).
bbplayer-app/BBPlayer
Debug a JS runtime via CDP using argent debugger tools. An agent skill from bbplayer-app/BBPlayer.
bbplayer-app/BBPlayer
Optimizes a React Native app by profiling first to find real bottlenecks, then sweeping for mechanical issues.
bbplayer-app/BBPlayer
Propose multiple visual design variants for on-screen elements and let the human pick in the Argent Lens window.
bbplayer-app/BBPlayer
Create repeatable QA regression E2E tests as Argent flows from test cases, tickets, or acceptance criteria.
bbplayer-app/BBPlayer
Compare saved or live app screenshots with the argent screenshot-diff tool.
Categories
Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools. Argent Test UI Flow is an agent skill from bbplayer-app/BBPlayer. Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools.
Argent Test UI Flow fits situations like: testing UI flows; verifying login works; testing navigation; running end-to-end UI test scenarios.
Run `npx skills add bbplayer-app/BBPlayer --skill argent-test-ui-flow -a claude-code`. Or copy the skill folder (.agents/skills/argent-test-ui-flow in bbplayer-app/BBPlayer) into .claude/skills/argent-test-ui-flow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bbplayer-app/BBPlayer --skill argent-test-ui-flow -a codex`. Or copy the skill folder (.agents/skills/argent-test-ui-flow in bbplayer-app/BBPlayer) into .agents/skills/argent-test-ui-flow 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 bbplayer-app/BBPlayer --skill argent-test-ui-flow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/argent-test-ui-flow, .gemini/skills/argent-test-ui-flow, .github/skills/argent-test-ui-flow and .opencode/skills/argent-test-ui-flow in your project.
Going by SKILL.md and its folder, Argent Test UI Flow needs the command-line tools its instructions call (adb) and credentials named APP_PASSWORD.
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 notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Argent Test UI Flow 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.7k tokens (SKILL.md is roughly 11k 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 Argent Test UI Flow: Mobile Dev (callstackincubator/codex-mobile-dev-plugin, 144 stars), Agent Device (callstackincubator/codex-mobile-dev-plugin, 144 stars), Solomd (zhitongblog/solomd, 1.2k stars) and Mira Risk Collect (vw2x/Mira, 105 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bbplayer-app (a GitHub organization) maintains it in bbplayer-app/BBPlayer, which has 1,143 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 8, 2026.
Source: bbplayer-app/BBPlayer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.