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

image

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
ComandoPropó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
doctorAuditar bibliotecas mixtas
suggest [src/]Recomendar un conjunto coherente
initEscribir .aria-icons.json
setupConfigurar MCP para Cursor / Claude / VS Code / …
mcpServidor 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:houseUn icono
GET /api/v1/icons?ids=a,bLote
GET /api/v1/collectionsColecciones
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:

FuenteAlmacenamientoObtenció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.jsonbun 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:

  1. Haz un fork de LeulAria/Aria-Icons y clona tu fork.
  2. 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).
  3. Registra el conjunto en apps/web/src/lib/icon-sets.ts (id, etiqueta, página de inicio y si es de estilo line o solid).
  4. Empaqueta y reconstruye con bun run pack:icons -- --delete && bun run generate-icons dentro de apps/web.
  5. Vista previa con bun run dev: revisa la barra lateral, el renderizado de la cuadrícula y la búsqueda.
  6. 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 desarrollo
  • bun run build: Compilar todas las aplicaciones
  • bun run check-types: Verificar los tipos de TypeScript en todas las aplicaciones
  • bun run cli:dev: Ejecutar la CLI desde el código fuente
  • bun run cli:build: Empaquetar la CLI para npm
  • bun 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 en icons/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 (-- --delete elimina las fuentes)
  • bun run generate-icons: Reconstruir el catálogo de búsqueda de iconos

Licencia

MIT © Leul Aria