Aria Icons

340k ícones SVG — navegador, CLI (grava o código-fonte) e MCP para Cursor/Claude.

Servidor MCP hospedado

npx add-mcp 'https://icons.leularia.com/api/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

image

Aria Icons

Mais de 340.000 ícones SVG — pesquisáveis, personalizáveis e um gerenciador de pacotes para sua base de código de ícones.

Site + API + CLI + MCP. Encontre qualquer ícone, escreva-o no projeto como código-fonte (sem dependência gigante), migre bibliotecas de ícones mistas e deixe agentes de IA usarem o mesmo mecanismo.

Repositório: 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

O nome do pacote npm é aria-icons (verificado como não utilizado no registro no momento da adição da CLI). A CLI é pequena: ela conversa com a API do Aria Icons e baixa apenas os ícones que você solicitar.

CLI (pacote 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
ComandoFinalidade
search <query>Pesquisar todas as coleções
get <id>Imprimir código-fonte SVG ou de framework
add <names…>Escrever arquivos de ícones no repositório
migrate --to <set>Mapear importações de pacotes de ícones existentes para uma coleção
doctorAuditar bibliotecas mistas
suggest [src/]Recomendar um conjunto consistente
initEscrever .aria-icons.json
setupConfigurar MCP para Cursor / Claude / VS Code / …
mcpServidor MCP stdio (padrão se você executar aria-icons sem argumentos)

IDs de ícones: collection:name (lucide:house, tabler:arrow-up, thesvg:github).

Documentação completa da CLI: packages/cli/README.md.

MCP

Local (stdio) — o que aria-icons setup escreve:

{
  "mcpServers": {
    "aria-icons": {
      "command": "npx",
      "args": ["-y", "aria-icons"]
    }
  }
}

HTTP remoto — mesmo catálogo, hospedado com o site:

{
  "mcpServers": {
    "aria-icons": {
      "url": "https://icons.leularia.com/api/mcp"
    }
  }
}

REST público usado pela CLI (cargas pequenas, sem banco de dados de ícones no pacote):

Endpoint
GET /api/v1/search?q=Pesquisar
GET /api/v1/icon?id=lucide:houseUm ícone
GET /api/v1/icons?ids=a,bLote
GET /api/v1/collectionsColeções
GET /api/v1/similar?id=Semelhantes / outros conjuntos
GET /api/v1/equivalent?id=&to=Mapeamento entre conjuntos

Durante o desenvolvimento local:

ARIA_ICONS_API=http://localhost:3001 bun run cli:dev -- search house

Site (este monorepo)

Primeiro, instale as dependências:

bun install

Busque as fontes de ícones da marca + Iconify (uma vez, ou sempre que quiser atualizar) e depois reconstrua o catálogo de pesquisa:

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

Em seguida, a partir da raiz do repositório, execute o servidor de desenvolvimento:

bun run dev

Abra http://localhost:3001 no seu navegador. A página Contribute Icons (Contribuir com Ícones) no aplicativo (/contribute) orienta sobre como adicionar um novo conjunto.

Fontes de Ícones

Os ícones vêm de três backends de armazenamento, todos indexados em um único catálogo:

FonteArmazenamentoBusca
Conjuntos vendidos (Lucide, Tabler, Heroicons, …)um JSON por conjunto em apps/web/icons/vendored/commitado no repositório
Logotipos de marca theSVG (mais de 6.500 marcas, variantes)apps/web/icons/thesvg.jsonbun run fetch:thesvg (empacota automaticamente)
Coleções Iconify (mais de 200 conjuntos)um JSON por conjunto em apps/web/icons/iconify/bun run fetch:iconify (adicione -- --all para cada conjunto)

Após a busca, reconstrua o catálogo de pesquisa:

cd apps/web
bun run generate-icons

Isso grava public/icons-meta.json (índice de pesquisa do navegador + MCP com nomes, tags, aliases e categorias) e icons-name.json.

Contribuindo com Ícones

Cada conjunto de ícones aqui foi contribuído ou curado pela comunidade — novos conjuntos e melhores metadados são sempre bem-vindos. O guia no aplicativo em /contribute orienta sobre o processo, e a versão resumida é:

  1. Faça um fork de LeulAria/Aria-Icons e clone seu fork.
  2. Adicione SVGs em apps/web/icons/<your-set-name>/ (nomes de arquivo em minúsculas, com hífens — o nome do arquivo vira o nome do ícone).
  3. Registre o conjunto em apps/web/src/lib/icon-sets.ts (id, rótulo, página inicial e se é estilo line ou solid).
  4. Empacote e reconstrua com bun run pack:icons -- --delete && bun run generate-icons dentro de apps/web.
  5. Visualize com bun run dev — verifique a barra lateral, a renderização da grade e a pesquisa.
  6. Abra um pull request contra LeulAria/Aria-Icons mencionando a contagem de ícones, a fonte e a licença.

Outras formas de contribuir:

  • Ícones de marca — contribua upstream para theSVG e depois atualize com bun run fetch:thesvg.
  • Conjuntos Iconify — puxe coleções adicionais com bun run fetch:iconify -- --sets <prefix>.
  • Metadados — melhores tags/aliases tornam a pesquisa mais inteligente; PRs de metadados são tão valiosos quanto novos ícones.

Envie apenas ícones que você tem o direito de compartilhar e inclua a licença no seu PR (MIT, CC0 ou licenças igualmente permissivas são preferidas).

Estrutura do Projeto

aria-icons/
├── apps/
│   └── web/               # Next.js app, catalog, /api/v1, HTTP MCP
├── packages/
│   ├── cli/               # published npm package `aria-icons`
│   ├── api/               # oRPC layer
│   └── config/

Executar, 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

Publicação manual no npm:

cd packages/cli
bun run build
npm publish --access public

Pré-lançamento:

cd packages/cli
bunx bumpp prerelease --preid beta --commit --tag --push
# tag like v0.1.1-beta.0 publishes with npm tag `beta`

A implantação do site permanece inalterada (Vercel / seu host atual para apps/web). Após a implantação, /api/v1/* e /api/mcp são o que a CLI e o MCP remoto usam.

Scripts Disponíveis

  • bun run dev: Iniciar todos os aplicativos em modo de desenvolvimento
  • bun run build: Compilar todos os aplicativos
  • bun run check-types: Verificar tipos TypeScript em todos os aplicativos
  • bun run cli:dev: Executar a CLI a partir do código-fonte
  • bun run cli:build: Empacotar a CLI para npm
  • bun run cli:release: Versionar, marcar e enviar a CLI

Dentro de apps/web:

  • bun run fetch:thesvg: Buscar/atualizar ícones de marca theSVG (empacota em icons/thesvg.json)
  • bun run fetch:iconify: Buscar conjuntos Iconify (-- --sets a,b, -- --all)
  • bun run pack:icons: Consolidar pastas SVG soltas em um JSON por conjunto (-- --delete remove fontes)
  • bun run generate-icons: Reconstruir o catálogo de pesquisa de ícones

Licença

MIT © Leul Aria