rook-cli
v1.3.2
Published
CLI para instalar componentes Shopify
Readme
🚀 ROOK CLI — Shopify Component Tool
CLI para instalar componentes Shopify de um repositório centralizado no GitHub.
Instalação
# Instalar dependências
npm install
# Linkar globalmente (para usar o comando "rook" no terminal)
npm linkUso
# Abre o menu interativo
rook
# Comando direto
rook addCaso tenha algum repositorio privado, você pode configurar o token de acesso:
rook config1. Configurar o token (uma única vez)
node bin/rook.js config2. Usar normalmente — autenticação é automática
node bin/rook.js addModo Headless (Automação / CI)
Para rodar os comandos sem interação (útil para scripts ou MCP), utilize as flags adicionais:
# Adicionar componente/kit diretamente e sobrescrever conflitos
rook add --type componente --name whatsapp-float --force
# Gerar scaffold de arquivos Liquid diretamente
rook generate hero-banner --type section --yesIntegração com IA (MCP Server)
O Rook CLI expõe todas as suas funcionalidades como ferramentas (tools) através do protocolo Model Context Protocol (MCP). Isso permite que Inteligências Artificiais como Claude Desktop e Cursor instalem componentes e gerem arquivos no seu projeto automaticamente.
Existem duas formas de configurar o servidor MCP dependendo de como você instalou o pacote:
Opção 1: Usando npx (Recomendada)
Ideal se o pacote for instalado remotamente via NPM. O npx garante que a IA sempre fará o bypass do PATH sem problemas:
Em claude_desktop_config.json ou .cursor/mcp.json:
{
"mcpServers": {
"rook-cli": {
"command": "npx",
"args": ["-y", "-q", "--package", "rook-cli", "rook-mcp"]
}
}
}Opção 2: Instalando globalmente (npm install -g rook-cli)
Se você instalou o CLI como pacote global no seu sistema, o comando rook-mcp estará disponível nativamente.
{
"mcpServers": {
"rook-cli": {
"command": "rook-mcp",
"args": []
}
}
}Estrutura do Projeto
src/
├── app.js # Classe principal (Composition Root)
├── commands/
│ └── AddCommand.js # Comando "add" — orquestra o fluxo
├── ui/
│ └── PromptUI.js # Menus interativos (Inquirer)
├── services/
│ ├── GitHubService.js # Comunicação com GitHub API
│ └── DownloadService.js # Download via tiged
├── filesystem/
│ ├── FileMapper.js # Mapeamento de diretórios Shopify
│ └── ConflictResolver.js # Tratamento de conflitos
├── config/
│ └── constants.js # Constantes globais
└── utils/
└── logger.js # Logger com feedback visualTecnologias
- Node.js (ESM) — Ambiente de execução
- Commander — Parser de comandos CLI
- Inquirer — Menus interativos
- tiged — Download eficiente sem
.git - fs-extra — Manipulação de arquivos
- picocolors — Estilo visual no terminal
