Trace a request through a codebase
Follow one request from entry point to storage or external boundary with concrete file references.
Generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud. Framework-agnostic — works with Playwright, Selenium, Cypress, Puppeteer. Use when user mentions "SmartUI", "visual regression", "screenshot comparison", "visual testing".
---
name: smartui-skill
description: "Generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud. Framework-agnostic — works with Playwright, Selenium, Cypress, Puppeteer. Use when user mentions \"SmartUI\", \"visual regression\", \"screenshot comparison\", \"visual testing\"."
risk: critical
source: https://github.com/LambdaTest/agent-skills/tree/main/smartui-skill
source_repo: LambdaTest/agent-skills
source_type: community
date_added: 2026-07-01
license: MIT
license_source: https://github.com/LambdaTest/agent-skills/blob/main/LICENSE
---
# SmartUI Visual Regression Skill
## When to Use
Use this skill when you need generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud. Framework-agnostic — works with Playwright, Selenium, Cypress, Puppeteer. Use when user mentions "SmartUI", "visual regression", "screenshot comparison", "visual testing". Triggers on:...
## Core Patterns
### Playwright + SmartUI SDK
```javascript
const { chromium } = require('playwright');
const { smartuiSnapshot } = require('@lambdatest/playwright-driver');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await smartuiSnapshot(page, 'Homepage');
await page.goto('https://example.com/login');
await smartuiSnapshot(page, 'Login Page');
await browser.close();
})();
```
### Selenium + SmartUI
```java
// Take SmartUI screenshot
((JavascriptExecutor) driver).executeScript(
"smartui.takeScreenshot=Login Page"
);
```
### CLI Execution
```bash
# Install
npm install @lambdatest/smartui-cli @lambdatest/playwright-driver --save-dev
# Configure
npx smartui config:create smartui.config.json
# Execute
npx smartui exec node test.js --config smartui.config.json
# For a Playwright Test runner, check the installed CLI help for argument
# forwarding and pass the SmartUI config separately from playwright.config.js.
```
The following web viewport entries are widths for full-page captures, not width/height pairs. Keep the SmartUI config path explicit when running the CLI.
### smartui.config.json
```json
{
"web": {
"browsers": ["chrome", "firefox", "safari"],
"viewports": [[1920], [1366], [375]]
},
"waitForPageRender": 5000,
"waitForTimeout": 1000
}
```
### SmartUI with Storybook
```bash
npx smartui storybook http://localhost:6006 --config smartui.config.json
```
### Approval Workflow
1. First run creates baseline screenshots
2. Subsequent runs compare against baseline
3. Differences highlighted in dashboard
4. Approve/reject changes in LambdaTest SmartUI dashboard
5. Approved screenshots become new baseline
### Anti-Patterns
| Bad | Good | Why |
|-----|------|-----|
| No viewport config | Multiple viewports | Responsive issues |
| No wait for render | `waitForPageRender` | Incomplete screenshots |
| Screenshot everything | Key pages/components | Noise reduction |
| No approval process | Review diffs in dashboard | Catch regressions |
### Cloud Authentication
Cloud runs disclose captured page content, screenshots and possibly assets to the provider. Use authorized test data, redact secrets/personal data, confirm cloud usage and cost, and load credentials from a secret store or environment without printing them. Do not approve new baselines automatically: inspect differences first.
Set environment variables:
```bash
export PROJECT_TOKEN="your-smartui-project-token" # From SmartUI dashboard
export LT_USERNAME="your-username" # For Selenium/Playwright cloud
export LT_ACCESS_KEY="your-access-key" # For Selenium/Playwright cloud
```
**CLI approach** (uses `PROJECT_TOKEN`):
```bash
npx smartui exec node test.js --config smartui.config.json
```
**Selenium Cloud approach** (uses `LT_USERNAME`/`LT_ACCESS_KEY`):
```java
// Capabilities include SmartUI options
HashMap<String, Object> ltOptions = new HashMap<>();
ltOptions.put("user", System.getenv("LT_USERNAME"));
ltOptions.put("accessKey", System.getenv("LT_ACCESS_KEY"));
ltOptions.put("build", "SmartUI Build");
ltOptions.put("smartUI.project", "My SmartUI Project");
ChromeOptions options = new ChromeOptions();
options.setCapability("LT:Options", ltOptions);
WebDriver driver = new RemoteWebDriver(
new URL("https://hub.lambdatest.com/wd/hub"), options);
```
## Quick Reference
| Task | Command |
|------|---------|
| Install | `npm install @lambdatest/smartui-cli` |
| Init config | `npx smartui config:create smartui.config.json` |
| Run | `npx smartui exec -- <test command>` |
| Storybook | `npx smartui storybook <url>` |
| Dashboard | `https://smartui.lambdatest.com` |
## Deep Patterns
For advanced patterns, debugging guides, CI/CD integration, and best practices,
see the [upstream skill tree](https://github.com/LambdaTest/agent-skills/tree/main/smartui-skill); `reference/playbook.md` is not bundled here. The [official Playwright SDK guide](https://www.testmuai.com/support/docs/smartui-playwright-sdk/) documents the driver package separately from the CLI. Generate configuration with the installed CLI and validate its schema rather than assuming this illustrative config works across versions.
## Limitations
- Use this skill only when the task clearly matches its upstream source and local project context.
- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
---
name: smartui-skill
description: "Generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud. Framework-agnostic — works with Playwright, Selenium, Cypress, Puppeteer. Use when user mentions \"SmartUI\", \"visual regression\", \"screenshot comparison\", \"visual testing\"."
risk: critical
source: https://github.com/LambdaTest/agent-skills/tree/main/smartui-skill
source_repo: LambdaTest/agent-skills
source_type: community
date_added: 2026-07-01
license: MIT
license_source: https://github.com/LambdaTest/agent-skills/blob/main/LICENSE
---
# SmartUI Visual Regression Skill
## When to Use
Use this skill when you need generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud. Framework-agnostic — works with Playwright, Selenium, Cypress, Puppeteer. Use when user mentions "SmartUI", "visual regression", "screenshot comparison", "visual testing". Triggers on:...
## Core Patterns
### Playwright + SmartUI SDK
```javascript
const { chromium } = require('playwright');
const { smartuiSnapshot } = require('@lambdatest/playwright-driver');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await smartuiSnapshot(page, 'Homepage');
await page.goto('https://example.com/login');
await smartuiSnapshot(page, 'Login Page');
await browser.close();
})();
```
### Selenium + SmartUI
```java
// Take SmartUI screenshot
((JavascriptExecutor) driver).executeScript(
"smartui.takeScreenshot=Login Page"
);
```
### CLI Execution
```bash
# Install
npm install @lambdatest/smartui-cli @lambdatest/playwright-driver --save-dev
# Configure
npx smartui config:create smartui.config.json
# Execute
npx smartui exec node test.js --config smartui.config.json
# For a Playwright Test runner, check the installed CLI help for argument
# forwarding and pass the SmartUI config separately from playwright.config.js.
```
The following web viewport entries are widths for full-page captures, not width/height pairs. Keep the SmartUI config path explicit when running the CLI.
### smartui.config.json
```json
{
"web": {
"browsers": ["chrome", "firefox", "safari"],
"viewports": [[1920], [1366], [375]]
},
"waitForPageRender": 5000,
"waitForTimeout": 1000
}
```
### SmartUI with Storybook
```bash
npx smartui storybook http://localhost:6006 --config smartui.config.json
```
### Approval Workflow
1. First run creates baseline screenshots
2. Subsequent runs compare against baseline
3. Differences highlighted in dashboard
4. Approve/reject changes in LambdaTest SmartUI dashboard
5. Approved screenshots become new baseline
### Anti-Patterns
| Bad | Good | Why |
|-----|------|-----|
| No viewport config | Multiple viewports | Responsive issues |
| No wait for render | `waitForPageRender` | Incomplete screenshots |
| Screenshot everything | Key pages/components | Noise reduction |
| No approval process | Review diffs in dashboard | Catch regressions |
### Cloud Authentication
Cloud runs disclose captured page content, screenshots and possibly assets to the provider. Use authorized test data, redact secrets/personal data, confirm cloud usage and cost, and load credentials from a secret store or environment without printing them. Do not approve new baselines automatically: inspect differences first.
Set environment variables:
```bash
export PROJECT_TOKEN="your-smartui-project-token" # From SmartUI dashboard
export LT_USERNAME="your-username" # For Selenium/Playwright cloud
export LT_ACCESS_KEY="your-access-key" # For Selenium/Playwright cloud
```
**CLI approach** (uses `PROJECT_TOKEN`):
```bash
npx smartui exec node test.js --config smartui.config.json
```
**Selenium Cloud approach** (uses `LT_USERNAME`/`LT_ACCESS_KEY`):
```java
// Capabilities include SmartUI options
HashMap<String, Object> ltOptions = new HashMap<>();
ltOptions.put("user", System.getenv("LT_USERNAME"));
ltOptions.put("accessKey", System.getenv("LT_ACCESS_KEY"));
ltOptions.put("build", "SmartUI Build");
ltOptions.put("smartUI.project", "My SmartUI Project");
ChromeOptions options = new ChromeOptions();
options.setCapability("LT:Options", ltOptions);
WebDriver driver = new RemoteWebDriver(
new URL("https://hub.lambdatest.com/wd/hub"), options);
```
## Quick Reference
| Task | Command |
|------|---------|
| Install | `npm install @lambdatest/smartui-cli` |
| Init config | `npx smartui config:create smartui.config.json` |
| Run | `npx smartui exec -- <test command>` |
| Storybook | `npx smartui storybook <url>` |
| Dashboard | `https://smartui.lambdatest.com` |
## Deep Patterns
For advanced patterns, debugging guides, CI/CD integration, and best practices,
see the [upstream skill tree](https://github.com/LambdaTest/agent-skills/tree/main/smartui-skill); `reference/playbook.md` is not bundled here. The [official Playwright SDK guide](https://www.testmuai.com/support/docs/smartui-playwright-sdk/) documents the driver package separately from the CLI. Generate configuration with the installed CLI and validate its schema rather than assuming this illustrative config works across versions.
## Limitations
- Use this skill only when the task clearly matches its upstream source and local project context.
- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
Imported SKILL.md format for Claude Code, Codex and Cursor. Review the complete instructions and required tools before use. Package integrity checked; individual agent behavior has not been tested.