| name | lazyweb-quick-references |
| description | Find app screenshots and UI references quickly. Downloads results locally and
groups them by pattern. Use when the user wants to see examples of a specific
screen, UI element, or flow without a full research report.
Trigger on: "show me examples of", "how do other apps do", "design inspiration for",
"UI reference for", "what does X's app look like", "find screenshots of",
"show me how", "references for".
|
| allowed-tools | ["Bash","Read","Write","Glob","Grep","WebSearch","AskUserQuestion","Agent"] |
Lazyweb Quick References
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.
CRITICAL: Output Behavior
This skill produces FILES, not a plan. Regardless of whether you are in plan mode
or not, ALWAYS:
- Write the HTML report to
.lazyweb/quick-references/{topic}-{date}/report.html
- Download references to
.lazyweb/quick-references/{topic}-{date}/references/
- Do NOT create
report.md or any other Markdown report artifact
- Do NOT write research content into a plan file
- After saving, show the user a summary and tell them where the files are
- Ask the user if the references look good
- If in plan mode, exit plan mode after the user confirms
- Suggest next steps: "You can now use these references to inform your design,
run
/lazyweb-design-research for deeper analysis, or start building."
When to Use This
- User wants to see a specific type of screen ("show me pricing pages")
- User wants visual references for what they're building
- User asks "what does X look like" or "how do other apps do Y"
When NOT to Use This
- User wants deep analysis, competitive research, or best practices ā use
/lazyweb-design-research
- User has an existing design and wants feedback ā use
/lazyweb-design-improve
- User wants creative/unconventional ideas ā use
/lazyweb-design-brainstorm
Lazyweb MCP Setup
Use 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 screenshots
lazyweb_find_similar ā more results like a known Lazyweb screenshot ID
lazyweb_compare_image ā visual search from image_base64 + mime_type or image_url
lazyweb_health ā connectivity check
These 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.
Browse Setup (run BEFORE any web capture)
LB=""
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
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
Workflow
1. Capture Current State (if applicable)
If the user is looking for references for a specific page or app they're building
(not a general topic), capture the current state:
- Running dev server or URL available: Use preview/browse tools to screenshot it
- Mobile app: Ask user to provide a screenshot
- No specific page: Skip this step
Save as $REPORT_DIR/references/current-state.png and include it in the HTML report
after the TL;DR using this structure:
<section>
<h2>Current State</h2>
<figure>
<img src="references/current-state.png" alt="Current State">
<figcaption>{Brief description of what we're looking at}</figcaption>
</figure>
</section>
This grounds the collection ā the reader sees what they have before seeing the references.
2. Search Lazyweb
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:
- Think in concrete UI elements: "pricing page with toggle", "dark mode settings", "onboarding with progress bar"
- Use
--category for domain filtering: "Health & Fitness", "Finance", "Productivity"
- Use
--company to find specific apps: --company "stripe"
- Use
--fields high_design_bar to filter for quality
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
- A mac app, SaaS dashboard, or web product ā use
--platform desktop
- An iPhone/Android app ā use
--platform mobile
- General research or cross-platform ā omit (searches both)
Each 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:
- Read
visionDescription before using ANY screenshot
- The screenshot MUST directly illustrate the pattern you're grouping it under
- If
visionDescription doesn't match ā DO NOT USE IT
- Better to have fewer, perfectly-matched references than many loose ones
- Never guess what's in a screenshot ā use
visionDescription for captions
- If there's no visionDescription, skip the screenshot
Mismatched references destroy user trust faster than anything else.
3. Search Connected Inspiration Libraries
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:
- Navigate to the library's search URL:
$LB goto "{searchUrl}"
- Take a snapshot to understand the page:
$LB snapshot -i
- Search for the topic:
$LB fill @eN "{query}"
- Submit and wait for results:
$LB press Enter then $LB snapshot -i
- Browse through results ā screenshot the most relevant ones
- Save to:
$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):
- Tell the user: "Your {library} session has expired. Run
/lazyweb-add-inspo-source to reconnect."
- Skip this library and continue with other sources.
Label all library-sourced references: [Mobbin], [Savee], etc.
4. Web Research + Live Screenshot Capture
Always supplement Lazyweb with live web captures for the most current examples.
Step A ā Find URLs via WebSearch:
- Search for "[screen type] design examples [current year]"
- Search for "[competitor] [screen type]"
Collect 2-5 interesting URLs.
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.
5. Download 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
6. Write HTML Reference Report
Write directly to .lazyweb/quick-references/{topic-slug}-{YYYY-MM-DD}/report.html.
Do not create a Markdown version.
Reverse pyramid: Lead with the patterns (the answer), then show the evidence.
Use this content outline, rendered as semantic HTML:
# 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.
7. HTML Requirements
The report.html file should:
- Be a self-contained single HTML file with inline CSS (no external dependencies)
- Use clean, readable styling: system fonts, max-width 900px, comfortable line-height
- Reference images using RELATIVE paths (
references/filename.png)
- Style images with rounded corners, subtle shadow, max-width that fits the layout
- Use a light blue callout box for the TL;DR section
- Open the HTML file in the user's browser:
open "$REPORT_DIR/report.html"
Tell the user where the report was saved.
8. Follow-up Strategies
- "More like this" ā call
lazyweb_find_similar with {"screenshot_id":12345,"limit":10}
- "Same company" ā call
lazyweb_search with {"query":"<query>","company":"<name>","limit":30}
- "Different style" ā Rephrase query emphasizing the desired difference
- "What about competitors?" ā Search for the same screen across different companies