askill
better-icons

better-iconsSafety 85Repository

Use this skill to search and extract SVG icons via the better-icons CLI or MCP. Use this when you need icons from Iconify collections for UI/UX work, product mocks, or codebases.

2 stars
1.2k downloads
Updated 2/18/2026

Package Files

Loading files...
SKILL.md

Better Icons

Search and retrieve icons from 200+ libraries via Iconify.

Philosophy

  • Prefer clarity over decoration; icons should reinforce meaning.
  • Keep visual consistency by staying within one family per surface.
  • Optimize for accessibility: icons should not be the only cue.

Scope and triggers

  • You need SVG icons quickly from Iconify libraries.
  • You want consistent icon families across UI or docs.
  • You need batch fetch or sync into a project file.
  • You want to use the MCP tools from an agent.

Required inputs

Cognitive Support / Plain-Language

  • Optimize for low cognitive load (TBI support): one task at a time, explicit steps.

  • Use plain language first; define jargon in parentheses.

  • Keep steps short and checklist-driven where possible.

  • Externalize state: decisions, assumptions, and the next step.

  • Provide ELI5 explanations for non-trivial logic.

  • Ask one question at a time; prefer multiple-choice when possible.

  • Search query (string) and optional collection prefix.

  • Icon ID (prefix:name).

  • Optional size and color (use design tokens when available).

  • Output target path (if writing a file).

  • Framework target for sync_icon (e.g., React, Vue, Svelte).

Deliverables

  • SVG output to stdout or a file.
  • Search results (JSON list of icon IDs).
  • Updated project icon file (when syncing).
  • Collections list (when listing libraries).

Constraints / Safety

  • Redact sensitive file paths, project names, or proprietary terms from logs by default.
  • Do not overwrite existing files without explicit confirmation.
  • If icons are used for interactive controls, ensure a minimum 44x44 hit-area and align spacing/breakpoints to design tokens where applicable.

Anti-Patterns

  • Mixing icon styles (stroke vs solid) within the same UI surface.
  • Using icons without text labels for critical actions.
  • Hardcoding colors that ignore the design system.
  • Fetching excessive icons without narrowing by prefix or use case.

Procedure

  1. Confirm the use case and icon style constraints.
  2. Search by query (optionally with a prefix).
  3. Select icon IDs that match the family and style.
  4. Fetch SVGs with token-aligned size/color.
  5. Sync into the project if needed.
  6. Validate output and usage context.

CLI

# Search icons
better-icons search <query> [--prefix <prefix>] [--limit <n>] [--json]

# Get icon SVG (outputs to stdout)
better-icons get <icon-id> [--color <color>] [--size <px>] [--json]

# Setup MCP server for AI agents
better-icons setup [-a cursor,claude-code] [-s global|project]

Examples

better-icons search arrow --limit 10
better-icons search home --json | jq '.icons[0]'
better-icons get lucide:home > icon.svg
better-icons get mdi:home --color '#333' --json

Icon ID Format

prefix:name - e.g., lucide:home, mdi:arrow-right, heroicons:check

Popular Collections

lucide, mdi, heroicons, tabler, ph, ri, solar, iconamoon


MCP Tools (for AI agents)

ToolDescription
search_iconsSearch across all libraries
get_iconGet single icon SVG
get_iconsBatch retrieve multiple icons
list_collectionsBrowse available icon sets
recommend_iconsSmart recommendations for use cases
find_similar_iconsFind variations across collections
sync_iconAdd icon to project file
scan_project_iconsList icons in project

TypeScript Interfaces

interface SearchIcons {
  query: string
  limit?: number        // 1-999, default 32
  prefix?: string       // e.g., 'mdi', 'lucide'
  category?: string     // e.g., 'General', 'Emoji'
}

interface GetIcon {
  icon_id: string       // 'prefix:name' format
  color?: string        // e.g., '#ff0000', 'currentColor'
  size?: number         // pixels
}

interface GetIcons {
  icon_ids: string[]    // max 20
  color?: string
  size?: number
}

interface RecommendIcons {
  use_case: string      // e.g., 'navigation menu'
  style?: 'solid' | 'outline' | 'any'
  limit?: number        // default 10
}

interface SyncIcon {
  icons_file: string    // absolute path
  framework: 'react' | 'vue' | 'svelte' | 'solid' | 'svg'
  icon_id: string
  component_name?: string
}

API

All icons from https://api.iconify.design

Validation

  • better-icons search home --limit 5 returns a list of icon IDs.
  • better-icons get lucide:home outputs valid SVG markup.
  • If syncing, verify the target file updates and renders correctly.
  • See references/contract.yaml (schema_version: 1) and references/evals.yaml for the formal contract and eval cases.
  • Fail fast: stop at the first failed check and fix before continuing.

Remember

The agent is capable of extraordinary work in this domain. These guidelines unlock that potential—they don't constrain it. Use judgment, adapt to context, and push boundaries when appropriate.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

90/100Analyzed 4/27/2026

Excellent skill document for a general-purpose icon retrieval tool. Well-structured with clear philosophy, comprehensive CLI/MCP documentation, TypeScript interfaces, and practical examples. Includes safety guidelines (redaction, file protection, accessibility) and anti-patterns. The skill is highly actionable with a 6-step procedure and complete reference material. No internal-only signals - this is a reusable tool skill. Minor improvement: could add a 'when NOT to use' section."

85
90
88
95
92

Metadata

Licenseunknown
Version-
Updated2/18/2026
Publisherjscraik

Tags

apillm