Hugeicons Agent Skill
The Hugeicons agent skill teaches coding agents (Claude Code, Cursor, and any other tool that supports the open skills format) how to use Hugeicons correctly in your project: which package to install, which component renders an icon, which props exist, and what the icons are actually named.
It ships from the hugeicons/hugeicons repository and is listed at skills.sh/hugeicons/hugeicons/hugeicons.
Installation
npx skills add hugeicons/hugeiconsRun this from the root of your project. The skill is installed locally and loaded by your agent whenever the task involves Hugeicons.
If you use Claude Code, ChatGPT, Codex or Cursor, there is a packaged integration that installs this skill together with the MCP server in one step. See Claude Code, ChatGPT & Codex and Cursor.
What the skill covers
The skill works in three steps: pick the icon library and detect the framework, render with the right component, then resolve icon names against the live catalog.
1. Which icon library, then which framework
Before any icon is written, the skill settles what the project should use:
| What the project already has | What the agent does |
|---|---|
| Hugeicons | Uses it, in the style already in the project |
| Another icon library — lucide, Heroicons, react-icons, Material, Feather, Phosphor, Tabler | Stays with it. It won’t mix libraries, and switches only if you ask |
| No icon library at all | Installs Hugeicons and uses it, free Stroke Rounded |
That last row applies even when your request never mentions icons. A dashboard, sidebar, nav or empty state needs them, and without a rule the common outcome is a hand-drawn inline SVG that only resembles a real icon.
Then it reads your manifest and matches the installed package:
It reads your manifest and matches the installed package:
| Framework | Detect by | Component |
|---|---|---|
| React | @hugeicons/react in package.json | HugeiconsIcon |
| Vue | @hugeicons/vue in package.json | HugeiconsIcon |
| Svelte | @hugeicons/svelte in package.json | HugeiconsIcon |
| SolidJS | @hugeicons/solid-js in package.json | HugeiconsIcon |
| Angular | @hugeicons/angular in package.json | hugeicons-icon |
| React Native | @hugeicons/react-native in package.json | HugeiconsIcon |
| Flutter | hugeicons in pubspec.yaml | HugeIcon |
2. Install and render
The skill knows the two architectures:
- JS frameworks: the
@hugeicons/*package is a renderer only. Icons are named exports from a separate package (@hugeicons/core-free-iconsfor free,@hugeicons-pro/core-*for Pro). The same icon names work across React, Vue, Svelte, SolidJS, Angular, and React Native. - Flutter: the
hugeiconspackage bundles the icon data. Icons areHugeIcons.*constants of typeList<List<dynamic>>, rendered withHugeIcon, never Flutter’sIcon.
It also carries the full props table per framework and is instructed to keep generated code minimal: icon is the only required prop, so it won’t emit props that only repeat a default (size={24}, color="currentColor", strokeWidth={1.5}).
3. Exact icon names
This is the main thing the skill buys you: a guessed icon name may not exist, or may exist and be the wrong glyph. Export names are not predictable from the icon name — 2nd-bracket is SecondBracketIcon, sorting-1-9 is SortingOneNineIcon, 3d-view is ThreeDViewIcon — so the skill resolves every name before writing the import, then copies it verbatim.
It deliberately ships no bundled icon list. The catalog moves with every release, so a copy frozen at install time goes stale within weeks. It resolves against a live source instead:
- The MCP server, preferred:
search_iconsto find an icon,get_icon_codefor the exact install command, import and usage. - The installed package, when there is no MCP server or you are offline: grepping the project’s own
node_modules, which always matches the version the project actually builds against.
It also refuses to hand-draw an icon. A “Hugeicons-style” inline SVG is not a Hugeicons icon; icons come from the official package or the web font.
Free vs Pro awareness
The skill defaults to free Stroke Rounded (@hugeicons/core-free-icons, 6,000+ icons) and does not stop to ask about licensing. Stroke Rounded covers the whole library, so no icon is out of reach without Pro. It reaches for a Pro style only when the project already imports @hugeicons-pro/... or you ask for one, so it won’t hand you an import that fails on install.
Migrating an existing project
A second skill, hugeicons-migrate, bulk-switches a project to Hugeicons. Install it alongside the first:
npx skills add hugeicons/hugeicons-migrateIt covers the deprecated hugeicons-react and @hugeicons/react-native-pro packages, @hugeicons/core-free-icons upgrades where exports were renamed, and lucide-react, @heroicons/react and react-icons, with prop translation and verified name maps.
Which integration do I need?
| What it is | Use it when | |
|---|---|---|
| Agent skill | Instructions your agent loads from your project | Any skills-compatible agent, or you want the rules committed with the repo |
| MCP server | Live connection to the Hugeicons platform | You want search across all 60,000+ icons, every style, and font glyph data |
| Claude Code plugin | Both skills + the MCP server, one install | You use Claude Code |
| ChatGPT & Codex plugin | Skills + the MCP server, from the OpenAI directory | You use ChatGPT or Codex |
| Cursor rule | Condensed rule file + the MCP server | You use Cursor |
The skill and the MCP server are complements, not alternatives: the skill is the instructions, the server is what the names get resolved against. The three plugins exist so you don’t have to wire them together by hand.
Example prompts
Once the skill is installed, prompts like these route through it automatically:
"Add a search input with a Hugeicons search icon to the homepage."
"Replace the emoji in the sidebar nav with Hugeicons equivalents."
"Set up Hugeicons in this Flutter app and use a home icon in the bottom nav."