@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 +85 -81
- package/dist-bundle/bin/aluy.js +283 -283
- package/dist-bundle/index.js +236 -236
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,110 +5,114 @@
|
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
|
-
<
|
|
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
|
-
|
|
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 #
|
|
25
|
+
aluy onboard # instalador guiado: idioma, provider, modelo
|
|
30
26
|
aluy # abre a sessão
|
|
31
27
|
```
|
|
32
28
|
|
|
33
|
-
O
|
|
34
|
-
|
|
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
|
|
42
|
-
aluy "
|
|
43
|
-
aluy
|
|
44
|
-
aluy --
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
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
|
-
|
|
96
|
+
PRs são bem-vindos. O [CONTRIBUTING.md](CONTRIBUTING.md) tem o essencial:
|
|
99
97
|
|
|
100
98
|
```bash
|
|
101
|
-
|
|
102
|
-
npm
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
118
|
+
[MIT](LICENSE) © Hiperplano
|