Um ponto decide tudo.
O Aluy CLI é um processo no seu terminal. Ele lê e edita arquivos, roda comandos e guarda a sessão, a memória e a sua chave na sua máquina. Entre o modelo propor uma ação e a ação acontecer existe exatamente uma função — e não há caminho que desvie dela.
O que acontece entre o enter e a resposta.
O !comando que você digita no prompt não é atalho: ele monta a mesma proposta de ferramenta e passa pela mesma decisão. O mesmo vale para os sub-agentes, para os hooks e para o /init.
O que ela deixa passar, e o que ela trava.
A regra base é negar. O que passa está escrito em código, não no prompt — então não há texto que convença o modelo do contrário.
passa direto
Só o que lê e não muda nada: abrir um arquivo, procurar um texto, procurar um arquivo pelo nome e listar uma pasta. Mais gravar uma memória e falar numa sala.
sempre pergunta
Rodar comando, editar e escrever arquivo. E qualquer ferramenta que ela não conheça — incluindo toda ferramenta que vier de um servidor MCP.
nega, não pergunta
Ler ~/.ssh, ~/.aws, ~/.gnupg, chaves privadas e certificados. E a própria pasta ~/.aluy/ — nem para ler, nem para escrever.
/permissions só consegue mexer em duas ferramentas de leitura — o resto aparece travado.Com o --yolo tudo é aprovado antes mesmo de chegar nessas checagens. Sob ele o agente alcança a própria pasta ~/.aluy/ — a configuração de MCP, os hooks, o diário de desfazer e o cofre da credencial. É uma decisão deliberada do modo, não um furo. Fora do --yolo, essas regras valem sempre.
Duas metades, com uma fronteira que a esteira de testes cobra.
ALUY_AUTO_UPDATE=0.Onde cada coisa mora.
Tudo em ~/.aluy/, com permissão só para o seu usuário — nenhuma outra conta da máquina entra lá. Não existe banco de dados em lugar nenhum: o índice da memória é um arquivo Markdown que você pode abrir e editar.
sessão e transcrição
Um JSON por sessão, com os blocos da conversa e o que você rodou.
diário de desfazer
O estado anterior de cada arquivo, cifrado. A chave é da sessão e morre com o processo — o desfazer não atravessa um reinício.
memória
Markdown: um global e um por projeto. Um fato por linha, editável à mão.
credencial
No cofre do sistema, ou num arquivo cifrado onde não houver — com a chave derivada da máquina, nunca escrita.
configuração
Tema, modelo, por onde a chamada sai, perfil e serviços. Mais os hooks e os servidores MCP, cada um no seu arquivo.
o que você escreve
Agentes, comandos, skills, workflows e plugins: arquivos .md que você versiona se quiser.