Suggest Lucide Icons
Suggest the most relevant icons from the Lucide open source icon pack to symbolize a concept or fit specific UI placements. Reason about symbolic associations broadly — across culture, science, and design — rather than only literal matches.
Input
Provide one or both:
- Concept: The idea, action, or meaning to represent
- Screenshot: UI context showing where icons are needed
The catalog script
scripts/lucide.py (Python 3, no dependencies) fetches the entire Lucide set once from unpkg.com/lucide-static@latest/tags.json, caches it ~24h, and searches and validates locally — so you never fetch icons one at a time:
search "<terms>" — real icons matching a concept by name and semantic tag, ranked. Every result is an icon that exists, listed with its tags so you can see why it fits.
validate <name>... — confirm specific names (e.g. a compound you built by hand). Misses come back with near-match suggestions, and the exit code is nonzero if any name is missing.
If Python 3 isn't available, fetch that URL directly (it's {name: [tags]}), or check one icon at https://unpkg.com/lucide-static@latest/icons/<name>.svg (200 exists, 404 doesn't; follow the 302 redirect).
Naming conventions
Icon names follow strict rules — apply these when reading results or building compound candidates to validate:
- kebab-case:
arrow-up not Arrow Up
- International English:
color not colour
- Group variants:
<group>-<variant> — e.g. badge-plus is based on badge
- Multiple elements, different sizes: list largest first —
circle-person if circle is bigger
- Element with modifier:
[element]-[modifier] — circle-dashed not dashed-circle; combined: circle-dashed-heart-broken
Process
Brainstorm associations — key ideas, visual metaphors, and screenshot context clues. Turn them into a handful of search terms.
Search the catalog — pull candidates from the script's results rather than guessing names:
python3 scripts/lucide.py search "calendar schedule date"
The tags show why each fits. If you build a compound name from the naming conventions, confirm it before suggesting:
python3 scripts/lucide.py validate circle-dashed-heart-broken
Present 3 confirmed candidates — icon name, and why it fits (symbolic meaning, visual clarity, context appropriateness).
Recommend best choice — single strongest option, with rationale.
Guidelines
- Only suggest icons confirmed by
search (results are real) or validate (for hand-built names) — never a made-up name.
- If fewer than 3 candidates survive, search more terms before giving up.
- If no good matches exist after thorough searching, say so.
- For screenshots, tailor to the specific design context.
- Provide a distinct recommendation for each icon needed.
- Ready for multiple feedback rounds to refine suggestions.
Output Format
Brainstorm: [Key associations and metaphors]
Candidate Icons:
- icon-name — Explanation of fit
- icon-name — Explanation of fit
- icon-name — Explanation of fit
Recommendation: icon-name — Why this is the strongest choice for [context]
1---
2name: suggest-lucide-icons
3description: "Pick Lucide icons for a concept, UI placement, or vault note. Searches the full Lucide catalog for real, verified icon names. Use when the user says 'what icon for X', 'suggest a Lucide icon', 'pick an icon', or needs an icon for note frontmatter, a button, or a section header."
4model: sonnet, inherit
5metadata:
6 author: nweii
7 version: "1.4.0"
8---
9
10# Suggest Lucide Icons
11
12Suggest the most relevant icons from the [Lucide open source icon pack](https://lucide.dev) to symbolize a concept or fit specific UI placements. Reason about symbolic associations broadly — across culture, science, and design — rather than only literal matches.
13
14## Input
15
16Provide one or both:
17
18- **Concept**: The idea, action, or meaning to represent
19- **Screenshot**: UI context showing where icons are needed
20
21## The catalog script
22
23`scripts/lucide.py` (Python 3, no dependencies) fetches the entire Lucide set once from `unpkg.com/lucide-static@latest/tags.json`, caches it ~24h, and searches and validates locally — so you never fetch icons one at a time:
24
25- `search "<terms>"` — real icons matching a concept by name and semantic tag, ranked. Every result is an icon that exists, listed with its tags so you can see why it fits.
26- `validate <name>...` — confirm specific names (e.g. a compound you built by hand). Misses come back with near-match suggestions, and the exit code is nonzero if any name is missing.
27
28If Python 3 isn't available, fetch that URL directly (it's `{name: [tags]}`), or check one icon at `https://unpkg.com/lucide-static@latest/icons/<name>.svg` (200 exists, 404 doesn't; follow the 302 redirect).
29
30## Naming conventions
31
32Icon names follow strict rules — apply these when reading results or building compound candidates to validate:
33
34- **kebab-case**: `arrow-up` not `Arrow Up`
35- **International English**: `color` not `colour`
36- **Group variants**: `<group>-<variant>` — e.g. `badge-plus` is based on `badge`
37- **Multiple elements, different sizes**: list largest first — `circle-person` if circle is bigger
38- **Element with modifier**: `[element]-[modifier]` — `circle-dashed` not `dashed-circle`; combined: `circle-dashed-heart-broken`
39
40## Process
41
421. **Brainstorm associations** — key ideas, visual metaphors, and screenshot context clues. Turn them into a handful of search terms.
43
442. **Search the catalog** — pull candidates from the script's results rather than guessing names:
45
46 ```bash
47 python3 scripts/lucide.py search "calendar schedule date"
48 ```
49
50 The tags show why each fits. If you build a compound name from the naming conventions, confirm it before suggesting:
51
52 ```bash
53 python3 scripts/lucide.py validate circle-dashed-heart-broken
54 ```
55
563. **Present 3 confirmed candidates** — icon name, and why it fits (symbolic meaning, visual clarity, context appropriateness).
57
584. **Recommend best choice** — single strongest option, with rationale.
59
60## Guidelines
61
62- Only suggest icons confirmed by `search` (results are real) or `validate` (for hand-built names) — never a made-up name.
63- If fewer than 3 candidates survive, search more terms before giving up.
64- If no good matches exist after thorough searching, say so.
65- For screenshots, tailor to the specific design context.
66- Provide a distinct recommendation for each icon needed.
67- Ready for multiple feedback rounds to refine suggestions.
68
69## Output Format
70
71**Brainstorm**: [Key associations and metaphors]
72
73**Candidate Icons**:
74
751. **icon-name** — Explanation of fit
762. **icon-name** — Explanation of fit
773. **icon-name** — Explanation of fit
78
79**Recommendation**: **icon-name** — Why this is the strongest choice for [context]