Icons
Instructions for an agent that needs a colored SVG logo for a service. Follow them in order and stop at the first match.
Sources, in order
- theSVG, https://thesvg.org/
Largest brand collection. Use the
defaultvariant, which is in brand color. - SVGL, https://svgl.app/
Good coverage of software and developer tools. Has light and dark variants.
- Lobe Icons, https://lobehub.com/icons
Best for AI models and AI companies. Use the
-colorfile.
1. theSVG
There is no search endpoint. Download the manifest once and match the service name against title, slug and aliases, ignoring case.
curl -s https://thesvg.org/api/registry.json \
| jq '.icons[] | select((.title + " " + .slug + " " + (.aliases | join(" "))) | test("hubspot"; "i")) | {slug, title, variants}'
Build the URL from the slug: https://thesvg.org/icons/{slug}/default.svg. Example: https://thesvg.org/icons/hubspot/default.svg.
2. SVGL
Search the API by name. It returns a JSON list, or an object with an error key when nothing matches.
curl -s "https://api.svgl.app?search=github"
route is either a URL string or an object with light and dark URLs. Prefer light, which is the logo for a light background.
3. Lobe Icons
The SVG files are published in the @lobehub/icons-static-svg npm package. List the files and look for {name}-color.svg. Fall back to {name}.svg, which is monochrome, only if no color file exists.
curl -sL "https://unpkg.com/@lobehub/icons-static-svg@latest/?meta" \
| jq -r '.files[].path' | grep -i claude
URL pattern: https://unpkg.com/@lobehub/icons-static-svg@latest/icons/claude-color.svg.
Record the result
Add each icon to icons in the data file, keyed by the service name. Set source to the SVG URL or a local file path, and collection to the site where you found it. If a service has no logo in any source, mark it generic.
"icons": {
"HubSpot": {"source": "https://thesvg.org/icons/hubspot/default.svg", "collection": "https://thesvg.org/"},
"GitHub": {"source": "https://svgl.app/library/github_light.svg", "collection": "https://svgl.app/"},
"Claude": {"source": "https://unpkg.com/@lobehub/icons-static-svg@latest/icons/claude-color.svg", "collection": "https://lobehub.com/icons"},
"Internal CRM": {"source": "generic"}
}
- Check the file
Fetch the URL and confirm it returns HTTP 200 with an
<svgroot before recording it. - Match the brand
Make sure the logo belongs to the exact service, not a parent company or a similarly named product.
- Prefer color
Pick a monochrome file only when no source has a colored one.