npx claudepluginhub aboul3ata/lazyweb-skill --plugin lazywebThis skill is limited to using the following tools:
**This skill produces FILES, not a plan.** Regardless of whether you are in plan mode
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.
Produces distinctive production-grade UI for components, pages, or visual interfaces. Handles screenshot-driven iteration for visual complaints.
Share bugs, ideas, or general feedback.
This skill produces FILES, not a plan. Regardless of whether you are in plan mode or not, ALWAYS:
.lazyweb/design-improve/{screen}-{date}/report.md.lazyweb/design-improve/{screen}-{date}/report.html.lazyweb/design-improve/{screen}-{date}/references//lazyweb-design-brainstorm for more creative ideas, or start building."Capture the current state of a design, find similar screens from the best apps, and generate 1-5 concrete improvement ideas — each tied to a real reference.
/lazyweb-design-research/lazyweb-quick-references/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 — the skill still works, just without Lazyweb's database.
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
Get a screenshot of what the user currently has. Try these approaches in order:
For web apps (if a dev server is running or URL is available):
For mobile apps:
For mockups/designs:
Save the screenshot as current.png in the output directory.
If no screenshot can be captured, ask the user to provide one. Don't proceed without a visual of the current state.
Use image comparison to find visually similar screens. Read the local screenshot
bytes, base64 encode them, detect the MIME type, then call lazyweb_compare_image:
{"image_base64":"<base64 file bytes>","mime_type":"image/png","limit":30}
Also do text searches for the screen type with multiple angles:
{"query":"<description of the screen>","limit":30}
{"query":"<alternative description>","platform":"desktop","limit":30}
{"query":"<specific component>","limit":30}
If you know the category, include "category":"<category>".
Platform 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.
Explore generously. Run 3-5 searches to find the best references. More raw material means better improvement ideas.
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 your improvement idea — 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"Quality bar: Only use screenshots that directly illustrate an improvement idea. A reference from Mobbin that doesn't clearly show a better approach than the current design is useless — skip it.
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 with live competitor screenshots and recent examples.
Step A — Find competitor URLs via WebSearch:
Step B — Capture live screenshots:
if [ -x "$LB" ]; then
$LB goto "https://competitor.com/page"
$LB screenshot "$REPORT_DIR/references/competitor-page.png"
fi
If no browse tool is available, describe web examples in the report without images.
Platform balance: Aim for at least 50% same-platform references.
REPORT_DIR="$(pwd)/.lazyweb/design-improve/{screen-slug}-{YYYY-MM-DD}"
mkdir -p "$REPORT_DIR/references"
Copy the current screenshot:
cp <current-screenshot> "$REPORT_DIR/references/current.png"
Download Lazyweb results (cap 30):
curl -sL "{imageUrl}" -o "$REPORT_DIR/references/{company}-{screen}.png"
For web screenshots:
if [ -x "$LB" ]; then
$LB goto "https://example.com"
$LB screenshot "$REPORT_DIR/references/{company}-{screen}.png"
fi
Look at the current design alongside the references. Consider:
Key principle: References are inspiration, not templates. Don't suggest copying a reference exactly. Identify the PATTERN or IDEA from the reference and explain how it could be adapted to the user's specific context.
Be careful with references from very different contexts. A gaming app's onboarding won't necessarily work for a finance app. Flag context differences.
Generate 1-5 concrete improvement ideas. Each must be:
Write to .lazyweb/design-improve/{screen-slug}-{YYYY-MM-DD}/report.md
Reverse pyramid: Lead with what to do, then show the evidence.
# Design Improvement: {Screen/Feature}
## TL;DR
{The single biggest opportunity — 1-2 sentences}
## Current State

*{Brief description of what we're looking at}*
## Improvement Ideas
### 1. {Idea Title} ⭐ (highest impact)
{Clear description of what to change and why}
**Inspired by:**

*{Company} — {What they do that inspired this idea} [{Lazyweb|Web}]*
**Why this works:** {What makes this pattern effective in the reference,
and why it would work for the user's product}
**Sketch:**
{ASCII wireframe showing what the improvement would look like}
### 2. {Idea Title}
...
### 3. {Idea Title}
...
## What's Working
{Be specific about what's good. Developers need to know what NOT to change.
List 2-4 concrete things that are done well.}
## All References
{Gallery of all reference screenshots used, with company, source, and context}
Label each reference [Lazyweb] or [Web] for provenance.
ASCII mockups: For each improvement idea, include a rough ASCII wireframe sketch showing what the change would look like. 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 the improvement 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.