Aria Icons
340k iconos SVG — navegador, CLI (escribe el código fuente) y MCP para Cursor/Claude.
Servidor MCP alojado
npx add-mcp 'https://icons.leularia.com/api/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Aria Icons
Más de 340 000 iconos SVG: buscables, personalizables y con un gestor de paquetes para tu base de código de iconos.
Sitio web + API + CLI + MCP. Encuentra cualquier icono, escríbelo en el proyecto como código fuente (sin dependencias enormes), migra bibliotecas de iconos mixtas y permite que los agentes de IA usen el mismo motor.
Repositorio: github.com/LeulAria/Aria-Icons
npx -y aria-icons@latest setup
# or
bunx aria-icons@latest setup
# or
curl -fsSL https://icons.leularia.com/install.sh | bash
El nombre del paquete npm es aria-icons (verificado como no utilizado en el registro al momento de agregar la CLI). La CLI es pequeña: se comunica con la API de Aria Icons y solo descarga los iconos que solicitas.
CLI (paquete publicado)
npx -y aria-icons@latest setup
bunx aria-icons@latest setup
curl -fsSL https://icons.leularia.com/install.sh | bash
npm install -g aria-icons
# or
bun add -g aria-icons
| Comando | Propósito |
|---|---|
search <query> | Buscar en todas las colecciones |
get <id> | Imprimir SVG o código fuente del framework |
add <names…> | Escribir archivos de iconos en el repositorio |
migrate --to <set> | Mapear importaciones de paquetes de iconos existentes a una colección |
doctor | Auditar bibliotecas mixtas |
suggest [src/] | Recomendar un conjunto coherente |
init | Escribir .aria-icons.json |
setup | Configurar MCP para Cursor / Claude / VS Code / … |
mcp | Servidor MCP stdio (predeterminado si ejecutas aria-icons sin argumentos) |
Identificadores de iconos: collection:name (lucide:house, tabler:arrow-up, thesvg:github).
Documentación completa de la CLI: packages/cli/README.md.
MCP
Local (stdio) — lo que escribe aria-icons setup:
{
"mcpServers": {
"aria-icons": {
"command": "npx",
"args": ["-y", "aria-icons"]
}
}
}
HTTP remoto — mismo catálogo, alojado con el sitio web:
{
"mcpServers": {
"aria-icons": {
"url": "https://icons.leularia.com/api/mcp"
}
}
}
REST público utilizado por la CLI (cargas útiles pequeñas, sin base de datos de iconos en el paquete):
| Endpoint | |
|---|---|
GET /api/v1/search?q= | Buscar |
GET /api/v1/icon?id=lucide:house | Un icono |
GET /api/v1/icons?ids=a,b | Lote |
GET /api/v1/collections | Colecciones |
GET /api/v1/similar?id= | Similares / otros conjuntos |
GET /api/v1/equivalent?id=&to= | Mapeo entre conjuntos |
Durante el desarrollo local:
ARIA_ICONS_API=http://localhost:3001 bun run cli:dev -- search house
Sitio web (este monorepositorio)
Primero, instala las dependencias:
bun install
Obtén las fuentes de iconos de la marca + Iconify (una sola vez, o cuando quieras actualizar), luego reconstruye el catálogo de búsqueda:
cd apps/web
bun run fetch:thesvg # ~6,500 brand logos (~4s)
bun run fetch:iconify -- --all # 200+ Iconify sets (~80s)
bun run generate-icons # build icons-meta.json for search + MCP
Luego, desde la raíz del repositorio, ejecuta el servidor de desarrollo:
bun run dev
Abre http://localhost:3001 en tu navegador. La página Contribute Icons dentro de la aplicación (/contribute) te guía para agregar un nuevo conjunto.
Fuentes de iconos
Los iconos provienen de tres backends de almacenamiento, todos indexados en un solo catálogo:
| Fuente | Almacenamiento | Obtención |
|---|---|---|
| Conjuntos incluidos (Lucide, Tabler, Heroicons, …) | un JSON por conjunto en apps/web/icons/vendored/ | confirmado en el repositorio |
| Logotipos de marca theSVG (más de 6500 marcas, variantes) | apps/web/icons/thesvg.json | bun run fetch:thesvg (empaquetado automático) |
| Colecciones de Iconify (más de 200 conjuntos) | un JSON por conjunto en apps/web/icons/iconify/ | bun run fetch:iconify (agrega -- --all para cada conjunto) |
Después de obtener, reconstruye el catálogo de búsqueda:
cd apps/web
bun run generate-icons
Esto escribe public/icons-meta.json (índice de búsqueda del navegador + MCP con nombres, etiquetas, alias y categorías) y icons-name.json.
Contribuir con iconos
Cada conjunto de iconos aquí fue contribuido o curado por la comunidad: siempre son bienvenidos nuevos conjuntos y mejores metadatos. La guía dentro de la aplicación en /contribute te guía en el proceso, y la versión corta es:
- Haz un fork de LeulAria/Aria-Icons y clona tu fork.
- Agrega SVGs en
apps/web/icons/<your-set-name>/(nombres de archivo en minúsculas y con guiones: el nombre del archivo se convierte en el nombre del icono). - Registra el conjunto en
apps/web/src/lib/icon-sets.ts(id, etiqueta, página de inicio y si es de estilolineosolid). - Empaqueta y reconstruye con
bun run pack:icons -- --delete && bun run generate-iconsdentro deapps/web. - Vista previa con
bun run dev: revisa la barra lateral, el renderizado de la cuadrícula y la búsqueda. - Abre una solicitud de extracción contra LeulAria/Aria-Icons mencionando el recuento de iconos, la fuente y la licencia.
Otras formas de contribuir:
- Iconos de marca — contribuye upstream a theSVG, luego actualiza con
bun run fetch:thesvg. - Conjuntos de Iconify — obtén colecciones adicionales con
bun run fetch:iconify -- --sets <prefix>. - Metadatos — mejores etiquetas/alias hacen que la búsqueda sea más inteligente; las solicitudes de extracción de metadatos son tan valiosas como los nuevos iconos.
Solo envía iconos que tengas derecho a compartir e incluye la licencia en tu solicitud de extracción (MIT, CC0 o licencias permisivas similares preferidas).
Estructura del proyecto
aria-icons/
├── apps/
│ └── web/ # Next.js app, catalog, /api/v1, HTTP MCP
├── packages/
│ ├── cli/ # published npm package `aria-icons`
│ ├── api/ # oRPC layer
│ └── config/
Ejecutar, compilar, versionar, publicar
# Install
bun install
# Website
bun run dev:web # http://localhost:3001
bun run build # turbo: web + cli
# CLI against production API
bun run cli:dev -- search house
bun run cli:dev -- get lucide:house
bun run cli:dev -- doctor
# CLI against local website
ARIA_ICONS_API=http://localhost:3001 bun run cli:dev -- search house
# Tests + types
bun run cli:test
bun run check-types
# Version the CLI (bumpp: commit, tag vX.Y.Z, push)
bun run cli:release
# GitHub Actions then publishes packages/cli to npm on tag v*
# Requires repo secret NPM_TOKEN
Publicación manual en npm:
cd packages/cli
bun run build
npm publish --access public
Pre-lanzamiento:
cd packages/cli
bunx bumpp prerelease --preid beta --commit --tag --push
# tag like v0.1.1-beta.0 publishes with npm tag `beta`
El despliegue del sitio web no cambia (Vercel / tu host actual para apps/web). Después del despliegue, /api/v1/* y /api/mcp son lo que usan la CLI y el MCP remoto.
Scripts disponibles
bun run dev: Iniciar todas las aplicaciones en modo de desarrollobun run build: Compilar todas las aplicacionesbun run check-types: Verificar los tipos de TypeScript en todas las aplicacionesbun run cli:dev: Ejecutar la CLI desde el código fuentebun run cli:build: Empaquetar la CLI para npmbun run cli:release: Versionar, etiquetar y enviar la CLI
Dentro de apps/web:
bun run fetch:thesvg: Obtener/actualizar los iconos de marca theSVG (empaqueta enicons/thesvg.json)bun run fetch:iconify: Obtener conjuntos de Iconify (-- --sets a,b,-- --all)bun run pack:icons: Consolidar carpetas SVG sueltas en un JSON por conjunto (-- --deleteelimina las fuentes)bun run generate-icons: Reconstruir el catálogo de búsqueda de iconos
Licencia
MIT © Leul Aria