From qt-suite
Launch the Qt/PySide6 application headlessly and run visual GUI tests using the bundled Qt Pilot MCP server. Claude interacts with the live UI via screenshots, clicks, and text input.
How this command is triggered — by the user, by Claude, or both
Slash command
/qt-suite:visual [optional: test scenario description or app entry point]This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# /qt-suite:visual — Headless GUI Testing Launch the application headlessly and run visual tests using the Qt Pilot MCP server. Claude interacts with the live UI, verifies behavior, and writes a test report. ## Step 1: Prerequisites Check Run the prerequisites check before attempting to launch: If Xvfb is missing, stop and report the install instructions — do not proceed. ## Step 2: Find App Entry Point Determine the application entry point: 1. If an argument was provided that looks like a file path (e.g., `/qt-suite:visual src/main.py`), use it. 2. Read `.qt-test.json` — use `app_e...
Launch the application headlessly and run visual tests using the Qt Pilot MCP server. Claude interacts with the live UI, verifies behavior, and writes a test report.
Run the prerequisites check before attempting to launch:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/check-prerequisites.sh"
If Xvfb is missing, stop and report the install instructions — do not proceed.
Determine the application entry point:
/qt-suite:visual src/main.py), use it..qt-test.json — use app_entry field if set.main.py, app.py, __main__.py in project root and src/QApplication (Grep for QApplication)Call the Qt Pilot get_app_status MCP tool. If running: true, attach to the existing session. If not running (or crashed), launch fresh.
Call launch_app with the resolved entry point:
launch_app(script_path="/abs/path/to/main.py")
Or for module-based apps:
launch_app(module="myapp.main", working_dir="/abs/path/to/project")
Wait for success: true. If launch fails, call get_app_status to retrieve stderr output and report the error with the full stderr content — do not attempt workarounds.
Before testing, always discover available widgets:
find_widgets("*") → lists all named widgets
list_actions() → lists all menu/toolbar actions
If the argument provided describes a specific UI scenario (e.g., "test the file open dialog"), use list_all_widgets to discover the full hierarchy including unnamed elements.
If a scenario was provided in the argument, execute it. For example, if the user says /qt-suite:visual test the save workflow:
action_save actionIf no scenario was specified, run a general smoke test:
get_app_status)After every click or input action that may trigger async behavior, call wait_for_idle before the next action.
Capture screenshots at key moments:
capture_screenshot(output_path="tests/reports/visual_<timestamp>_initial.png")
capture_screenshot(output_path="tests/reports/visual_<timestamp>_final.png")
Use ISO timestamp format: 2026-02-22_14-35.
close_app()
Write a markdown report to tests/reports/gui-<timestamp>.md (create the tests/reports/ directory if needed):
# GUI Test Report — <date> <time>
**App:** <entry_point>
**Scenario:** <description or "smoke test">
**Result:** PASS / FAIL (N/M interactions succeeded)
## Test Steps
| Step | Action | Expected | Result | Notes |
|------|--------|----------|--------|-------|
| 1 | launch_app | Window appears | ✅ PASS | |
| 2 | click calculate_btn | Display updates | ✅ PASS | |
| 3 | type "abc" in input | Validation error | ✅ PASS | |
## Failures
(list any FAIL steps with full error messages from Qt Pilot)
## Screenshots
- Initial state: `visual_<timestamp>_initial.png`
- Final state: `visual_<timestamp>_final.png`
## Recommendations
(optional: widget object names missing, behaviors to fix, edge cases to add)
Report the path to the markdown file when done.
npx claudepluginhub l3digitalnet/claude-code-plugins --plugin qt-suite/guiDebugs and validates GUI systems including web dashboards, CLI interfaces, and visual components with automated diagnostics, testing, performance analysis, accessibility checks, and fixes. Supports scan modes via flags.
/testuifExecutes intelligent regression testing between Flask and React V2 frontends using Playwright MCP, generating matrix reports, screenshots, and PR documentation.
/handsonStarts HandsOn screen automation session: captures screenshot, detects UI framework on foreground window, confirms user goals and preferences, then automates app interactions.
/test-web-uiRuns automated web UI testing: visual snapshots, functional flows, accessibility audits (WCAG), and performance analysis (Lighthouse/Core Web Vitals) on app URL/path.
/ios-testBu komut iOS/SwiftUI uygulamasini derleyip simulator'da acarak computer use ile gorsel test yapar.
/qaCreates test plans and executes comprehensive QA testing including auth flows, edge cases, regressions, and bug reports.