@hiperplano/aluy-cli 1.0.0-rc.181 → 1.0.0-rc.183

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,110 +5,114 @@
5
5
  </picture>
6
6
  </p>
7
7
 
8
- <h1 align="center">Aluy CLI</h1>
8
+ <p align="center">
9
+ <b>Um agente de terminal que roda na sua máquina, com a sua chave.</b><br>
10
+ Sem intermediário, sem metering, sem mandar o seu código para o servidor de ninguém.
11
+ </p>
9
12
 
10
13
  <p align="center">
11
- Um agente de terminal que roda na <b>sua máquina</b>, com o <b>seu próprio provider de LLM</b>.
14
+ <a href="https://www.npmjs.com/package/@hiperplano/aluy-cli"><img alt="npm" src="https://img.shields.io/npm/v/@hiperplano/aluy-cli?color=%23cc3534&label=npm"></a>
15
+ <a href="LICENSE"><img alt="Licença MIT" src="https://img.shields.io/badge/licen%C3%A7a-MIT-blue"></a>
16
+ <a href="https://github.com/hiperplano/aluy-cli/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/hiperplano/aluy-cli/actions/workflows/ci.yml/badge.svg?branch=main"></a>
17
+ <img alt="Node 20+" src="https://img.shields.io/node/v/@hiperplano/aluy-cli">
18
+ <img alt="Linux · macOS · Windows" src="https://img.shields.io/badge/-Linux%20%C2%B7%20macOS%20%C2%B7%20Windows-informational">
12
19
  </p>
13
20
 
14
21
  ---
15
22
 
16
- O **Aluy CLI** é um agente de terminal: ele lê e edita arquivos, executa
17
- comandos, busca no seu código e conduz seu próprio **loop de ferramentas** — tudo
18
- numa TUI rica, com uma **engine de permissão** onde todo efeito passa por uma
19
- catraca antes de acontecer.
20
-
21
- Você usa o **seu próprio modelo** (BYO): qualquer provider compatível com a API da
22
- OpenAI, com a sua própria credencial — direto, sem intermediário e sem metering.
23
- _(Por enquanto o aluy roda só local, com a sua chave.)_
24
-
25
- ## Instalação
26
-
27
23
  ```bash
28
24
  npm install -g @hiperplano/aluy-cli
29
- aluy onboard # configura idioma, provider, modelo e (opcional) os complementos
25
+ aluy onboard # instalador guiado: idioma, provider, modelo
30
26
  aluy # abre a sessão
31
27
  ```
32
28
 
33
- O `aluy onboard` é o instalador guiado: escolhe o idioma, conecta o seu provider
34
- (faz um teste de conectividade real antes de prosseguir), e oferece os complementos
35
- opcionais. Funciona em **Linux, macOS e Windows** — o terminal recomendado é o
36
- [WezTerm](https://wezterm.org), mas qualquer terminal moderno serve.
37
-
38
- ## Uso
29
+ O **Aluy CLI** lê e edita arquivos, executa comandos, busca no seu código e conduz
30
+ o próprio loop de ferramentas numa TUI rica. Você aponta o objetivo; ele trabalha.
39
31
 
40
32
  ```bash
41
- aluy # sessão interativa (TUI)
42
- aluy "refatore o módulo X" # dá um objetivo direto e acompanha o agente trabalhar
43
- aluy -p "liste os TODOs" # modo headless (one-shot), ideal p/ scripts/CI
44
- aluy --resume <id|nome> # retoma uma conversa anterior (id ao sair, ou o nome do /rename)
45
- aluy --continue # retoma a sessão mais recente deste diretório
33
+ aluy "migre os testes de jest para vitest" # um objetivo, e acompanhe
34
+ aluy -p "liste os TODOs" --output-format json # headless, para script e CI
35
+ aluy --plan "como eu quebraria esse módulo?" # só lê e analisa, zero efeito
36
+ aluy --continue # retoma de onde parou
46
37
  ```
47
38
 
48
- Dentro da sessão, **slash-commands** controlam tudo sem sair do fluxo:
49
-
50
- | Comando | O que faz |
51
- | --------------------------------------------- | -------------------------------------------------- |
52
- | `/model` · `/provider` · `/effort` | troca modelo / provider / esforço de raciocínio |
53
- | `/init` | cria o `ALUY.md` + a estrutura `.aluy/` do projeto |
54
- | `/mcp` · `/agents` · `/skills` · `/workflows` | gerencia MCP, sub-agentes, skills e workflows |
55
- | `/rooms` | salas de conversa entre agentes (multi-agente) |
56
- | `/rename` · `/theme` · `/lang` | nome+cor da sessão, tema, idioma |
57
- | `/memory` · `/compact` · `/history` | memória, compactação de contexto, histórico |
58
-
59
- ## Como funciona
60
-
61
- - **Agente + permissão** — o loop de ferramentas (ler/editar/rodar/buscar) passa por
62
- um ponto único de interceptação: nada com efeito acontece sem a catraca liberar
63
- (ou você aprovar). O modo `--yolo` dispensa as confirmações por sua conta e risco.
64
- - **BYO provider** — `--backend local` fala direto com o provider (API key ou OAuth).
65
- A credencial fica **só no keychain do SO** (macOS Keychain · Windows Credential
66
- Manager · Linux Secret Service) — nunca em arquivo, `.env` ou log.
67
- - **MCP** — conecta servers MCP (`~/.aluy/mcp.json` global e `.mcp.json` do projeto),
68
- compatível com o ecossistema; o onboard ainda oferece pré-instalar alguns (Playwright,
69
- Filesystem, Memory, …).
70
- - **Complementos opcionais** (modo turbo) — memória persistente, modelos locais via
71
- Ollama e gestão de contexto, instaláveis no onboard ou depois com `aluy bootstrap`.
72
- Guia completo (instalação, problemas comuns, instalação manual): [docs/turbo.md](docs/turbo.md).
73
-
74
- ## Configuração
39
+ ## Por que este, e não outro
40
+
41
+ **A chave é sua, e o caminho é direto.** Nove providers no catálogo — Anthropic,
42
+ OpenAI, OpenRouter, Google, DeepSeek, Groq, Mistral, xAI e Ollama — ou qualquer
43
+ endpoint compatível com a API da OpenAI. Não há servidor nosso no meio: o seu
44
+ código e o seu prompt vão do seu terminal para o provider que **você** escolheu.
45
+ A credencial nunca fica em claro — vai para o keychain do SO ou, onde ele não
46
+ existe, para um cofre cifrado que não funciona em outra máquina.
47
+
48
+ **Uma catraca, e só uma.** Todo tool-call passa por um ponto único de
49
+ interceptação antes de virar efeito, com negação por padrão. Não é uma convenção:
50
+ é uma fronteira travada no lint e coberta por teste, e a engine que a hospeda não
51
+ pode nem importar a TUI. Quando você quiser velocidade em vez de perguntas, o
52
+ `--yolo` existe; quando quiser o contrário, o `--plan` deixa tudo read-only.
53
+
54
+ **O trabalho continua sem você.** Um serviço é um diretório com um `service.md`:
55
+ horário, orçamento, autonomia e canal. Ele acorda sozinho, abre um turno, respeita
56
+ o teto de tokens — e, quando precisa de uma decisão que não é dele, **pergunta pelo
57
+ Telegram e espera**, em vez de chutar. Você responde do celular e ele retoma.
58
+
59
+ **Fala com o resto do ecossistema.** Servers MCP (globais e por projeto), sub-agentes
60
+ em `.md`, skills, workflows, hooks e plugins. E ele lê o `AGENTS.md` e o `CLAUDE.md`
61
+ do seu repositório junto com o `ALUY.md` — eles compõem, não competem, então adotar
62
+ o aluy não obriga a reescrever o que você já tem.
63
+
64
+ ## Documentação
65
+
66
+ | | |
67
+ | --- | --- |
68
+ | [Comandos](docs/comandos.md) | subcomandos, flags e os 46 slash-commands |
69
+ | [Configuração](docs/configuracao.md) | `~/.aluy/`, precedência, hooks, arquivos de projeto |
70
+ | [Serviços](docs/comandos.md#serviços) | o `service.md` e o runner contínuo |
71
+ | [MCP](docs/mcp.md) | conectar servers, e o que isso implica |
72
+ | [Modo turbo](docs/turbo.md) | memória persistente, Ollama, gestão de contexto |
73
+ | [Compatibilidade](docs/config-compat.md) | conviver com a config de outros agentes |
74
+
75
+ `aluy --help` traz tudo isso no terminal, e `aluy doctor` diz o que está quebrado
76
+ e como consertar.
77
+
78
+ ## Segurança
79
+
80
+ O aluy roda **na sua máquina, com os seus privilégios**. Três coisas que vale saber
81
+ antes de usar:
82
+
83
+ - Um **server MCP** de terceiro roda com os seus privilégios e **sem sandbox** — ele
84
+ pode ler o seu filesystem. Plugue só os que você confia.
85
+ - O **`--yolo`** aprova tudo automaticamente. É útil e é perigoso; a escolha é sua.
86
+ - Credencial **nunca** vai para arquivo em claro, log ou `.env`, e o `gitleaks` roda
87
+ na CI para garantir que nenhuma vaze para o repositório.
88
+
89
+ Encontrou uma vulnerabilidade? **Não abra issue pública** — use o
90
+ [canal privado](https://github.com/hiperplano/aluy-cli/security/advisories/new).
91
+ O que conta como vulnerabilidade aqui (e o que não conta) está em
92
+ [SECURITY.md](SECURITY.md).
75
93
 
76
- Tudo vive em `~/.aluy/`:
77
-
78
- | Arquivo | Conteúdo |
79
- | ---------------- | -------------------------------------------------------------- |
80
- | `config.json` | preferências (idioma, tema, provider/modelo, perfil, limites…) |
81
- | `providers.json` | seus providers BYO (OpenAI-compatíveis) |
82
- | `mcp.json` | servers MCP globais |
83
-
84
- Variáveis `ALUY_*` e flags de CLI sobrescrevem (precedência **flag > env > config > default**).
85
- No **projeto**, o `ALUY.md` dá as instruções ao agente e `.aluy/` guarda agents, workflows,
86
- commands e skills.
87
-
88
- ## Monorepo
89
-
90
- | Pacote | Papel |
91
- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
92
- | **`@hiperplano/aluy-cli-core`** | Engine **portável** do agente (loop · tools · permissão). Sem Ink, sem I/O de terminal. Hospeda o ponto único de interceptação de tool-calls. |
93
- | **`@hiperplano/aluy-cli`** | TUI (**Ink**) + binário **`aluy`** + wiring. Consome `@hiperplano/aluy-cli-core`. |
94
-
95
- Lema: **core modular, entrega monolítica**. A fronteira `core × TUI` é explícita e
96
- testada (o core não importa Ink).
94
+ ## Contribuir
97
95
 
98
- ### Desenvolvimento
96
+ PRs são bem-vindos. O [CONTRIBUTING.md](CONTRIBUTING.md) tem o essencial:
99
97
 
100
98
  ```bash
101
- npm install
102
- npm run build # tsc -b (cli-core → cli)
103
- npm run lint
99
+ git clone https://github.com/hiperplano/aluy-cli && cd aluy-cli
100
+ npm install && npm run build
104
101
  npm test
105
- node packages/cli/dist/bin/aluy.js --help
106
102
  ```
107
103
 
108
- ## Contribuir
104
+ Duas regras que não relaxamos: **a CI é honesta** (nada de `|| true` ou
105
+ `continue-on-error` — gate vermelho bloqueia o merge) e **a fronteira do core é
106
+ real** (`@hiperplano/aluy-cli-core` não importa Ink nem faz I/O de terminal,
107
+ travado no eslint e em teste).
108
+
109
+ O histórico de cada versão está no [CHANGELOG.md](CHANGELOG.md).
110
+
111
+ ## Estado
109
112
 
110
- Ver [`CONTRIBUTING.md`](CONTRIBUTING.md).
113
+ `1.0.0-rc` — em uso diário, com release frequente. A superfície de comandos está
114
+ estável; o que ainda muda vem anotado no CHANGELOG a cada rc.
111
115
 
112
116
  ## Licença
113
117
 
114
- MIT — ver [`LICENSE`](LICENSE).
118
+ [MIT](LICENSE) © Hiperplano