From content-creation
Fetches company/product logos from Clearbit, og:image, favicon given brand name or URL, scores candidates preferring wide-aspect transparent images, and archives best plus alternates to ~/.lovstudio/logo-collection/<slug>/. Useful for site/PPT/poster brand lineups.
npx claudepluginhub lovstudio/skills --plugin content-creationThis skill uses the workspace's default tool permissions.
Takes a brand name or URL, probes Clearbit + the site's own og:image /
Extracts brand assets—logos, colors, backdrop images, brand names—from website URLs using OpenBrand npm package, API, or MCP server. Useful for design, branding, asset collection.
Fetches brand info—name, description, logos, industry—from brand.dev API via curl. Downloads logos locally to project assets (e.g., Next.js public/logos/) with slug naming and verification. Use for brand lookups or adding company logos.
Generates custom SVG logos and brand kits by scanning project context (README, package.json, CSS, assets). Exports favicons (16-512px + ICO), social images (OG/Twitter), dark/light/mono variants, and HTML preview.
Share bugs, ideas, or general feedback.
Takes a brand name or URL, probes Clearbit + the site's own og:image /
<link rel=icon> / favicon, scores each candidate, and archives the best
one plus a couple of alternates into ~/.lovstudio/logo-collection/<slug>/.
Accept any mix of names and URLs. If the user gave only a name with no obvious
domain, ask — don't silently guess .com (script will guess, but for non-US or
ambiguous brands that fails).
Use AskUserQuestion when:
xAI → x.ai, not xai.com)python3 ~/.claude/skills/lovstudio-find-logo/scripts/find_logo.py \
--name "Anthropic" --url https://anthropic.com --json
For a batch, loop; the script is idempotent per <slug>/ (re-runs overwrite).
0 → logo archived. The printed score is your quality signal:
≥ 60 — solid: SVG or transparent PNG with wide/square aspect20–60 — usable: probably a favicon or small PNG< 20 — weak: only ICO or tiny stub found2 / status: "no-candidates" → script found nothing.
Do NOT give up. Use WebSearch for "<brand> logo svg site:*.com" or the
brand's press-kit page, then re-invoke with --url <direct-image-url> is
not supported — if you have a direct image URL, curl -o it into
~/.lovstudio/logo-collection/<slug>/logo.<ext> and hand-write meta.json
using the existing layout as a template.Report back with the archive path and the primary's aspect + format. If the score is weak, tell the user and offer to retry with a specific press-kit URL or Wikipedia SVG.
| Argument | Default | Description |
|---|---|---|
--name | — | Brand/product name. Used for slug + meta. |
--url | — | Official URL or bare domain. Overrides the name-based domain guess. |
--slug | slugified name | Override the directory slug under the archive root. |
--out | ~/.lovstudio/logo-collection | Archive root. |
--keep-alts | 2 | How many runner-up candidates to keep as alt-N.<ext>. |
--json | off | Emit a JSON result to stdout (use this when chaining). |
At least one of --name or --url is required.
~/.lovstudio/logo-collection/
├── anthropic/
│ ├── logo.png # primary (highest score)
│ ├── alt-1.png # runner-ups
│ ├── alt-2.png
│ └── meta.json # sources, scores, dimensions, fetched_at
├── vercel/
│ ├── logo.png # 1200x628 transparent banner
│ └── ...
└── stripe/
├── logo.svg
└── ...
+30 if alpha channel present (SVG always counts)+25 for wide (≥2:1), +10 for landscape (≥1.3:1),
-5 for square, -15 for tall/portrait+15 if ≥128px, +5 if ≥64px, -20 if <32px-30 if payload <400 bytes (almost certainly a stub)This matches the "prefer 长条形 + rgba" preference — wide transparent logos come out on top, square favicons land as alternates.
Stdlib only (urllib, html.parser, argparse). No pip install required.
.com suffix. For
anything not on .com, pass --url explicitly.WebSearch fallback is Claude's responsibility, not the script's.