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
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
| Comando | Finalidade |
|---|---|
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 |
doctor | Auditar bibliotecas mistas |
suggest [src/] | Recomendar um conjunto consistente |
init | Escrever .aria-icons.json |
setup | Configurar MCP para Cursor / Claude / VS Code / … |
mcp | Servidor 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:house | Um ícone |
GET /api/v1/icons?ids=a,b | Lote |
GET /api/v1/collections | Coleçõ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:
| Fonte | Armazenamento | Busca |
|---|---|---|
| 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.json | bun 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 é:
- Faça um fork de LeulAria/Aria-Icons e clone seu fork.
- 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). - Registre o conjunto em
apps/web/src/lib/icon-sets.ts(id, rótulo, página inicial e se é estilolineousolid). - Empacote e reconstrua com
bun run pack:icons -- --delete && bun run generate-iconsdentro deapps/web. - Visualize com
bun run dev— verifique a barra lateral, a renderização da grade e a pesquisa. - 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 desenvolvimentobun run build: Compilar todos os aplicativosbun run check-types: Verificar tipos TypeScript em todos os aplicativosbun run cli:dev: Executar a CLI a partir do código-fontebun run cli:build: Empacotar a CLI para npmbun run cli:release: Versionar, marcar e enviar a CLI
Dentro de apps/web:
bun run fetch:thesvg: Buscar/atualizar ícones de marca theSVG (empacota emicons/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 (-- --deleteremove fontes)bun run generate-icons: Reconstruir o catálogo de pesquisa de ícones
Licença
MIT © Leul Aria