Executar comandos locais com segurança
Na aplicação desktop, o assistente pode executar comandos e testes na pasta de trabalho do seu chat. Como isso funciona no chat, leia em Acesso local a ficheiros. Nesta página, define quando isso pode acontecer sem pedir e quão isolados os comandos são executados.
Abrir definições de comandos
Abra no chat o painel Comandos e escolha Definições de comandos para esta pasta. As definições aplicam-se por pasta.
Quando pode o assistente executar um comando?
Escolha um destes três modos:
- Perguntar sempre: você aprova cada comando.
- Comandos de confiança automaticamente: comandos que guardou iniciam sem pedir. Outros comandos continuam a pedir permissão.
- Automaticamente na sandbox: tudo inicia sem pedir, mas num ambiente isolado.
Em cada modo, também valem estas regras:
- Comandos inofensivos iniciam sem cartão:
mkdir,ls,cat,head,tail,wc,grep,find(sem-execou-delete),touch,pwd,treee verificações de versão (--version,-vou-Vdenode,npm,npx,python,pipeaischool-python). Não fazem mais do que as ferramentas de ficheiros integradas já fazem sem pedir. Executam-se na sandbox sem rede e apenas com caminhos dentro da pasta de trabalho, mesmo após seguir links (sem caminhos absolutos,~ou..). Se um link apontar para fora da pasta, aparece um cartão. Para isso, é necessária uma sandbox (macOS) e comandos locais, mas não Permitir execução automática do seu administrador. No painel Comandos, aparece então Automático (comando inofensivo). Também uma lista entre chavetas, comomkdir -p src/{components,utils}, inicia sem cartão: a app converte-a em caminhos separados e valida-os todos. - Cada cartão mostra o comando exato e, em ações online, o endereço exato. Abaixo, em tamanho menor, aparece a explicação do assistente.
- Se a sandbox estiver disponível e o seu administrador permitir execução automática, então um cartão para um comando que corre na sandbox também mostra o botão Da próxima vez automaticamente na sandbox nesta pasta. Isso define a pasta como Automaticamente na sandbox, para que os comandos seguintes iniciem sem cartão. Comandos que precisam de rede pedem mais uma vez, a menos que instalações de pacotes estejam permitidas.
- O primeiro cartão numa pasta que corre na sandbox e não pede rede mostra uma vez Confiar neste projeto. Isso executa o comando, define a pasta como Automaticamente na sandbox e ativa Permitir instalações de pacotes sem pedir. Depois disso, testes e builds como
npm test,npm run buildenode --testiniciam sem cartão, na sandbox sem rede. Comandos que ainda precisem de rede ou que corram fora da sandbox continuam a pedir. Após Executar ou Negar, a pergunta não volta a aparecer nesta pasta; o modo é alterado nas definições de comandos. Se a execução automática estiver desativada, cada cartão indica se o seu administrador ou a política de gestão deste computador o faz.
Guardar comandos de confiança
Num comando, escolha Permitir sempre nesta pasta e depois Exatamente este comando ou Tudo o que comece com isto. Os comandos guardados passam a iniciar sem perguntas. Comandos com caracteres especiais (como ; | > $) pedem sempre permissão.
As regras guardadas ficam nas definições de comandos, em Sempre permitido nesta pasta. Aí também as pode remover.
Sandbox e rede
- Usar sandbox: os comandos só podem escrever nesta pasta. Esta opção vem ativada por defeito no macOS.
- Permitir rede: define se os comandos têm acesso à internet. Esta opção vem desativada por defeito. Sem sandbox, os comandos têm sempre acesso à rede.
Cada cartão de comando mostra se a sandbox e a rede estão ativadas.
Se Permitir rede estiver desativado e o assistente quiser transferir algo, por exemplo com npm install, o cartão de comando pergunta se quer executar exatamente esse comando com rede. Assim, não precisa de ativar a rede para toda a pasta.
No Windows, ainda não há sandbox disponível.
Instalar pacotes
A app inclui o seu próprio Node.js com npm. Assim, comandos como node, npm e npx funcionam mesmo que o Node.js não esteja instalado no seu computador. Se tiver instalado Node.js por sua conta, a app usa essa versão. Exceção: um projeto que inicie o próprio Electron (electron .) precisa de um Node.js instalado por si.
Permitir instalações de pacotes sem pedir
Em Definições de comandos para esta pasta, ative o interruptor Permitir instalações de pacotes sem pedir. As instalações de pacotes com nome iniciam então sem cartão: npm install <nome> e npm install a partir de package.json, pnpm, yarn ou bun com install ou add, e pip install <nome> (também via uv). Executam-se sempre na sandbox, com rede. Outros comandos seguem o modo que escolheu para a pasta.
Estas instalações ainda mostram um cartão:
- iniciadores de projetos como
npm create vite@latestenpx create-…, porque executam o próprio código; pip install .,pip install -r requirements.txt, instalações a partir de outro registo (--registry,-i,--index-url) e pacotes de um endereço git, URL ou caminho.
O interruptor só funciona com uma sandbox (macOS) e se o seu administrador permitir execução automática. Caso contrário, não o pode ativar.
Os pacotes instalados desta forma nunca executam os seus próprios scripts de instalação (o npm corre com --ignore-scripts). Os pacotes Python são instalados apenas como wheels prontas a usar.
Servidores locais e o navegador integrado
O assistente também pode iniciar um servidor de desenvolvimento que fica a correr, como npm run dev para um pequeno projeto React com Vite. Para isso aplicam-se as mesmas regras que para outros comandos: você aprova o comando exato, ou ele inicia através de uma regra guardada ou automaticamente na sandbox. Em vez do tempo máximo de execução, o cartão mostra “Fica a correr como servidor local até o parar.”
O servidor continua a correr depois de o assistente responder. No painel Comandos, o cartão mostra o estado Servidor a correr, com os botões Abrir no navegador e Parar. Podem correr no máximo 4 servidores ao mesmo tempo. Os servidores param quando os parar ou quando fechar a app.
Na sandbox sem rede, um servidor só pode escutar neste computador (localhost). Como o assistente instala pacotes, leia em Instalar pacotes.
Mostrar uma página web simples
Para uma página web normal (um index.html com CSS e JavaScript, sem etapa de build), não é preciso comando. O assistente usa então o servidor web integrado da app:
- A pasta só pode ser vista neste computador, em
http://127.0.0.1com uma porta aleatória. - Ficheiros ocultos, como
.gite.env, nunca são mostrados. - Se um ficheiro mudar, a página recarrega automaticamente.
Para isto não aparece um cartão de aprovação. O servidor aparece no painel Comandos, com Abrir no navegador e Parar, e conta para o máximo de 4 servidores.
Veja o resultado no navegador integrado: o botão Browser (o ícone do globo) à direita na barra superior. O painel abre ao lado do chat, com voltar, avançar, recarregar (parar durante o carregamento), uma barra de endereço e Abrir no seu navegador predefinido.
- O assistente abre o navegador por si para mostrar o resultado de um servidor local. Isso só pode ser feito com endereços locais, como
http://localhost:5173. - Se clicar num link localhost numa resposta, ele abre no navegador integrado. Outros links abrem no seu navegador predefinido.
- Também pode escrever manualmente qualquer endereço web.
- O navegador tem uma sessão própria e separada: aí não está autenticado na AI-School, os sites não recebem permissões como câmara ou microfone e não é possível transferir ficheiros.
- Enquanto um menu ou caixa de diálogo da app estiver aberto, a página fica temporariamente escondida.
Exemplo:
Crie nesta pasta uma pequena app React com Vite, com um contador. Instale as dependências, inicie o servidor de desenvolvimento e mostre o resultado no navegador.
Deixar o assistente ver
Se pedir ao assistente para olhar para a página no navegador integrado, ele lê o endereço, o título, o texto visível, uma captura de ecrã e as últimas mensagens de erro da página. Isso é enviado para o modelo de IA.
- Uma página neste computador (
localhostou127.0.0.1) é vista pelo assistente sem pedir. - Em qualquer outro site, por exemplo uma página onde está autenticado, o assistente mostra primeiro um cartão: “O assistente quer ver onedrive.live.com.” Clique em Permitir ver ou em Negar. Ele pede isto sempre de novo.
- Se a página mudar para outro site depois da sua permissão, o assistente não lê nada.
- Só numa página neste computador é que o assistente clica e escreve sozinho, para testar o que criou. Noutros sites, ele não clica, não escreve nem navega. Não recebe cookies nem palavras-passe.
- No modo offline, o assistente só vê páginas neste computador.
Versões e GitHub
O assistente tem um git integrado. Não precisa de instalar git, nem mesmo no Windows. O assistente pode guardar versões, mostrar o que mudou, criar branches e colocar um projeto online.
- Ações nesta pasta, como guardar uma versão, iniciam sem pedir. Ficheiros que pareçam segredos (como ficheiros
.env, chaves ou tokens no código, incluindo chaves da Google API que começam comAIza) nunca entram numa versão. O assistente avisa se saltar algo. - Ações online (transferir um projeto, obter a versão mais recente, colocar online e criar um repositório GitHub) mostram primeiro um cartão com o endereço exato e os rótulos Integrado na app e Rede ativada. Se o endereço não for github.com ou se um novo repositório for público, o cartão avisa. Ao colocar online, o cartão mostra quais ficheiros serão enviados. Escolha Executar ou Negar.
- Ligar um repositório fora de github.com também pede primeiro permissão.
Como ligar o GitHub e colocar um projeto online, leia em Programar em modo vibe.
No modo offline, os comandos correm sempre na sandbox sem rede. As instalações de pacotes com rede e as ações online do git integrado (transferir, obter, colocar online e GitHub) não funcionam. Guardar versões e mostrar uma página web simples continuam a funcionar.
Definições para administradores
Os administradores podem desativar comandos locais ou execução automática para todos no ambiente. Fazem isso na área de administração em Funcionalidades (ao nível do ambiente), no cartão Aplicação desktop:
- Permitir comandos locais: se estiver desativado, o assistente não consegue executar comandos. As ações online do git integrado também não funcionam. Guardar versões e branches continuam a funcionar: apenas alteram ficheiros na pasta, tal como as ferramentas de ficheiros.
- Permitir execução automática: se estiver desativado, cada comando pede permissão e não pode ativar Permitir instalações de pacotes sem pedir.
- Permitir o Python da app para ficheiros do Office: para modelos, gráficos e análises. Este Python funciona sem internet, escreve apenas na pasta de trabalho e não pode iniciar outros programas. Se nada estiver definido, segue Permitir comandos locais. Sem sandbox (Windows), só existe se os comandos locais estiverem ativados e, nesse caso, pede sempre permissão.