Generates maskable icons with proper safe zone padding for Android 13+ adaptive icons
Generates Apple Touch Icons for iOS Safari and macOS Safari, including apple-touch-icon.png (180Ć180) and apple-icon.png for Next.js
Auto-detects Astro projects and generates web app icons in the public/ directory with traditional mode
Auto-detects Next.js projects and generates zero-config auto-linked icons for App Router mode in app/ directory, or traditional icons for Pages Router in public/
Generates Progressive Web App manifest files and icons including icon-192.png, icon-512.png, and icon-maskable.png with site.webmanifest
Auto-detects Remix projects and generates web app icons in the public/ directory with traditional mode
Generates monochrome SVG icons for Safari pinned tabs with customizable colors
Auto-detects SvelteKit projects and generates web app icons in the static/ directory with traditional mode
Auto-detects Vite projects and generates web app icons in the public/ directory with traditional mode
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Web Icons Generator CLI MCPgenerate icons from logo.png for my Next.js project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@entro314labs/web-icons-generator-cli-mcp šØ
Generate all required web app icons and files from a single source image. Modern, fast, and framework-aware.
Available as CLI, MCP Server, and Claude Desktop Extension!
Features
ā
Auto-detects in current directory
ā
Generates 8 essential files (2025 best practices)
ā
Framework auto-detection (Next.js, Astro, SvelteKit, Remix, Vite)
ā
Generates in current directory when run (respects process.cwd())
ā
SVG and PNG support with automatic conversion
ā
Maskable icon with safe zone padding (Android 13+)
ā
Monochrome Safari pinned tab icon
ā
site.webmanifest generation
ā
HTML snippet ready to copy/paste
ā
MCP Server for Claude Desktop integration
ā
Claude Desktop Extension with quick actions
ā
Zero config ā works out of the box
Installation
# Run directly with npx (no installation needed)
npx @entro314labs/web-icons-generator-cli-mcp source.svg
# Shorter aliases
npx @entro314labs/web-icons-generator-cli-mcp@latest
# After install: create-icons, webicons, or web-icons-generator-cli-mcp
# Or install globally
npm install -g @entro314labs/web-icons-generator-cli-mcp
create-icons # shortest command!
webicons # also worksUsage
Zero Config (Recommended)
# Place app-icon.svg or app-icon.png in your project root
cd my-project
npx @entro314labs/web-icons-generator-cli-mcp
# ā Found app-icon.svg in current directory
# ā Detected Next.js ā using public/ directory
# ⨠Success! Generated 8 filesBasic Usage
# With source file as argument
npx @entro314labs/web-icons-generator-cli-mcp logo.svg
# Or if installed globally (use shorter commands)
create-icons logo.svg
webicons logo.svg
# Interactive mode (prompts for source if not found)
create-iconsAdvanced Options
# Specify output directory
create-icons logo.svg --output ./public
# Custom Safari pinned tab color
create-icons logo.svg --color "#ff5733"
# Choose generation mode
create-icons logo.svg --mode nextjs # Next.js App Router (app/)
create-icons logo.svg --mode traditional # Traditional web app (public/)
create-icons logo.svg --mode auto # Auto-detect (default)
# Full example
create-icons logo.svg -o ./app -m nextjs -c "#1a1a1a"Generation Modes
The tool supports two generation modes for maximum compatibility:
š Next.js App Router Mode (--mode nextjs)
Perfect for Next.js 13+ with App Router
Generated files (in app/ directory):
favicon.ico(32Ć32)icon.png(512Ć512) - auto-linked by Next.jsapple-icon.png(180Ć180) - auto-linked by Next.jsapple-touch-icon.png(180Ć180) - for compatibilityicon.svg(if source is SVG) - auto-linked by Next.js
Benefits:
ā Zero configuration - icons auto-linked by Next.js
ā No manual
<head>tags neededā Automatic metadata generation
ā Cleaner project structure
Usage:
create-icons logo.svg --mode nextjs
# or let it auto-detect
create-icons logo.svg # detects Next.js App Router automaticallyš Traditional Mode (--mode traditional)
Perfect for all other frameworks and traditional web apps
Generated files (in public/ directory):
favicon.ico(32Ć32)icon.svg(scalable)icon-192.png(192Ć192) - for PWAicon-512.png(512Ć512) - for PWAapple-touch-icon.png(180Ć180)icon-maskable.png(512Ć512, with padding) - for Androidsafari-pinned-tab.svg(monochrome) - for Safarisite.webmanifest(PWA manifest)
Requires: Manual HTML integration (copy from html-snippet.txt)
Usage:
create-icons logo.svg --mode traditionalGenerated Files
Generated Files
Traditional Mode generates these files in your output directory:
/public/
āāā favicon.ico (32Ć32)
āāā icon.svg (scalable)
āāā icon-192.png (192Ć192)
āāā icon-512.png (512Ć512)
āāā apple-touch-icon.png (180Ć180)
āāā icon-maskable.png (512Ć512, with padding)
āāā safari-pinned-tab.svg (monochrome)
āāā site.webmanifest (PWA manifest)
/ (project root)
āāā icon-integration-guide.txt (HTML snippet to copy)Next.js App Router Mode generates these files in your app directory:
/app/ (or /src/app/)
āāā favicon.ico (32Ć32)
āāā icon.png (512Ć512, auto-linked)
āāā icon.svg (scalable, auto-linked)
āāā apple-icon.png (180Ć180, auto-linked)
āāā apple-touch-icon.png (180Ć180, compatibility)
/ (project root)
āāā icon-integration-guide.txt (integration instructions)Framework Detection
The tool automatically detects your framework and uses the correct output directory and mode:
Framework | Config File | Default Mode | Output Directory |
Next.js (App Router) |
|
|
|
Next.js (Pages) |
|
|
|
Astro |
|
|
|
SvelteKit |
|
|
|
Remix |
|
|
|
Vite |
|
|
|
Default | None detected |
|
|
HTML Integration
Next.js App Router (Auto-Linked)
No manual HTML needed! Next.js automatically generates these tags:
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" href="/icon.png" type="image/png" sizes="512x512" />
<link rel="apple-touch-icon" href="/apple-icon.png" />
<link rel="icon" href="/icon.svg" type="image/svg+xml" />Traditional Mode (Manual Integration)
After generation, copy the contents of icon-integration-guide.txt to your HTML <head>:
<!-- Favicon (modern + fallback) -->
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="icon" href="/favicon.ico" sizes="any">
<!-- Apple Touch Icon -->
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- Web App Manifest (PWA) -->
<link rel="manifest" href="/site.webmanifest">
<!-- Safari Pinned Tab -->
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">AI Assistant Integration
After generation, the tool provides an AI-ready prompt you can use with Claude, ChatGPT, or other assistants to verify your setup:
I generated web app icons in the [directory] for this [framework] app.
Please read the integration guide at icon-integration-guide.txt and verify
that all icon files are correctly placed and properly integrated.Requirements
Node.js 18 or higher
Source image in SVG, PNG, or JPG format
For best results, use square SVG with transparent background
Supported Input Formats
.svgā Recommended (scalable, generates all files).pngā Good (generates raster icons, SVG files need manual creation).jpg/.jpegā Acceptable (generates raster icons, SVG files need manual creation)
How It Works
Looks for in current directory (or uses provided path)
Detects your framework (Next.js, Astro, etc.) and determines the best generation mode
Auto-selects mode: Next.js App Router ā
nextjsmode, others ātraditionalmodeConverts & resizes your source image to all required sizes for the selected mode
Generates maskable icon with proper 20% safe zone padding (traditional mode)
Creates monochrome SVG for Safari pinned tabs (SVG sources only, traditional mode)
Generates manifest with correct icon references (traditional mode)
Outputs integration guide in
html-snippet.txt
Why This Tool?
Most icon generators are:
ā Outdated (generate 30+ unnecessary files)
ā Online-only (require uploading your logo)
ā Not framework-aware (manual directory setup)
ā Missing modern features (maskable icons, SVG favicons)
ā Don't support Next.js App Router conventions
This tool:
ā Generates only what you need (2025 standards)
ā Works offline (CLI-based)
ā Auto-detects your framework
ā Includes modern PWA features
ā Supports Next.js App Router with zero-config auto-linking
ā Dual-mode support: traditional web apps + Next.js
Examples
Example 1: Zero Config (Recommended)
cd my-nextjs-app
# Create app-icon.svg in the project root
create-icons
# ā Found app-icon.svg in current directory
# ā Detected Next.js ā using public/ directory
# ⨠Success! Generated 8 filesExample 2: Next.js Project with Custom Path
cd my-nextjs-app
create-icons assets/logo.svg
# ā Detected Next.js ā using public/ directory
# ⨠Success! Generated 8 filesExample 3: Custom Output
create-icons assets/brand.svg --output static/icons
# Generated icons in static/icons/Example 4: Brand Color
create-icons logo.svg --color "#ff6b35"
# Safari pinned tab will use #ff6b35Browser Support
File | Supported Browsers |
| All browsers (legacy fallback) |
| Chrome 80+, Firefox 41+, Safari 9+ |
| iOS Safari, macOS Safari |
| Chrome/Edge (PWA), Android |
| Android 13+ (adaptive icons) |
| Safari 9+ (pinned tabs) |
Troubleshooting
"Source file not found"
Ensure the path to your source image is correct
Use relative or absolute paths:
./logo.svgor/Users/you/project/logo.svg
"Invalid file format"
Only SVG, PNG, and JPG are supported
Convert other formats (WebP, GIF) to PNG first
Icons not displaying
Ensure files are at domain root (
https://yourdomain.com/favicon.ico)Check HTML
<head>tags are presentClear browser cache (hard refresh: Cmd+Shift+R / Ctrl+Shift+R)
MCP Server & Claude Desktop
This package includes an MCP (Model Context Protocol) server for integration with Claude Desktop. 4 tools available for complete icon workflows.
Quick Setup
Add to your Claude Desktop config:
{
"mcpServers": {
"web-icons": {
"command": "npx",
"args": ["-y", "@entro314labs/web-icons-generator-cli-mcp", "--mcp"]
}
}
}Available Tools
generate_web_icons- Generate icons + manifest from any source imageauto_generate_icons- Zero-config generation (finds app-icon.svg/png)check_icons_status- Audit which icons exist/missingintegrate_icons_html- Automatically add icon tags to HTML files
Usage with Claude
Ask Claude to help with icons:
"Generate web icons for my Next.js project"
"Check if my project has all required icons"
"Create icons from logo.svg and add them to my HTML"
"Add icon tags to my index.html file"
See
See MCP.md for complete documentation.
Development
# Clone repository
git clone https://github.com/entro314-labs/web-icons-generator-cli-mcp.git
cd web-icons-generator-cli-mcp
# Install dependencies
npm install
# Build
npm run build
# Test CLI
npm link
web-icons-generator-cli-mcp test.svg
# Test MCP server
web-icons-generator-cli-mcp --mcp
## License
MIT
## Credits
Built with:
- [sharp](https://sharp.pixelplumbing.com/) ā High-performance image processing
- [commander](https://github.com/tj/commander.js) ā CLI framework
- [ora](https://github.com/sindresorhus/ora) ā Elegant terminal spinners
- [chalk](https://github.com/chalk/chalk) ā Terminal styling
- [prompts](https://github.com/terkelg/prompts) ā Interactive prompts
---
Made with ā¤ļø for modern web developers who want simple, correct icon generation.