Search, download, and customize Lucide icons (1000+ beautiful SVG icons). Supports SVG and TypeScript React component generation with full customization options.
Search, download, and customize Lucide icons - a beautiful & consistent icon library with 1000+ icons.
# Search for icons
lucide search heart
# Download an icon
lucide download heart --output ./icons/
# Download with React component
lucide download heart --output ./icons/ --format svg,react
# Customize icon
lucide download star --color "#ffd700" --size 32 --stroke-width 1.5
Before first use, install dependencies in the skill's scripts directory:
cd scripts && npm install
Optional - For offline support:
npm install lucide-static
<keyword>Search for icons by name or keyword.
lucide search heart --limit 10
<icon-name>Download a single icon with optional customization.
Options:
-o, --output <dir> - Output directory (default: current directory)-f, --format <formats> - Output formats: svg, react, or svg,react (default: svg)-c, --color <color> - Icon color (default: currentColor)-s, --size <size> - Icon size in pixels (default: 24)-w, --stroke-width <width> - Stroke width (default: 2)--overwrite - Overwrite existing files--json - Output as JSONExamples:
# Basic download
lucide download heart --output ./icons/
# With React component
lucide download heart --format svg,react --output ./src/icons/
# Customized icon
lucide download star --color "#ffd700" --size 32 --stroke-width 1.5
# Overwrite existing
lucide download check --output ./icons/ --overwrite
List all available icons.
lucide list --limit 50
<icon-name>Show detailed information about an icon.
lucide info heart
Refresh the icon metadata cache.
lucide refresh
Before first use, install dependencies:
cd ~/.codebuddy/skills/lucide-icons/scripts && npm install
Standard SVG file with Lucide's default styling:
currentColor for easy CSS stylingExample output (heart.svg):
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/>
</svg>
Generates a fully-typed React functional component with:
Example output (HeartIcon.tsx):
import React from 'react';
export interface HeartIconProps {
size?: number | string;
color?: string;
strokeWidth?: number | string;
className?: string;
style?: React.CSSProperties;
'aria-label'?: string;
onClick?: React.MouseEventHandler<SVGSVGElement>;
}
export const HeartIcon: React.FC<HeartIconProps> = ({
size = 24,
color = 'currentColor',
strokeWidth = 2,
className,
style,
'aria-label': ariaLabel,
onClick,
...props
}) => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width={size}
height={size}
viewBox="0 0 24 24"
fill="none"
stroke={color}
strokeWidth={strokeWidth}
strokeLinecap="round"
strokeLinejoin="round"
className={className}
style={style}
aria-label={ariaLabel}
onClick={onClick}
role={ariaLabel ? 'img' : undefined}
aria-hidden={!ariaLabel}
{...props}
>
<path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/>
</svg>
);
};
HeartIcon.displayName = 'HeartIcon';
export default HeartIcon;
# Download heart icon to src/icons/
lucide download heart -o ./src/icons/
# Download with custom color and size
lucide download star --color "#ffd700" --size 32 -o ./icons/
# Generate both SVG and React component
lucide download check-circle --format svg,react -o ./src/components/icons/
# Search for arrow icons
lucide search arrow --limit 20
Any valid CSS color value:
red, blue, green#ff0000, #f00rgb(255, 0, 0)hsl(0, 100%, 50%)var(--primary-color)currentColor (inherits from parent)Any number (interpreted as pixels):
24 (default)16, 20, 32, 48, etc.Any number:
2 (default)1, 1.5, 2.5, 3, etc.The skill uses multiple data sources in order of preference:
cache/ directorylucide refresh to force cache updateThe skill handles common errors gracefully:
--overwriteMake sure dependencies are installed:
cd scripts && npm install
Install lucide-static for local icon access:
npm install lucide-static
Refresh the cache:
lucide refresh
Icons are fetched from the official Lucide repository.
See README.md for detailed documentation.