@kinetnode/cliplay
v0.0.4
Published
Pluggable CLI script runner — attach to any project, run with themes
Maintainers
Readme
cliplay
CLI acoplável para qualquer projeto. Lê os scripts do package.json e arquivos .sh, e os exibe em uma interface interativa com temas e navegação por teclado.
Antes
npm run build
npm run dev
bash scripts/deploy.shDepois
cliplay # navega, filtra e roda qualquer scriptInstalação
Global (recomendado)
npm install -g @kinetnode/cliplaySem instalar
npx @kinetnode/cliplayInício rápido
cd meu-projeto
npx @kinetnode/cliplay init # configura o projeto
npx @kinetnode/cliplay # abre o menuO init detecta automaticamente o package.json e arquivos .sh na raiz.
Comandos
| Comando | O que faz |
|---|---|
| cliplay | Abre o menu interativo |
| cliplay init | Configura o projeto. Se já existir config, pergunta antes de recriar |
| cliplay reset | Recria a configuração do zero |
| cliplay list | Lista todos os scripts disponíveis |
| cliplay run <nome> | Roda um script direto, sem abrir o menu |
| cliplay --version / -v | Exibe a versão |
| cliplay --help / -h | Exibe a ajuda |
Navegação (menu interativo)
| Tecla | Ação |
|---|---|
| ↑ ↓ | Navegar entre scripts |
| Enter | Rodar o script selecionado |
| i | Rodar com argumentos extras |
| / | Filtrar scripts pelo nome |
| Esc | Limpar filtro / cancelar input |
| q | Sair |
Modo i — rodar com input
Pressionar i em cima de um script abre um campo de input inline. O que você digitar é concatenado ao comando antes de executar.
❯ npm run build --watch█Útil para passar flags sem criar um script específico.
Configuração
O cliplay init gera um .cliplay.json na raiz do projeto:
{
"theme": "ocean",
"packageManager": "npm",
"sources": {
"package": true,
"shell": false
},
"scripts": {
"exclude": ["prepublishOnly"],
"shellDirs": [".", "scripts"]
},
"labels": {
"dev": "Servidor de desenvolvimento"
},
"descriptions": {
"build": "Compila o projeto"
}
}| Campo | Descrição |
|---|---|
| theme | Tema visual. Opções: default, ocean, forest |
| packageManager | npm, yarn, pnpm ou bun |
| sources.package | Lê scripts do package.json |
| sources.shell | Detecta arquivos .sh |
| scripts.exclude | Scripts do package.json para ignorar |
| scripts.shellDirs | Diretórios onde procurar .sh |
| labels | Nome de exibição customizado por script |
| descriptions | Descrição exibida ao lado do script |
Temas
| Tema | Cor principal |
|---|---|
| default | Roxo |
| ocean | Azul |
| forest | Verde |
Fontes de scripts
O cliplay detecta automaticamente dois tipos de script:
package.json — lê a seção scripts e usa o package manager configurado para rodar (npm run, yarn, pnpm run, bun run).
.sh — detecta arquivos shell nos diretórios configurados em shellDirs. Roda com bash.
Se o projeto tiver ambos, o init pergunta quais habilitar.
Desenvolvimento local
git clone https://github.com/Carlos-iso/cliplay
cd cliplay
npm install
npm run build
npm link # disponível globalmente como `cliplay`Para desenvolver sem rebuild a cada mudança:
npm run dev # roda direto com tsx
npm run dev:init # testa o init
npm run dev:list # testa o listTestes:
npm test # smoke + integração
npm run test:integration # só testes de integraçãoArquitetura
src/
cli.ts entry point
router/
CommandRouter roteamento de argumentos
commands/
InitCommand wizard de configuração
ResetCommand recria config do zero
RunCommand executa um script direto
ListCommand lista scripts no terminal
managers/
ConfigManager leitura e escrita do .cliplay.json
ScriptManager carrega scripts de package.json e .sh
RunManager executa o processo filho
ui/
TUI interface interativa navegável
Selector seletor navegável para o wizard
themes/
default / ocean / forest
types/
index interfaces compartilhadasSem frameworks de UI. Terminal puro com ANSI, readline e chalk.
Licença
MIT
