From lazyweb
Connects external design inspiration sources (Mobbin, Savee, Dribbble, Behance) to Lazyweb design skills via headless browser authentication, session persistence, and registration for automatic research inclusion.
npx claudepluginhub aboul3ata/lazyweb-skill --plugin lazywebThis skill is limited to using the following tools:
Connect an external design inspiration library so all Lazyweb design skills
Finds app screenshots and UI references via Lazyweb, downloads locally, and groups by pattern. Use for quick examples of screens, UI elements, or flows without deep analysis.
Analyzes designs from Dribbble/Behance/Mobbin, implements UI aesthetics with visual hierarchy, color theory, typography, micro-interactions, animations, design systems, and accessibility. For beautiful production UIs.
Designs award-winning web UIs with intentional mood, palette, typography, layout, and purposeful motion to escape generic AI aesthetics. Invoke for creative or designer-quality requests.
Share bugs, ideas, or general feedback.
Connect an external design inspiration library so all Lazyweb design skills
(/lazyweb-design-research, /lazyweb-design-improve, /lazyweb-design-brainstorm,
/lazyweb-quick-references) search it alongside Lazyweb's database.
No adapters or scrapers needed — Claude uses the browse tool to navigate the library UI at search time, the same way it browses any website.
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: This skill requires the browse tool. Tell the user:
"Browse tool not found. Install it with: cd ~/.claude/skills/lazyweb-skill/browse && ./setup"
Then stop.
If the user didn't specify, ask which library to connect. Common options:
If the user wants a library not listed here, ask for:
cat ~/.lazyweb/libraries.json 2>/dev/null || echo '{"libraries":[]}'
If the library is already in the list, tell the user it's already connected and ask if they want to re-authenticate (useful if session expired).
Navigate to the library and hand off to the user for login:
# Open the library's login page
$LB goto "{url}"
# Hand off to visible Chrome so user can log in
$LB handoff "Log in to {name}. Close this window or press Enter when done."
The handoff opens a visible Chrome window where the user can:
After the user completes login:
# Resume headless control with cookies preserved
$LB resume
Navigate to the search page and confirm we're logged in:
$LB goto "{searchUrl}"
$LB snapshot -i
Check the snapshot for signs of being logged in (user avatar, account menu, no login prompts). If it looks like we're not authenticated, tell the user and offer to retry.
Do a quick test search to confirm everything works:
$LB snapshot -i
# Find the search input and type a test query
$LB fill @eN "pricing page"
$LB press Enter
# Wait briefly for results
$LB snapshot -i
If results load successfully, the connection works.
mkdir -p ~/.lazyweb
Read existing config, add the new library, write back:
{
"libraries": [
{
"name": "Mobbin",
"url": "https://mobbin.com",
"searchUrl": "https://mobbin.com/browse/ios/apps",
"addedAt": "2026-03-26"
}
]
}
Write to ~/.lazyweb/libraries.json.
Tell the user:
/lazyweb-add-inspo-source again to reconnect."/lazyweb-remove-inspo-source."