npx claudepluginhub aboul3ata/lazyweb-skill --plugin lazywebThis skill is limited to using the following tools:
Find real app screenshots fast, download them locally, and group by pattern.
Conducts deep design research using Lazyweb screenshot database and web search, producing structured reports with downloaded app screenshots for competitive analysis and best practices.
Researches competitors and visual trends in a niche, captures screenshots, generates moodboards, and delivers strategic UI/UX dossiers for redesigns or new features.
Designs mobile app UIs via Sleek.design API: creates projects, generates screens from natural language, lists projects, captures screenshots. For prototyping mobile apps.
Share bugs, ideas, or general feedback.
Find real app screenshots fast, download them locally, and group by pattern. Lighter than design-research — no competitive analysis, no anti-patterns. Just find → group → show.
This skill produces FILES, not a plan. Regardless of whether you are in plan mode or not, ALWAYS:
.lazyweb/quick-references/{topic}-{date}/report.md.lazyweb/quick-references/{topic}-{date}/report.html.lazyweb/quick-references/{topic}-{date}/references//lazyweb-design-research for deeper analysis, or start building."/lazyweb-design-research/lazyweb-design-improve/lazyweb-design-brainstormUse the hosted Lazyweb MCP tools at https://www.lazyweb.com/mcp for all Lazyweb database access.
Required MCP tools:
lazyweb_search — text search over mobile and desktop screenshotslazyweb_find_similar — more results like a known Lazyweb screenshot IDlazyweb_compare_image — visual search from image_base64 + mime_type or image_urllazyweb_health — connectivity checkThese are stable public compatibility aliases. The server may also expose canonical
tools such as search_screenshots, list_filters, vision_screenshots, and
metadata_screenshots; prefer the lazyweb_* names in this skill.
Before searching, verify MCP is available by listing tools and running
lazyweb_health.
If Lazyweb MCP is not installed or auth fails: Tell the user: "Lazyweb MCP is not installed. Enable the global Lazyweb plugin or get the free setup instructions at https://www.lazyweb.com/mcp-install, paste them into this agent, then rerun this skill. Lazyweb is free; the bearer token is only for no-billing UI reference tools and is okay in ignored local config." Then proceed with web research only.
LB=""
# Check lazyweb-skill browse first
for _P in "$(pwd)/.claude/skills/lazyweb-skill/browse/dist/browse" ~/.claude/skills/lazyweb-skill/browse/dist/browse; do
[ -x "$_P" ] && LB="$_P" && break
done
# Fall back to gstack browse
if [ -z "$LB" ]; then
_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
[ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && LB="$_ROOT/.claude/skills/gstack/browse/dist/browse"
[ -z "$LB" ] && [ -x ~/.claude/skills/gstack/browse/dist/browse ] && LB=~/.claude/skills/gstack/browse/dist/browse
fi
[ -x "$LB" ] && echo "BROWSE_READY: $LB" || echo "NO_BROWSE"
If NO_BROWSE: Web screenshot capture is unavailable. Lazyweb results still work —
just describe web examples in text without screenshots. To enable web captures,
run: cd ~/.claude/skills/lazyweb-skill/browse && ./setup
If the user is looking for references for a specific page or app they're building (not a general topic), capture the current state:
Save as $REPORT_DIR/references/current-state.png and include it in the report
after the TL;DR as:
## Current State

*{Brief description of what we're looking at}*
This grounds the collection — the reader sees what they have before seeing the references.
Call lazyweb_search 2-4 times with different angles:
{"query":"<query>","limit":30}
{"query":"<alternative framing>","limit":30}
{"query":"<more specific variant>","platform":"desktop","limit":30}
Query tips:
--category for domain filtering: "Health & Fitness", "Finance", "Productivity"--company to find specific apps: --company "stripe"--fields high_design_bar to filter for qualityPlatform routing: Lazyweb has both mobile app screenshots and desktop/web site screenshots.
--platform mobile — mobile app screenshots only--platform desktop — desktop/web site screenshots only--platform all (default) — search both, results grouped desktop-first then mobile--platform desktop--platform mobileEach result includes a platform field ("mobile" or "desktop") so you know the source.
Desktop results also include a pageUrl field with the original site URL.
Assess quality: matchCount 2/3+ = strong. 1/3 = weak. similarity > 0.4 = good.
Explore generously. Don't stop at one search. Try 2-4 different phrasings to cast a wide net. More raw material = better grouping.
HIGH BAR FOR REFERENCES: Each Lazyweb result includes a visionDescription field —
a text description of what's actually in the screenshot. Read it.
Rules for attaching references:
visionDescription before using ANY screenshotvisionDescription doesn't match — DO NOT USE ITvisionDescription for captionsMismatched references destroy user trust faster than anything else.
Check if ~/.lazyweb/libraries.json exists and has connected libraries:
cat ~/.lazyweb/libraries.json 2>/dev/null
If libraries are configured, search each one using the browse tool. For each library:
$LB goto "{searchUrl}"$LB snapshot -i$LB fill @eN "{query}"$LB press Enter then $LB snapshot -i$LB screenshot "$REPORT_DIR/references/{library}-{company}-{screen}.png"Keep it fast: This is the quick-references skill. Don't deep-dive into every result. Grab the best 3-5 screenshots per library and move on.
If the library session has expired (login wall, redirect to sign-in):
/lazyweb-add-inspo-source to reconnect."Label all library-sourced references: [Mobbin], [Savee], etc.
Always supplement Lazyweb with live web captures for the most current examples.
Step A — Find URLs via WebSearch:
Step B — Capture live screenshots:
if [ -x "$LB" ]; then
$LB goto "https://example.com/page"
$LB screenshot "$REPORT_DIR/references/example-page.png"
fi
If the browse tool is not available, describe web examples in the report without images.
Platform balance: Aim for at least 50% same-platform references.
REPORT_DIR="$(pwd)/.lazyweb/quick-references/{topic-slug}-{YYYY-MM-DD}"
mkdir -p "$REPORT_DIR/references"
Download Lazyweb results, cap at 30 images:
curl -sL "{imageUrl}" -o "$REPORT_DIR/references/{company}-{screen}.png"
For web-captured examples:
if [ -x "$LB" ]; then
$LB goto "https://example.com"
$LB screenshot "$REPORT_DIR/references/{company}-{screen}.png"
fi
Write to .lazyweb/quick-references/{topic-slug}-{YYYY-MM-DD}/report.md
Reverse pyramid: Lead with the patterns (the answer), then show the evidence.
# Quick References: {Topic}
## TL;DR
{1 sentence — what the collection shows and the dominant pattern}
## Current State
{Include ONLY if a current state screenshot was captured in step 1. Otherwise omit this section.}

*{Brief description of what we're looking at}*
## Patterns
{What the best examples have in common — the key takeaway.
Put this FIRST so the user gets the answer immediately.}
## References
### Pattern A: {Name}

*{Company} — {What this screen shows, 1 line} [{Lazyweb|Web}]*

*{Company2} — {What this screen shows} [{Lazyweb|Web}]*
{What these have in common — 1-2 sentences}
### Pattern B: {Name}
...
Group screenshots by visual or functional pattern. Don't just list them — show what connects them.
Label each reference [Lazyweb] or [Web] for provenance.
ASCII mockups: When describing patterns or suggesting how references apply to the user's project, include rough ASCII wireframe sketches. Keep them simple — box-drawing characters, just enough to communicate the layout idea. Example:
┌─────────────────────────────┐
│ Logo [Sign In] │
├─────────────────────────────┤
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ img │ │ img │ │ img │ │
│ └──┬──┘ └──┬──┘ └──┬──┘ │
│ Plan A Plan B Plan C │
│ │
│ [Get Started →] │
└─────────────────────────────┘
These sketches help the user visualize how a pattern could apply to their work without needing to open a design tool. They don't need to be pixel-perfect — just communicative.
After writing report.md, generate a report.html alongside it for visual preview.
The HTML report should:
references/filename.png)open "$REPORT_DIR/report.html"Tell the user where the report was saved.
lazyweb_find_similar with {"screenshot_id":12345,"limit":10}lazyweb_search with {"query":"<query>","company":"<name>","limit":30}