Exécuter des commandes locales en toute sécurité
Dans l’application de bureau, l’assistant peut exécuter des commandes et des tests dans le dossier de travail de votre chat. Pour comprendre comment cela fonctionne dans le chat, consultez Accès local aux fichiers. Sur cette page, vous définissez quand cela peut se faire sans demander et à quel point les commandes sont isolées.
Ouvrir les paramètres des commandes
Dans un chat, ouvrez le panneau Commandes et choisissez Paramètres des commandes pour ce dossier. Les paramètres s’appliquent par dossier.
Quand l’assistant peut-il exécuter une commande ?
Choisissez l’un de ces trois modes :
- Toujours demander : vous approuvez chaque commande.
- Commandes de confiance automatiques : les commandes que vous avez enregistrées démarrent sans demander. Les autres commandes demandent toujours une autorisation.
- Automatiquement dans la sandbox : tout démarre sans demander, mais dans un environnement isolé.
Dans chaque mode, ces règles s’appliquent aussi :
- Commandes inoffensives démarrent sans carte :
mkdir,ls,cat,head,tail,wc,grep,find(sans-execni-delete),touch,pwd,treeet les vérifications de version (--version,-vou-Vdenode,npm,npx,python,pipetaischool-python). Elles ne font pas plus que ce que les outils de fichiers intégrés font déjà sans demander. Elles s’exécutent dans la sandbox sans réseau et uniquement avec des chemins à l’intérieur du dossier de travail, même après avoir suivi des liens (pas de chemins absolus,~ou..). Si un lien pointe hors du dossier, une carte s’affiche. Cela nécessite une sandbox (macOS et Linux) et des commandes locales, mais pas Autoriser l’exécution automatique de votre administrateur. Dans le panneau Commandes, cela apparaît alors comme Automatique (commande inoffensive). Une liste entre accolades, commemkdir -p src/{components,utils}, démarre aussi sans carte : l’application la développe en chemins séparés et les vérifie tous. - Chaque carte affiche la commande exacte et, pour les actions en ligne, l’adresse exacte. En dessous figure en plus petit l’explication de l’assistant.
- Si la sandbox est disponible et que votre administrateur autorise l’exécution automatique, alors une carte pour une commande qui s’exécute dans la sandbox affiche aussi le bouton Toujours automatiquement dans la sandbox pour ce dossier. Celui-ci règle le dossier sur Automatiquement dans la sandbox, de sorte que les commandes suivantes démarrent sans carte. Les commandes qui nécessitent le réseau demandent encore une fois, sauf si les installations de paquets sont autorisées.
- La première carte, dans un dossier qui s’exécute dans la sandbox et ne demande pas le réseau, affiche une seule fois Faire confiance à ce projet. Cela exécute la commande, règle le dossier sur Automatiquement dans la sandbox et active Autoriser les installations de paquets sans demander. Ensuite, les tests et les builds comme
npm test,npm run buildetnode --testdémarrent sans carte, dans la sandbox sans réseau. Les commandes qui nécessitent davantage le réseau ou qui s’exécutent hors de la sandbox continueront à demander. Après Exécuter ou Refuser, la question ne réapparaît pas dans ce dossier ; vous modifiez le mode dans les paramètres des commandes. Si l’exécution automatique est désactivée, chaque carte indique si cela est dû à votre administrateur ou à la politique de gestion de cet ordinateur.
Enregistrer des commandes de confiance
Pour une commande, choisissez Toujours autoriser dans ce dossier, puis Exactement cette commande ou Tout ce qui commence par cela. Les commandes enregistrées démarrent ensuite sans demander. Les commandes avec des caractères spéciaux (comme ; | > $) demandent toujours une autorisation.
Les règles enregistrées se trouvent dans les paramètres des commandes, sous Toujours autorisé dans ce dossier. Vous pouvez aussi les supprimer là.
Sandbox et réseau
- Utiliser la sandbox : les commandes peuvent écrire uniquement dans ce dossier. Cette option est activée par défaut sur macOS et Linux.
- Autoriser le réseau : détermine si les commandes ont accès à Internet. Cette option est désactivée par défaut. Sans sandbox, les commandes ont toujours accès au réseau.
Chaque carte de commande indique si la sandbox et le réseau sont activés.
Si Autoriser le réseau est désactivé et que l’assistant veut télécharger quelque chose, par exemple avec npm install, la carte de commande demande si vous voulez exécuter exactement cette commande avec le réseau. Vous n’avez donc pas besoin d’activer le réseau pour tout le dossier.
Une sandbox n’est pas encore disponible sur Windows.
Installer des paquets
L’application dispose de son propre Node.js avec npm intégré. Les commandes comme node, npm et npx fonctionnent donc aussi si Node.js n’est pas installé sur votre ordinateur. Si vous avez installé Node.js vous-même, l’application utilise cette version. Exception : un projet qui lance lui-même Electron (electron .) a besoin d’un Node.js que vous avez installé vous-même.
Autoriser les installations de paquets sans demander
Dans Paramètres des commandes pour ce dossier, activez le bouton Autoriser les installations de paquets sans demander. Les installations de paquets avec un nom démarrent alors sans carte : npm install <nom> et npm install depuis package.json, pnpm, yarn ou bun avec install ou add, et pip install <nom> (également via uv). Elles s’exécutent toujours dans la sandbox, avec réseau. Les autres commandes suivent le mode que vous avez choisi pour le dossier.
Ces installations affichent encore une carte :
- les générateurs de projet comme
npm create vite@latestetnpx create-…, car ils exécutent leur propre code ; pip install .,pip install -r requirements.txt, les installations depuis un autre registre (--registry,-i,--index-url) et les paquets provenant d’une adresse git, d’une URL ou d’un chemin.
Le bouton ne fonctionne qu’avec une sandbox (macOS et Linux) et si votre administrateur autorise l’exécution automatique. Sinon, vous ne pouvez pas l’activer.
Les paquets ainsi installés n’exécutent jamais leurs propres scripts d’installation (npm s’exécute avec --ignore-scripts). Les paquets Python sont installés uniquement sous forme de wheels prêtes à l’emploi.
Serveurs locaux et navigateur intégré
L’assistant peut aussi démarrer un serveur de développement qui reste en cours d’exécution, comme npm run dev pour un petit projet React avec Vite. Les mêmes règles que pour les autres commandes s’appliquent : vous approuvez la commande exacte, ou elle démarre via une règle enregistrée ou automatiquement dans la sandbox. Au lieu de la durée maximale, la carte affiche « Reste en cours d’exécution comme serveur local jusqu’à ce que vous l’arrêtiez. »
Le serveur continue à s’exécuter après la réponse de l’assistant. Dans le panneau Commandes, la carte affiche l’état Serveur en cours d’exécution, avec les boutons Ouvrir dans le navigateur et Arrêter. Jusqu’à 4 serveurs peuvent s’exécuter en même temps. Les serveurs s’arrêtent si vous les arrêtez ou si vous fermez l’application.
Dans la sandbox sans réseau, un serveur ne peut écouter que sur cet ordinateur (localhost). Pour savoir comment l’assistant installe des paquets, consultez Installer des paquets.
Afficher une page web simple
Pour une page web ordinaire (un index.html avec CSS et JavaScript, sans étape de build), aucune commande n’est nécessaire. L’assistant utilise alors le serveur web intégré de l’application :
- Le dossier n’est visible que sur cet ordinateur, sur
http://127.0.0.1avec un port aléatoire. - Les fichiers cachés, comme
.gitet.env, ne sont jamais affichés. - Si un fichier change, la page se recharge automatiquement.
Aucune carte d’approbation n’apparaît pour cela. Le serveur figure dans le panneau Commandes, avec Ouvrir dans le navigateur et Arrêter, et compte dans la limite de 4 serveurs.
Vous consultez le résultat dans le navigateur intégré : le bouton Navigateur (l’icône du globe) à droite de la barre supérieure. Le panneau s’ouvre à côté du chat, avec retour, avance, recharger (arrêter pendant le chargement), une barre d’adresse et Ouvrir dans votre navigateur par défaut.
- L’assistant ouvre lui-même le navigateur pour montrer le résultat d’un serveur local. Cela n’est possible qu’avec des adresses locales, comme
http://localhost:5173. - Si vous cliquez sur un lien localhost dans une réponse, il s’ouvre dans le navigateur intégré. Les autres liens s’ouvrent dans votre navigateur par défaut.
- Vous pouvez aussi saisir vous-même n’importe quelle adresse web.
- Le navigateur dispose de sa propre session séparée : vous n’y êtes pas connecté à AI-Public, les sites n’obtiennent pas d’autorisations comme la caméra ou le micro et le téléchargement n’est pas possible.
- Tant qu’un menu ou une boîte de dialogue de l’application est ouvert, la page est temporairement masquée.
Exemple :
Crée dans ce dossier une petite application React avec Vite et un compteur. Installe les dépendances, démarre le serveur de développement et montre le résultat dans le navigateur.
Laisser l’assistant observer
Si vous demandez à l’assistant de regarder la page dans le navigateur intégré, il lit l’adresse, le titre, le texte visible, une capture d’écran et les derniers messages d’erreur de la page. Ceux-ci sont envoyés au modèle d’IA.
- Une page sur cet ordinateur (
localhostou127.0.0.1) est observée par l’assistant sans demander. - Pour tout autre site, par exemple une page sur laquelle vous êtes connecté, l’assistant affiche d’abord une carte : « L’assistant veut regarder sur onedrive.live.com. » Cliquez sur Autoriser l’observation ou sur Refuser. Il redemandera à chaque fois.
- Si, après votre autorisation, la page va vers un autre site, l’assistant ne lit rien.
- L’assistant clique et tape lui-même uniquement sur une page de cet ordinateur, afin de tester ce qu’il a créé. Sur les autres sites, il ne clique pas, ne tape pas et ne navigue pas. Il n’obtient ni cookies ni mots de passe.
- En mode hors ligne, l’assistant ne regarde que les pages de cet ordinateur.
Versions et GitHub
L’assistant dispose d’un git intégré. Vous n’avez donc pas besoin d’installer git, même sur Windows. L’assistant peut enregistrer des versions, afficher les changements, créer des branches et publier un projet en ligne.
- Les actions dans ce dossier, comme enregistrer une version, démarrent sans demander. Les fichiers qui ressemblent à des secrets (comme les fichiers
.env, des clés ou des jetons dans le code, y compris les clés Google API qui commencent parAIza) n’apparaissent jamais dans une version. L’assistant signale s’il omet quelque chose. - Les actions en ligne (télécharger un projet, récupérer la dernière version, publier et créer un dépôt GitHub) affichent d’abord une carte avec l’adresse exacte et les libellés Intégré dans l’application et Réseau activé. Si l’adresse n’est pas github.com ou si un nouveau dépôt devient public, la carte avertit. Lors de la publication, la carte indique quels fichiers sont envoyés. Choisissez Exécuter ou Refuser.
- Associer un dépôt en dehors de github.com demande aussi d’abord une autorisation.
Pour savoir comment connecter GitHub et publier un projet, consultez Coder avec Vibe.
Dans le mode hors ligne, les commandes s’exécutent toujours dans la sandbox sans réseau. Les installations de paquets avec réseau et les actions en ligne du git intégré (téléchargement, récupération, publication et GitHub) ne fonctionnent alors pas. L’enregistrement des versions et l’affichage d’une simple page web fonctionnent, eux, toujours.
Paramètres pour les administrateurs
Les administrateurs peuvent désactiver les commandes locales ou l’exécution automatique pour tout le monde dans l’environnement. Ils le font dans l’environnement d’administration, sous Fonctionnalités (au niveau de l’environnement), dans la carte Application de bureau :
- Autoriser les commandes locales : si cette option est désactivée, l’assistant ne peut exécuter aucune commande. Les actions en ligne du git intégré ne fonctionnent alors pas non plus. L’enregistrement des versions et les branches continuent toutefois de fonctionner : elles ne modifient que les fichiers du dossier, comme les outils de fichiers.
- Autoriser l’exécution automatique : si cette option est désactivée, chaque commande demande une autorisation et vous ne pouvez pas activer Autoriser les installations de paquets sans demander.
- Autoriser le Python de l’application pour les fichiers Office : pour les modèles, graphiques et analyses. Ce Python fonctionne sans Internet, n’écrit que dans le dossier de travail et ne peut lancer aucun autre programme. Si rien n’est défini, cela suit Autoriser les commandes locales. Sans sandbox (Windows), il n’est disponible que si les commandes locales sont activées, et il demande une autorisation à chaque fois.