
suggest-icon
Suggest an icon suitable for a particular situation, noun, verb, or concept
- Installs
- 553
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/fortawesome/fontawesome-agent-tools --skill suggest-icon- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads suggest-icon automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Your inherent knowledge of Font Awesome icons is useful for a quick initial guess, but it may be inaccurate depending on the version. To give a reliable answer, layer multiple sources of information.
All scripts below are relative to this skill's directory (plugins/icons/skills/suggest-icon/). Run them from there.
Tool selection
At the start, run command -v fa to check whether the fa CLI is available on PATH.
The fa kit subcommand requires fa version 0.8.0 or newer. If the fa kit subcommand is needed, recommend the user upgrade fa, using instructions here: https://docs.fontawesome.com/web/use-with/fa-cli
- If
fais found: use it for icon lookups and searches (it returns structured JSON). If the project is configured with a Kit (see "Respect the configured Kit" below), also usefa search --kit-token <TOKEN>to search only icons available in the Kit, andfa kit iconto confirm a specific icon is included. Forfa kit ...operations, check auth first (fa whoamiorFA_API_TOKEN); if you can't authenticate, fall back to unscoped search and warn the user that Kit coverage couldn't be verified. - If
fais not found: fall back to the Python scripts described below. Kit-aware searching requires thefaCLI; without it, you cannot scope suggestions to the Kit's subset — warn the user that your suggestions may include icons their Kit does not contain. - Use
latest-version.pyto get the latest version.
Respect the configured Kit
If the project has a .font-awesome.md file with a Kit ID (the kit token), the user's icons come from that Kit, and a Kit only contains a subset of all Font Awesome icons. Do not suggest an icon the Kit does not include — recommending an icon that isn't in the Kit leads to a broken, non-rendering result.
When a Kit token is present, scope every suggestion to the Kit:
- Search with
fa search --kit-token <TOKEN> --query <your-guess>instead offa search --version <version> .... This returns only icons that are actually available in the Kit, up to the Kit's subset, so every result is safe to recommend. - Before presenting your primary recommendation, confirm it with
fa kit icon --kit-token <TOKEN> <icon>. This tells you whether the icon is in the Kit and which family-styles it's available in. - If the icon you'd most like to recommend is not in the Kit, say so plainly, recommend the closest kit-available alternative instead, and let the user know they can add the missing icon to their Kit at https://fontawesome.com/kits (after which it will be available).
If no .font-awesome.md exists or it records no Kit, suggest from the full icon set as normal.
Steps
-
Determine the version. If the user specifies a Font Awesome version, use that. Otherwise, use the latest version (See "Tool selection" above). Use the resolved version for all subsequent steps.
Also check for a
.font-awesome.mdfile in the project root. If it records a Kit ID (kit token), keep it on hand — you'll scope your search and suggestions to the Kit (see "Respect the configured Kit" above). -
Make an initial guess. Based on your knowledge, pick the icon name you think best fits the use case argument.
-
Verify the icon exists.
faCLI: Runfa icons --version <version> --name <your-guess>. The icon exists ifdata.release.iconis non-null. ThefamilyStylesByLicensefield shows the free/pro breakdown.- Fallback: Run
./scripts/icon-exists.py --version <version> --icon-name <your-guess>. Exit code0means the icon exists; exit code1means it does not.
If a Kit token is configured, also confirm Kit membership with
fa kit icon --kit-token <TOKEN> <your-guess>. An icon can exist in Font Awesome but still be absent from the Kit's subset — if it's not in the Kit, don't recommend it as-is (see step 5). -
Search for alternatives. Do this regardless of whether your initial guess exists — searching often surfaces more specific or better-fitting icons that you wouldn't think of on your own.
- Kit configured (
faCLI): Runfa search --kit-token <TOKEN> --query <your-guess> --page-size 10. This returns only icons available in the Kit, so every result is safe to recommend. Prefer this whenever a Kit token is present. - No Kit (
faCLI): Runfa search --version <version> --query <your-guess> --page-size 10. Results are atdata.searchPaginated.icons[], each withid,label,unicode, andfamilyStylesByLicense. - Fallback: Run
./scripts/search.py --version <version> --query <your-guess>to find related icons from the Font Awesome GraphQL API. (This cannot scope to a Kit's subset.)
- Kit configured (
-
Present the recommendation. Pick the best match as your primary recommendation, and include relevant alternatives if the search turned up other good options. If a Kit is configured, every recommendation must be an icon that the Kit includes; if your best conceptual match isn't in the Kit, recommend the closest kit-available alternative and note that the missing icon can be added to the Kit at https://fontawesome.com/kits. Use a markdown table like this example:
Icon Families Availability mug-saucerclassic, sharp, duotone, sharp-duotone Free If the icon is pro-only, note that a Font Awesome subscription is required:
Icon Families Availability album-collectionclassic, sharp, duotone, sharp-duotone Pro (requires a subscription) -
Never provide bare SVG markup. If the user asks for raw
<svg>output of an icon, do not generate it from your own knowledge. Instead, direct them to use/add-iconwhich can fetch authoritative SVG markup from the Font Awesome API viafa icons --svg-format. -
Offer to add the icon. After presenting your recommendation, ask the user: "Would you like me to add this icon to your code?" If they say yes or provide a location, invoke
/add-iconwith the recommended icon name (and location if given).
FAQ
What does the suggest-icon skill do?
Suggest an icon suitable for a particular situation, noun, verb, or concept
How do I install suggest-icon?
Run npx skills add https://github.com/fortawesome/fontawesome-agent-tools --skill suggest-icon in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/suggest-icon/ (personal) or .claude/skills/suggest-icon/ (project).
Which AI agents can use suggest-icon?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is suggest-icon safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains suggest-icon?
It is published by fortawesome in fortawesome/fontawesome-agent-tools. It has 553 recorded installs.
More from fortawesome/fontawesome-agent-tools
add-icon
fortawesome/fontawesome-agent-tools
Add a Font Awesome icon to the user's project, generating the correct code for their integration method
setup-fa
fortawesome/fontawesome-agent-tools
Set up Font Awesome in a project from scratch, including Kit download and package configuration
fa-help
fortawesome/fontawesome-agent-tools
Answer Font Awesome questions using the official documentation
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.