Skip to content
Back to skills

Capture Inspo

ASecurity

Capture full-page screenshots of real sites by aesthetic or vibe as design inspiration, driving your own Chrome via playwriter over Land-book, Lapa Ninja, Awwwards and Mobbin. Use for \"capture inspo\".

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 2, 2026
ai-agentsgoshellbash

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add magnusrodseth/dotfiles --skill capture-inspo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Capture Inspo?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Capture Inspo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/magnusrodseth-capture-inspo/badge)](https://www.skillsdirectory.com/skills/magnusrodseth-capture-inspo)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: capture-inspo
description: "Capture full-page screenshots of real sites by aesthetic or vibe as design inspiration, driving your own Chrome via playwriter over Land-book, Lapa Ninja, Awwwards and Mobbin. Use for \"capture inspo\"."
---

# Capture Inspo

Turn a vibe ("country wedding", "neo-brutalist", "warm editorial") into a folder of full-page
website screenshots, captured from the user's real Chrome, ready to drag into Claude Design.

Background on why this exists: the user's vault note "Building Beautiful UI with AI - Ras Mic"
describes generating a design system in Claude Design from a full-page screenshot of an
inspiration site. This skill automates the "go find and screenshot good inspiration" step.

## Prerequisites

- **Read the playwriter skill first**: run `playwriter skill` and follow its rules (observe→act,
  `state.page`, single quotes, etc.). This skill assumes you drive the browser through playwriter.
- Chrome must be running with the playwriter extension connected (`playwriter session new`).
- Capture writes via Playwright's `path` (real fs, any dir). In-sandbox `require('fs')` is scoped
  and **cannot** read `/tmp` or arbitrary dirs — verify saved files from the outer shell instead.

## Source map (vibe → gallery)

| Vibe / intent | Galleries (in order) | Notes |
|---|---|---|
| Marketing / landing page | `land-book.com`, `lapa.ninja` | Free, direct links to live sites, style filters. Default. |
| Premium / award-winning / animated | add `awwwards.com` | High craft; many are WebGL-heavy → expect viewport fallback. |
| Mobile / web app screens & flows | `mobbin.com` | Best for app UI. Needs login, but the user's Chrome session handles it. Only when asked. |

Skip recent.design / Godly: they link to X posts, not live sites.

## Workflow

### Phase 1 — discover + preview (cheap)
1. Map the vibe to a gallery + the closest style filter / search term.
2. With playwriter: open the gallery, dismiss any cookie modal, apply the filter, then
   `page.evaluate()` to extract candidates as `{ title, liveUrl, thumbnailUrl }`. Strip
   `?ref=...` tracking params from `liveUrl`. Collect ~8–12.
3. Download each `thumbnailUrl` into `<dir>/_previews/` and Read them inline so the user can see
   the shortlist. Present a numbered list (title + URL).
4. **Ask the user which to keep.** Do not full-capture everything.

### Phase 2 — capture chosen (expensive)
For each chosen `liveUrl`, run the bundled capture script (handles viewport pin, cookie dismiss,
lazy-load scroll, and WebGL fallback):

```bash
playwriter -s <SID> -e 'state.captureUrl="https://round.ai/"; state.outPath="/Users/<you>/screenshots/inspo/<slug>/round-ai.png"'
playwriter -s <SID> -f ~/.claude/skills/capture-inspo/scripts/capture.js
```

The script logs `{ url, outPath, mode }` where `mode` is `fullPage` or `viewport` (fallback).

## Output location

Save to `~/screenshots/inspo/<vibe-slug>-<YYYY-MM-DD>/` (e.g. `country-wedding-2026-06-24/`).
Get the date from the environment, never hardcode it. After capture:
- Make downscaled previews (`sips --resampleWidth 800 in.png --out preview.png`) for any image you
  read back, so you don't burn tokens on multi-MB full-page PNGs.
- Print the absolute folder path and tell the user it's ready to upload to Claude Design.

## Caveats (learned, real)

- **`fullPage` fails on WebGL/canvas-heavy sites** (e.g. family.co). The script catches this and
  falls back to a viewport shot — flag those to the user as partial.
- **Always pin viewport width** (the script uses 1440). Without it, capture inherits the monitor
  width (e.g. 3440 ultrawide) → distorted layout and huge files.
- **Full-page PNGs are large** (multi-MB). Fine for Claude Design upload; resize before reading back.
- **Login walls** (Mobbin, Twitter) work because it's the real Chrome session, not headless.

Files in this skill

  • SKILL.md3.8 KB
  • scripts/capture.js2.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.