argent-android-emulato…
Set up and connect to an Android emulator using argent MCP tools. Use when starting a new session on Android, booting an…
Propose multiple visual design variants for on-screen elements and let the human pick in the Argent Lens window. Use when the user asks for design alternatives / options / A-B choices for a screen or component, or any time you have produced more than one candidate look for an
Claude Code
$ npx -y skills add software-mansion/argent --skill argent-lens --agent claude-code
Codex
$ npx skills add software-mansion/argent --skill argent-lens -a codex -y
Cursor
$ npx skills add software-mansion/argent --skill argent-lens -a cursor -y
Gemini CLI
$ npx skills add software-mansion/argent --skill argent-lens -a gemini-cli -y
GitHub Copilot
$ npx skills add software-mansion/argent --skill argent-lens -a github-copilot -y
OpenCode
$ npx skills add software-mansion/argent --skill argent-lens -a opencode -y
Windsurf
$ npx skills add software-mansion/argent --skill argent-lens -a windsurf -y
name: argent-lens description: Propose multiple visual design variants for on-screen elements and let the human pick in the Argent Lens window. Use when the user asks for design alternatives / options / A-B choices for a screen or component, or any time you have produced more than one candidate look for an element and want a human decision before committing.
> **Prerequisite: feature flag.** This workflow is gated behind the `argent-lens` flag (off by default). Run `argent enable argent-lens` once before using it. If `propose_variant` comes back not-found, the flag is off; enable it and retry.
You implement several candidate designs, capture each one running on the device, and stage them with `propose_variant` (non-blocking, once per variant). The Argent Lens window opens on its own and shows each element as a card beside the live device stream; the human picks per element, may pin comments, and presses **Complete**. `await_user_selection` is the single blocking call that returns their decision. Both tools' descriptions cover their parameters and return shapes.
Resolve a simulator/emulator first (`argent-ios-simulator-setup` / `argent-android-emulator-setup`) and, for React Native, `argent-react-native-app-workflow` to run the app and reload the bundle.
Decide, before touching code, exactly which elements you are redesigning and the distinct variants for each. Write them down (e.g. "Search field: Filled / Outlined / Pill", "Primary CTA: Solid / Gradient"). Each variant must be a single, self-contained change you can apply, screenshot, and revert independently. Vague or overlapping variants produce useless proposals.
For each element, run `describe` on its screen and read its exact `identifier` / `label` / `role`. Prefer `match: { by: "identifier", … }` (stable testID), then an exact `label`; the default `text` match is fine only when the element's visible text is unique. A wrong `match` makes the card point at the wrong element or float unanchored.
1. **Build the variant** in code. 2. **Apply it on the device.** Reload the RN bundle (`debugger-reload-metro`) or rebuild as needed so the running app shows this variant. 3. **Navigate to it** (`argent-device-interact`): a screenshot is only meaningful if the element is on screen. 4. **Screenshot.** Call `screenshot` and pass the returned path **straight through** as `variant.previewImage`. **NEVER hand-crop, resize, re-encode, or copy the screenshot to another folder**: that double-crops against the preview window's own cropping and writes the image where the server won't serve it ("No preview"). If you suspect the variant didn't apply (no visible change vs. the previous capture), compare with the previous path (`shasum -a 256`): byte-identical captures mean the variant is not on screen yet. Fix that; never propose anyway. 5. **Propose** with `element`, `match`, `udid` (the device you captured on) and `previewImage`, plus a `summary` and `code`/`filePath` when useful. The tool **auto-captures the crop frame** by describing the device at propose time, so propose right after the screenshot, while the variant is still on screen. Pass `variant.frame` only to override that, e.g. when the element can't stay on screen at propose time. 6. **Revert** the change before building the next variant.
After every variant for every element is staged, call `await_user_selection` once. A `pending` result is normal: the proposals stay live, call it again. In an `argent lens` session that tool is hidden: end your turn instead, and the user's choice arrives as a message.
Implement the chosen variant for every selected element, treat every annotation and the global comment as a change request, and report what you applied and what was skipped. If the human commented but skipped a variant, the comment still matters; act on it.
An agentic toolkit to control, debug, and profile iOS and Android apps. Made by Software Mansion.
Set up and connect to an Android emulator using argent MCP tools. Use when starting a new session on Android, booting an…
Create, record, edit, replay, or repair reusable Argent e2e test YAML files. Use when the user asks to record, replay, or run an…
Interact with an iOS simulator, Android emulator, or Chromium (CDP) app using argent MCP tools. Use when tapping UI elements,…
Drive a physical iPhone through argent. Use when a physical iPhone is involved (a list-devices iOS entry with kind "device") and…
Set up a cabled physical iPhone for argent. Use when a physical iPhone is involved (a list-devices iOS entry with kind "device")…
Set up and connect to an iOS simulator using argent MCP tools. Use when starting a new session, booting an iOS simulator, getting…
Decompile Android APK, XAPK, JAR, and AAR files using jadx or Fernflower/Vineflower. Reverse engineer Android apps, extract HTTP…