Vai al contenuto principale

Eseguire in modo sicuro i comandi locali

Nell’app desktop, l’assistente può eseguire comandi e test nella cartella di lavoro della tua chat. Per capire come funziona nella chat, leggi Accesso ai file locali. In questa pagina imposti quando può farlo senza chiedere e quanto vengono isolati i comandi.

Aprire le impostazioni dei comandi​

In una chat, apri il pannello Comandi e scegli Impostazioni comandi per questa cartella. Le impostazioni valgono per ogni cartella.

Quando può l’assistente eseguire un comando?​

Scegli una di queste tre modalità:

  • Chiedi sempre: approvi ogni comando.
  • Comandi fidati automaticamente: i comandi che hai salvato partono senza chiedere. Gli altri comandi richiedono comunque il permesso.
  • Automaticamente in sandbox: tutto parte senza chiedere, ma in un ambiente isolato.

In ogni modalità valgono anche queste regole:

  • I comandi innocui partono senza carta: mkdir, ls, cat, head, tail, wc, grep, find (senza -exec o -delete), touch, pwd, tree e i controlli di versione (--version, -v o -V di node, npm, npx, python, pip e aischool-python). Non fanno nulla di più di quanto facciano già gli strumenti file integrati senza chiedere. Eseguono nella sandbox senza rete e solo con percorsi all’interno della cartella di lavoro, anche dopo aver seguito i link (nessun percorso assoluto, ~ o ..). Se un link punta fuori dalla cartella, compare comunque una carta. Per questo servono una sandbox (macOS) e comandi locali, ma non Consenti esecuzione automatica da parte del tuo amministratore. Nel pannello Comandi appare allora Automatico (comando innocuo). Anche un elenco tra parentesi graffe, come mkdir -p src/{components,utils}, parte senza carta: l’app lo espande in percorsi separati e li controlla tutti.
  • Ogni carta mostra il comando esatto e, per le azioni online, l’indirizzo esatto. Sotto compare in piccolo la spiegazione dell’assistente.
  • Se la sandbox è disponibile e il tuo amministratore consente l’esecuzione automatica, una carta per un comando eseguito nella sandbox mostra anche il pulsante Da ora in poi automaticamente nella sandbox in questa cartella. Questo imposta la cartella su Automaticamente in sandbox, così i comandi successivi partono senza carta. I comandi che richiedono rete chiedono un’altra volta, a meno che le installazioni di pacchetti siano consentite.
  • La prima carta in una cartella che esegue nella sandbox e non richiede rete mostra una volta sola Fidati di questo progetto. Questa esegue il comando, imposta la cartella su Automaticamente in sandbox e attiva Consenti installazioni di pacchetti senza chiedere. Dopo di ciò, test e build come npm test, npm run build e node --test partono senza carta, nella sandbox senza rete. I comandi che richiedono ulteriore rete o che eseguono fuori dalla sandbox continuano a chiedere. Dopo Esegui o Rifiuta, la domanda non ricompare in questa cartella; la modalità la cambi nelle impostazioni dei comandi. Se l’esecuzione automatica è disattivata, ogni carta indica se lo fa il tuo amministratore o il criterio di gestione di questo computer.

Salvare comandi fidati​

Per un comando, scegli Consenti sempre in questa cartella e poi Esattamente questo comando oppure Tutto ciò che inizia con questo. I comandi salvati partiranno d’ora in poi senza chiedere. I comandi con caratteri speciali (come ; | > $) chiedono sempre il permesso.

Le regole salvate si trovano nelle impostazioni dei comandi sotto Sempre consentito in questa cartella. Da lì puoi anche rimuoverle.

Sandbox e rete​

  • Usa sandbox: i comandi possono scrivere solo in questa cartella. Questa opzione è attiva per impostazione predefinita su macOS.
  • Consenti rete: determina se i comandi hanno accesso a internet. Questa opzione è disattivata per impostazione predefinita. Senza sandbox, i comandi hanno sempre accesso alla rete.

Ogni carta comando mostra se sandbox e rete sono attivi.

Se Consenti rete è disattivato e l’assistente vuole scaricare qualcosa, per esempio con npm install, la carta comando chiede se vuoi eseguire esattamente quel comando con la rete. Non devi quindi attivare la rete per tutta la cartella.

Windows

Su Windows la sandbox non è ancora disponibile.

Installare pacchetti​

L’app include una propria Node.js con npm. Comandi come node, npm e npx funzionano quindi anche se Node.js non è installato sul tuo computer. Se hai installato tu stesso Node.js, l’app usa quella versione. Eccezione: un progetto che avvia Electron da solo (electron .) richiede una Node.js installata da te.

Consentire installazioni di pacchetti senza chiedere​

In Impostazioni comandi per questa cartella attiva l’interruttore Consenti installazioni di pacchetti senza chiedere. Le installazioni di pacchetti con un nome partono allora senza carta: npm install <nome> e npm install da package.json, pnpm, yarn o bun con install o add, e pip install <nome> (anche tramite uv). Eseguono sempre nella sandbox, con rete. Gli altri comandi seguono la modalità che hai scelto per la cartella.

Queste installazioni mostrano comunque una carta:

  • starter di progetto come npm create vite@latest e npx create-…, perché eseguono il proprio codice;
  • pip install ., pip install -r requirements.txt, installazioni da un altro registro (--registry, -i, --index-url) e pacchetti da un indirizzo git, URL o percorso.

L’interruttore funziona solo con una sandbox (macOS) e se il tuo amministratore consente l’esecuzione automatica. Altrimenti non puoi attivarlo.

Nessun script di installazione

I pacchetti installati in questo modo non eseguono mai i propri script di installazione (npm viene eseguito con --ignore-scripts). I pacchetti Python vengono installati solo come wheel già pronte.

Server locali e browser integrato​

L’assistente può anche avviare un server di sviluppo che resta in esecuzione, come npm run dev per un piccolo progetto React con Vite. Per questo valgono le stesse regole degli altri comandi: approvi il comando esatto, oppure parte tramite una regola salvata o automaticamente nella sandbox. Al posto della durata massima, sulla carta compare "Resta in esecuzione come server locale finché non lo fermi."

Il server continua a funzionare dopo che l’assistente ha risposto. Nel pannello Comandi la carta mostra lo stato Server in esecuzione, con i pulsanti Apri nel browser e Interrompi. Possono esserci al massimo 4 server contemporaneamente. I server si fermano quando li interrompi o chiudi l’app.

Nella sandbox senza rete, un server può ascoltare solo su questo computer (localhost). Come l’assistente installa i pacchetti, leggi in Installare pacchetti.

Mostrare una semplice pagina web​

Per una normale pagina web (un index.html con CSS e JavaScript, senza fase di build) non serve alcun comando. L’assistente usa allora il server web integrato dell’app:

  • La cartella è visibile solo su questo computer, su http://127.0.0.1 con una porta casuale.
  • I file nascosti, come .git e .env, non vengono mai mostrati.
  • Se un file cambia, la pagina si ricarica automaticamente.

Per questo non compare alcuna carta di approvazione. Il server appare nel pannello Comandi, con Apri nel browser e Interrompi, e conta nel massimo di 4 server.

Visualizzi il risultato nel browser integrato: il pulsante Browser (l’icona del globo) a destra nella barra superiore. Il pannello si apre accanto alla chat, con indietro, avanti, ricarica (interrompi durante il caricamento), una barra degli indirizzi e Apri nel tuo browser predefinito.

  • L’assistente apre il browser da solo per mostrare il risultato di un server locale. Questo è possibile solo con indirizzi locali, come http://localhost:5173.
  • Se in una risposta fai clic su un link localhost, si apre nel browser integrato. Gli altri link si aprono nel tuo browser predefinito.
  • Puoi anche digitare tu stesso qualsiasi indirizzo web.
  • Il browser ha una sessione propria e separata: lì non hai effettuato l’accesso ad AI-School, i siti non ricevono permessi come fotocamera o microfono e non è possibile scaricare.
  • Finché un menu o una finestra di dialogo dell’app è aperta, la pagina viene temporaneamente nascosta.

Esempio:

Crea in questa cartella una piccola app React con Vite con un contatore. Installa le dipendenze, avvia il dev server e mostra il risultato nel browser.

Lasciare che l’assistente osservi​

Se chiedi all’assistente di guardare la pagina nel browser integrato, legge l’indirizzo, il titolo, il testo visibile, uno screenshot e gli ultimi messaggi di errore della pagina. Tutto questo va al modello AI.

  • Una pagina su questo computer (localhost o 127.0.0.1) viene osservata dall’assistente senza chiedere.
  • Per qualsiasi altro sito, per esempio una pagina su cui hai effettuato l’accesso, l’assistente mostra prima una carta: "L’assistente vuole osservare onedrive.live.com." Clicca Consenti osservazione oppure Rifiuta. La richiesta viene fatta ogni volta.
  • Se, dopo il tuo consenso, la pagina passa a un altro sito, l’assistente non legge nulla.
  • Solo su una pagina su questo computer l’assistente clicca e digita da solo, per testare ciò che ha creato. Su altri siti non clicca, non digita e non naviga. Non riceve cookie né password.
  • In modalità offline, l’assistente osserva solo pagine su questo computer.

Versioni e GitHub​

L’assistente ha un git integrato. Non devi quindi installare git, neanche su Windows. L’assistente può salvare versioni, mostrare cosa è cambiato, creare branch e pubblicare un progetto online.

  • Le azioni in questa cartella, come salvare una versione, partono senza chiedere. I file che sembrano segreti (come file .env, chiavi o token nel codice, incluse le chiavi Google API che iniziano con AIza) non finiscono mai in una versione. L’assistente lo segnala se salta qualcosa.
  • Le azioni online (scaricare un progetto, recuperare l’ultima versione, pubblicare e creare un repository GitHub) mostrano prima una carta con l’indirizzo esatto e le etichette Integrato nell’app e Rete attiva. Se l’indirizzo non è github.com o viene reso pubblico un nuovo repository, la carta avverte. Durante la pubblicazione, la carta mostra quali file vengono inviati. Scegli Esegui o Rifiuta.
  • Collegare un repository esterno a github.com richiede anche prima il permesso.

Come collegare GitHub e pubblicare un progetto, leggi in Vibe coding.

Modalità offline

Nella modalità offline i comandi eseguono sempre nella sandbox senza rete. Le installazioni di pacchetti con rete e le azioni online del git integrato (scaricare, recuperare, pubblicare e GitHub) non funzionano. Salvare versioni e mostrare una semplice pagina web funzionano invece.

Impostazioni per gli amministratori​

Gli amministratori possono disattivare i comandi locali o l’esecuzione automatica per tutti nell’ambiente. Lo fanno nell’ambiente di amministrazione, in Funzionalità (a livello di ambiente), nella scheda Desktop-app:

  • Consenti comandi locali: se è disattivato, l’assistente non può eseguire comandi. Anche le azioni online del git integrato non funzionano. Salvare versioni e creare branch continuano invece a funzionare: modificano solo i file nella cartella, come gli strumenti file.
  • Consenti esecuzione automatica: se è disattivato, ogni comando richiede il permesso e non puoi attivare Consenti installazioni di pacchetti senza chiedere.
  • Consenti la Python dell’app per file Office: per modelli, grafici e analisi. Questa Python funziona senza internet, scrive solo nella cartella di lavoro e non può avviare altri programmi. Se non è impostato nulla, segue Consenti comandi locali. Senza sandbox (Windows) è disponibile solo se i comandi locali sono attivi, e chiede ogni volta il permesso.