npx skills add smithery/zhanghandong --skill makepad-screenshot
zhanghandong/makepad-component · Archived
makepad-screenshot
Triggers on: /screenshot, 截图, 看看UI, 查看界面, capture makepad, run and capture, 运行并截图, 看看效果, UI截图, 界面截图, screenshot makepad, capture app, 截取应用, bring to front
Installation
npx skills add zhanghandong/makepad-component --skill makepad-screenshot
Stronger alternatives
This repository is archived — consider an actively maintained alternative.
Use when implementing shader effects like turbulence, fluid, fire, smoke, procedural noise, sta…
1 installsMakepad UI development skills for Rust apps: setup, patterns, shaders, packaging, and troublesh…
104 installssplash language, makepad script, script_mod!, makepad scripting, splash 脚本, makepad 2.0 scrip…
48 installsmakepad animation, makepad animator, Animator, AnimatorState, hover effect, makepad transition,…
47 installsSimilar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Use when the user explicitly asks for a desktop or system screenshot (full screen, specific app…
5.2K installsUpdate the committed blocks-ci screenshot hashes after the "Screenshots & Tests" check fails, o…
2.6K installsCompare saved or live app screenshots with the argent screenshot-diff tool. Use when testing vi…
14.5K installsUse when building App Store or Google Play screenshot pages, generating exportable marketing sc…
12.5K installsResize and validate App Store screenshots with current asc screenshot-size data and macOS sips.…
4.5K installsTake focused, region-specific screenshots from web pages using a dedicated headed Chrome profil…
3.6K installsAlso in this package
Other skills from zhanghandong/makepad-component.
npx skills add zhanghandong/makepad-component
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Skill metadata
Parsed from SKILL.md frontmatter.
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md8,553 B -
docs
SUMMARY.md308 B
History
- First seen on skills.sh
- First recorded snapshot · 3 installs
SKILL.md
Makepad Screenshot Skill
Automated screenshot debugging for Makepad GUI applications
Trigger Words
/screenshot- Capture current running Makepad app/screenshot <app-name>- Capture specific app/run-and-capture <package>- Build, run and capture- "截图", "看看UI", "查看界面", "capture makepad"
Features
Automates visual debugging workflow for Makepad apps:
- Bring app window to front
- Capture screenshot
- Analyze screenshot with Read tool
- Report UI issues or confirm correct rendering
Usage
1. Capture Current Running App
/screenshot
Auto-detects and captures windows containing "makepad" or current project name.
2. Capture Specific App
/screenshot a2ui-demo
Captures app with window name containing "a2ui".
3. Build, Run and Capture
/run-and-capture a2ui-demo
Full workflow: cargo build → cargo run → wait for startup → capture.
Implementation Steps
Step 1: Detect Running App
# Find Makepad-related processes
ps aux | grep -E "(makepad|cargo.*run)" | grep -v grep
Step 2: Bring Window to Front (macOS)
# Generic pattern - match by process name
osascript -e 'tell application "System Events" to set frontmost of (first process whose name contains "APP_NAME") to true'
# Example
osascript -e 'tell application "System Events" to set frontmost of (first process whose name contains "a2ui") to true'
Step 3: Capture to Scratchpad
# Silent capture (-x suppresses shutter sound)
screencapture -x $SCRATCHPAD/screenshot.png
Step 4: View with Read Tool
Read $SCRATCHPAD/screenshot.png
Claude's Read tool supports image files and can directly analyze screenshot content.
Complete Automation Script
Capture Current App
APP_NAME="${1:-makepad}"
SCRATCHPAD="${SCRATCHPAD_DIR:-/tmp}"
SCREENSHOT="$SCRATCHPAD/makepad_screenshot_$(date +%H%M%S).png"
# Bring to front
osascript -e "tell application \"System Events\" to set frontmost of (first process whose name contains \"$APP_NAME\") to true" 2>/dev/null
sleep 0.5
# Capture
screencapture -x "$SCREENSHOT"
echo "$SCREENSHOT"
Build, Run and Capture
PACKAGE="$1"
SCRATCHPAD="${SCRATCHPAD_DIR:-/tmp}"
SCREENSHOT="$SCRATCHPAD/${PACKAGE}_$(date +%H%M%S).png"
# Kill old process
pkill -f "$PACKAGE" 2>/dev/null
# Build and run
cargo build -p "$PACKAGE" && \
(cargo run -p "$PACKAGE" 2>&1 &) && \
sleep 5 && \
osascript -e "tell application \"System Events\" to set frontmost of (first process whose name contains \"$PACKAGE\") to true" && \
sleep 1 && \
screencapture -x "$SCREENSHOT"
echo "$SCREENSHOT"
Claude Execution Flow
When user says "截图" or "/screenshot":
- Detect App
``bash ps aux | grep -E "cargo.*run|makepad" | grep -v grep | head -1 ``
- Determine App Name
- Extract from process list - Or use current project's package name
- Execute Screenshot
``bash osascript -e 'tell application "System Events" to set frontmost of (first process whose name contains "APP") to true' sleep 0.5 screencapture -x /path/to/scratchpad/screenshot.png ``
- Read and Analyze
`` Read /path/to/scratchpad/screenshot.png ``
- Report Results
- Describe visible UI elements - Point out any issues (layout, colors, missing components) - Confirm functionality
Notes
- macOS Only - Uses
screencaptureandosascript - Permission Required - osascript needs accessibility permission
- Window Occlusion - Must bring to front first
- Startup Time - Need to sleep after cargo run to wait for window
- Scratchpad - Use session-specific scratchpad directory for screenshots
Example Interactions
Example 1: Quick Screenshot
User: 截图看看现在的 UI
Claude:
1. Detected running a2ui-demo
2. Execute screenshot command
3. Read screenshot file
4. Analysis: "UI displays normally, TextField shows input '你好', product list rendered 3 cards..."
Example 2: Build Run and Capture
User: /run-and-capture a2ui-demo
Claude:
1. pkill old process
2. cargo build -p a2ui-demo
3. cargo run -p a2ui-demo &
4. sleep 5 wait for startup
5. Capture and analyze
Example 3: Verify Two-way Binding
User: I entered "Hello😊" in TextField, help me verify two-way binding with screenshot
Claude:
1. Execute screenshot, save to scratchpad
2. Read screenshot, analyze UI
3. Output verification report:
┌────────────────────────────────────────┐
│ A2UI Demo - Product Catalog │
├────────────────────────────────────────┤
│ [Search Products] │
│ ┌──────────────────────────────────┐ │
│ │ Hello😊 │ │ ← TextField shows input
│ └──────────────────────────────────┘ │
│ Hello😊 │ ← Text (caption) synced
│ │
│ Products (Template Rendering) │
│ ┌──────────────────────────────────┐ │
│ │ Premium Headphones | $99.99 | + │ │
│ └──────────────────────────────────┘ │
└────────────────────────────────────────┘
✅ Two-way binding verification successful:
| Component | Binding Path | Display Content |
|-----------|--------------|-----------------|
| TextField | /search/query | Hello😊 |
| Text (caption) | /search/query | Hello😊 |
UI Analysis Report Format
After screenshot, Claude should provide structured analysis:
Basic Report
## Screenshot Analysis
**Application**: a2ui-demo
**Time**: 2026-02-01 14:30:00
**Window State**: Normal display
### UI Elements
| Element | Type | Content/State |
|---------|------|---------------|
| Title | Label | "A2UI Demo - Product Catalog" |
| Search Box | TextField | Empty/Has input |
| Product List | PortalList | 3 cards |
### Issue Detection
- ✅ Layout normal
- ✅ Text rendering normal
- ⚠️ Image not loaded (network image)
Function Verification Report
## Function Verification: TextField Two-way Binding
**Test Scenario**: User enters content in TextField, verify data model sync
### Verification Result
| Component | Binding Path | Expected | Actual | Status |
|-----------|--------------|----------|--------|--------|
| TextField | /search/query | Hello😊 | Hello😊 | ✅ |
| Text (caption) | /search/query | Hello😊 | Hello😊 | ✅ |
### Conclusion
✅ **Two-way binding works correctly**
- Unicode Chinese characters: ✅
- Emoji characters: ✅
- Real-time sync: ✅
Common Issue Troubleshooting
Window Cannot Be Brought to Front
# Check if process is running
ps aux | grep -E "a2ui|makepad" | grep -v grep
# Try using process ID
osascript -e 'tell application "System Events" to set frontmost of (first process whose unix id is PID) to true'
Screenshot is Black Screen
Possible causes:
- Window occluded by other windows - bring to front first
- App still starting - increase sleep time
- GPU rendering delay - wait 1-2 seconds before capture
App Name Matching Issues
Makepad compiled app names are usually package names (underscores to hyphens):
a2ui-demo→ process name containsa2uiora2ui-demomyapp→ process name containsmyappormy-app
Related Skills
makepad-basics- Makepad fundamentalsmakepad-widgets- Widget usagememory-skills- Memory system
Context: For automated visual debugging of Makepad GUI applications Tags: makepad, screenshot, debugging, gui, automation, macos