关于 lovstudio-find-logo
面向设计工作的 Logo 收集技能,可通过品牌名称或 URL 检索 Clearbit 及网站元数据或图标中的候选图像,评分后归档主 Logo 和备选项。它提供命令行脚本,并在元数据中记录来源和图像信息。
主要功能
- 01按名称或 URL 查找 Logo
- 02按格式和尺寸为候选项评分
- 03归档主 Logo 与备选项
- 04提供便于命令串接的 JSON 输出
- 05记录来源和图像信息的元数据
适用场景
- 01为幻灯片或海报收集 Logo
- 02制作合作伙伴或媒体 Logo 栏
- 03从品牌 URL 获取 Logo
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lovstudio/ skills --skill lovstudio-find-logo安装后在 Claude Code 中输入/lovstudio-find-logo确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreCHANGELOG.mdREADME.mdscripts/find_logo.py详细介绍
find-logo — 收集品牌标志,优先选择宽幅、透明的标志
接收品牌名称或 URL,查询 Clearbit 和网站自身的 og:image /
<link rel=icon> / favicon,为每个候选项评分,并将最佳候选项
以及几个备选项归档到配置的收集目录中。
适用场景
- 用户要求为幻灯片、海报或网站品牌展示收集一个或多个品牌标志
- 用户提到要放入合作伙伴/媒体展示栏的公司
- 用户提供 URL,并希望获取其标志文件
工作流程(必须遵循)
第 1 步:识别每个品牌
名称和 URL 可以混合提供。如果用户只提供名称,且无法明显判断域名,请先询问,不要擅自猜测 .com(脚本会尝试猜测,但对于非美国品牌或名称有歧义的品牌,这种做法会失败)。
在以下情况下使用 AskUserQuestion:
- 品牌名称有歧义(例如,“Apple”可能指水果,也可能指 Inc.)
- 未提供 URL,且无法猜测域名(
xAI→x.ai,而不是xai.com) - 用户提供了不带 URL 的列表
第 2 步:获取资源——每次调用处理一个品牌
python3 scripts/find_logo.py --name "Anthropic" --url https://anthropic.com --json
批量处理时循环调用;脚本对每个 <slug>/ 都是幂等的(重复运行会覆盖原文件)。
第 3 步:检查评分;必要时使用 WebSearch 作为后备方案
- 退出代码为
0→ 标志已归档。输出的score可用于判断质量:≥ 60— 良好:SVG 或透明 PNG,宽幅或正方形比例20–60— 可用:可能是 favicon 或小尺寸 PNG< 20— 较差:只找到 ICO 或极小的占位文件
- 退出代码为
2/status: "no-candidates"→ 脚本未找到任何候选项。 不要放弃。使用WebSearch搜索"<brand> logo svg site:*.com"或品牌的媒体资料包页面,然后再次调用。不支持使用--url <direct-image-url>— 如果你有直接图片 URL,请将图片保存到配置的收集目录下的<slug>/logo.<ext>,并参照现有布局手动编写meta.json。
第 4 步:报告结果
告知用户归档路径,以及主标志的宽高比和格式。如果评分较低,请告知用户,并提出使用特定媒体资料包 URL 或 Wikipedia SVG 重新尝试。
CLI 参考
| 参数 | 默认值 | 说明 |
|---|---|---|
--name | — | 品牌/产品名称。用于生成 slug 和 meta。 |
--url | — | 官方 URL 或纯域名。覆盖根据名称猜测的域名。 |
--slug | slugified name | 覆盖归档根目录下的目录 slug。 |
--out | LOVSTUDIO_FIND_LOGO_OUTPUT_DIR 或 ~/.lovstudio/logo-collection | 归档根目录。 |
--keep-alts | 2 | 保留多少个候补项,命名为 alt-N.<ext>。 |
--json | 关闭 | 将 JSON 结果输出到 stdout(串联调用时使用)。 |
必须至少提供 --name 或 --url 其中一个。
归档目录结构
~/.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
└── ...
评分启发式规则(候选项为何胜出)
- 格式:SVG(+40)> PNG(+20)> WebP(+10)> JPG(-10)> ICO(-20)
- 透明度:含 alpha 通道时 +30(SVG 始终计入)
- 宽高比:宽幅(≥2:1)+25,横向(≥1.3:1)+10, 正方形 -5,纵向/人像比例 -15
- 短边:≥128px 时 +15,≥64px 时 +5,<32px 时 -20
- 文件大小检查:有效载荷 <400 字节时 -30(几乎可以确定是占位文件)
这符合“优先选择宽幅 + rgba”的偏好——宽幅透明标志会胜出,正方形 favicon 则会作为备选项。
依赖项
仅使用标准库(urllib、html.parser、argparse)。无需运行 pip install。
用户配置
默认归档文件位于 ~/.lovstudio/logo-collection/。可通过 --out 为单次运行指定其他目录,或为此技能设置 LOVSTUDIO_FIND_LOGO_OUTPUT_DIR。
已知限制
- 名称 → 域名的猜测方式很粗略:去除小写名称中的字符后缀上
.com。对于任何不使用.com的网站,请明确传入--url。 - 不使用 Clearbit API 密钥——我们调用未认证端点,可覆盖大多数主要品牌,但并非全部。
WebSearch后备搜索由 Claude 负责,而非脚本。