Loading...
Loading...
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.
npx skill4agent add software-mansion/argent argent-lensPrerequisite — feature flag. This workflow is gated behind theflag (off by default). Runargent-lensonce before using it. Ifargent enable argent-lens/propose_variantcome back not-found, the flag is off — enable it and retry.await_user_selection
propose_variantawait_user_selectionpreviewImage| Tool | Blocking? | Purpose |
|---|---|---|
| No | Stage ONE variant for ONE element. Call once per variant. Keep working. |
| Yes | Call ONCE after every variant is staged. Parks until the human is done. |
propose_variantelementmatch{ by: "text"|"label"|"identifier"|"role", value }udidvariant{ name, summary, code?, filePath?, previewImage?, frame? }elementelementudidpropose_variantargent-ios-simulator-setupargent-android-emulator-setupargent-react-native-app-workflowawait_user_selectiondescribedebugger-component-treelabelidentifierrolematch{ by: "identifier", value: "search-input" }{ by: "label", value: "Search" }{ by: "text", value: "Search" }matchmatch{ by: "text", value: element }debugger-reload-metroargent-device-interactscreenshotvariant.previewImagecrop.py/tmp/variants/variant.frameshasum -a 256propose_variantelementmatchudidvariant.previewImagepropose_variantvariant.frame{x, y, width, height}describesummarycodefilePathpropose_variantpreviewImagehttp(s)data:await_user_selection{ status: "completed", selections: [{ element, chosenVariant, comment? }], unselected, annotations: [{ target, match, comment }], globalComment }chosenVariantunselectedannotationsglobalComment{ status: "pending", proposedElements }timeoutSecondsawait_user_selection{ status: "no_proposals" }propose_variantpropose_variantpreviewImagepreviewImagepropose_variantawait_user_selectiondescribematchpendingpendingpropose_variantdescribe { udid } # read exact label/identifier
propose_variant { element: "Search field",
match: { by: "identifier", value: "search-input" },
variant: { name: "Outlined", summary: "1pt border, transparent fill",
previewImage: "/var/folders/.../search-outlined.png" } }
propose_variant { element: "Search field",
match: { by: "identifier", value: "search-input" },
variant: { name: "Pill", summary: "Fully rounded, filled grey",
previewImage: "/var/folders/.../search-pill.png" } }
propose_variant { element: "Primary CTA",
match: { by: "label", value: "Get started" },
variant: { name: "Gradient", summary: "Accent gradient fill",
previewImage: "/var/folders/.../cta-gradient.png" } }
await_user_selection {} # ONE blocking call → human picks
→ { status: "completed",
selections: [ { element: "Search field", chosenVariant: { name: "Pill" } },
{ element: "Primary CTA", chosenVariant: { name: "Gradient" } } ],
annotations: [ { target: "Tab bar", comment: "raise contrast" } ] }
# → apply Pill + Gradient, and raise tab-bar contrast.